1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-11-03 19:37:16 -05:00

Add bookmark ignore add|remove

Regards https://github.com/profanity-im/profanity/issues/1115
This commit is contained in:
Michael Vetter 2020-05-24 17:37:27 +02:00
parent f121554088
commit be4a6cac78
4 changed files with 34 additions and 3 deletions

View File

@ -809,10 +809,13 @@ static struct cmd_t command_defs[] =
"/bookmark remove [<room>]",
"/bookmark join <room>",
"/bookmark invites on|off",
"/bookmark ignore")
"/bookmark ignore",
"/bookmark ignore add <jid>",
"/bookmark ignore remove <jid>")
CMD_DESC(
"Manage bookmarks and join bookmarked rooms. "
"In a chat room, no arguments will bookmark the current room, setting autojoin to \"on\".")
"In a chat room, no arguments will bookmark the current room, setting autojoin to \"on\"."
"There is also an autojoin ignore list in case you want to autojoind in many clients but not on Profanity.")
CMD_ARGS(
{ "list", "List all bookmarks." },
{ "add [<room>]", "Add a bookmark, passing no room will bookmark the current room, setting autojoin to \"on\"." },
@ -823,7 +826,9 @@ static struct cmd_t command_defs[] =
{ "name <roomname>", "Optional name for the bookmark. By default localpart of the JID will be used." },
{ "autojoin on|off", "Whether to join the room automatically on login." },
{ "join <room>", "Join room using the properties associated with the bookmark." },
{ "invites on|off", "Whether or not to bookmark accepted room invites, defaults to 'on'."})
{ "invites on|off", "Whether or not to bookmark accepted room invites, defaults to 'on'."},
{ "ignore add <barejid>", "Add a bookmark to the autojoin ignore list."},
{ "ignore remove <barejid>", "Remove a bookmark from the autojoin ignore list."})
CMD_NOEXAMPLES
},

View File

@ -4787,6 +4787,18 @@ cmd_bookmark_ignore(ProfWin *window, const char *const command, gchar **args)
return TRUE;
}
if (strcmp(args[1], "add") == 0 && args[2] != NULL) {
bookmark_ignore_add(args[2]);
cons_show("Autojoin for bookmark %s added to ignore list.", args[2]);
return TRUE;
}
if (strcmp(args[1], "remove") == 0 && args[2] != NULL) {
bookmark_ignore_remove(args[2]);
cons_show("Autojoin for bookmark %s removed from ignore list.", args[2]);
return TRUE;
}
cons_bad_cmd_usage(command);
return TRUE;
}

View File

@ -91,3 +91,15 @@ bookmark_ignore_list(gsize *len)
{
return g_key_file_get_keys(bookmark_ignore_keyfile, account_jid, len, NULL);
}
void
bookmark_ignore_add(const char *const barejid)
{
g_key_file_set_boolean(bookmark_ignore_keyfile, account_jid, barejid, TRUE);
}
void
bookmark_ignore_remove(const char *const barejid)
{
g_key_file_remove_key(bookmark_ignore_keyfile, account_jid, barejid, NULL);
}

View File

@ -40,5 +40,7 @@ void bookmark_ignore_on_connect();
void bookmark_ignore_on_disconnect();
gboolean bookmark_ignored(Bookmark *bookmark);
gchar ** bookmark_ignore_list(gsize *len);
void bookmark_ignore_add(const char *const barejid);
void bookmark_ignore_remove(const char *const barejid);
#endif