Merge pull request #1714 from MarcoPolo-PasTonMolo/feature/avatar-set

Add `/avatar set` command to publish avatar
This commit is contained in:
Michael Vetter
2022-05-30 18:01:50 +02:00
committed by GitHub
16 changed files with 220 additions and 7 deletions

View File

@@ -1057,6 +1057,7 @@ cmd_ac_init(void)
autocomplete_add(correction_ac, "char");
avatar_ac = autocomplete_new();
autocomplete_add(avatar_ac, "set");
autocomplete_add(avatar_ac, "get");
autocomplete_add(avatar_ac, "open");
@@ -4101,6 +4102,11 @@ _avatar_autocomplete(ProfWin* window, const char* const input, gboolean previous
jabber_conn_status_t conn_status = connection_get_status();
if (conn_status == JABBER_CONNECTED) {
result = cmd_ac_complete_filepath(input, "/avatar set", previous);
if (result) {
return result;
}
result = autocomplete_param_with_func(input, "/avatar get", roster_barejid_autocomplete, previous, NULL);
if (result) {
return result;

View File

@@ -2443,16 +2443,20 @@ static struct cmd_t command_defs[] = {
CMD_TAGS(
CMD_TAG_CHAT)
CMD_SYN(
"/avatar set <path>",
"/avatar get <barejid>",
"/avatar open <barejid>")
CMD_DESC(
"Upload avatar for oneself (XEP-0084). "
"Download avatar (XEP-0084) for a certain contact. "
"If nothing happens after using this command the user either doesn't have an avatar set at all "
"or doesn't use XEP-0084 to publish it.")
CMD_ARGS(
{ "set <path>", "Set avatar to the image at <path>." },
{ "get <barejid>", "Download the avatar. barejid is the JID to download avatar from." },
{ "open <barejid>", "Download avatar and open it with command." })
CMD_EXAMPLES(
"/avatar set ~/images/avatar.png",
"/avatar get thor@valhalla.edda",
"/avatar open freyja@vanaheimr.edda") },

View File

@@ -9195,7 +9195,15 @@ cmd_avatar(ProfWin* window, const char* const command, gchar** args)
return TRUE;
}
if (g_strcmp0(args[0], "get") == 0) {
if (g_strcmp0(args[0], "set") == 0) {
#ifdef HAVE_PIXBUF
if (avatar_set(args[1])) {
cons_show("Avatar updated successfully");
}
#else
cons_show("Profanity has not been built with GDK Pixbuf support enabled which is needed to scale the avatar when uploading.");
#endif
} else if (g_strcmp0(args[0], "get") == 0) {
avatar_get_by_nick(args[1], false);
} else if (g_strcmp0(args[0], "open") == 0) {
avatar_get_by_nick(args[1], true);