mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
List ignored bookmarks
`/bookmarl ignore` lists the ignored bookmarks. Regards https://github.com/profanity-im/profanity/issues/1115
This commit is contained in:
parent
ca3972b3ca
commit
f121554088
@ -795,7 +795,9 @@ static struct cmd_t command_defs[] =
|
|||||||
|
|
||||||
{ "/bookmark",
|
{ "/bookmark",
|
||||||
parse_args, 0, 8, NULL,
|
parse_args, 0, 8, NULL,
|
||||||
CMD_NOSUBFUNCS
|
CMD_SUBFUNCS(
|
||||||
|
{ "ignore", cmd_bookmark_ignore }
|
||||||
|
)
|
||||||
CMD_MAINFUNC(cmd_bookmark)
|
CMD_MAINFUNC(cmd_bookmark)
|
||||||
CMD_TAGS(
|
CMD_TAGS(
|
||||||
CMD_TAG_GROUPCHAT)
|
CMD_TAG_GROUPCHAT)
|
||||||
@ -806,7 +808,8 @@ static struct cmd_t command_defs[] =
|
|||||||
"/bookmark update <room> [nick <nick>] [password <password>] [name <roomname>] autojoin on|off]",
|
"/bookmark update <room> [nick <nick>] [password <password>] [name <roomname>] autojoin on|off]",
|
||||||
"/bookmark remove [<room>]",
|
"/bookmark remove [<room>]",
|
||||||
"/bookmark join <room>",
|
"/bookmark join <room>",
|
||||||
"/bookmark invites on|off")
|
"/bookmark invites on|off",
|
||||||
|
"/bookmark ignore")
|
||||||
CMD_DESC(
|
CMD_DESC(
|
||||||
"Manage bookmarks and join bookmarked rooms. "
|
"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\".")
|
||||||
|
@ -68,6 +68,7 @@
|
|||||||
#include "tools/autocomplete.h"
|
#include "tools/autocomplete.h"
|
||||||
#include "tools/parser.h"
|
#include "tools/parser.h"
|
||||||
#include "tools/tinyurl.h"
|
#include "tools/tinyurl.h"
|
||||||
|
#include "tools/bookmark_ignore.h"
|
||||||
#include "plugins/plugins.h"
|
#include "plugins/plugins.h"
|
||||||
#include "ui/ui.h"
|
#include "ui/ui.h"
|
||||||
#include "ui/window_list.h"
|
#include "ui/window_list.h"
|
||||||
@ -4766,6 +4767,30 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
cmd_bookmark_ignore(ProfWin *window, const char *const command, gchar **args)
|
||||||
|
{
|
||||||
|
jabber_conn_status_t conn_status = connection_get_status();
|
||||||
|
|
||||||
|
if (conn_status != JABBER_CONNECTED) {
|
||||||
|
cons_show("You are not currently connected.");
|
||||||
|
cons_alert();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// `/bookmark ignore` lists them
|
||||||
|
if (args[1] == NULL) {
|
||||||
|
gsize len;
|
||||||
|
gchar **list = bookmark_ignore_list(&len);
|
||||||
|
cons_show_bookmarks_ignore(list, len);
|
||||||
|
g_strfreev(list);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
cons_bad_cmd_usage(command);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
cmd_disco(ProfWin *window, const char *const command, gchar **args)
|
cmd_disco(ProfWin *window, const char *const command, gchar **args)
|
||||||
{
|
{
|
||||||
|
@ -115,6 +115,7 @@ gboolean cmd_reconnect(ProfWin *window, const char *const command, gchar **args)
|
|||||||
gboolean cmd_room(ProfWin *window, const char *const command, gchar **args);
|
gboolean cmd_room(ProfWin *window, const char *const command, gchar **args);
|
||||||
gboolean cmd_rooms(ProfWin *window, const char *const command, gchar **args);
|
gboolean cmd_rooms(ProfWin *window, const char *const command, gchar **args);
|
||||||
gboolean cmd_bookmark(ProfWin *window, const char *const command, gchar **args);
|
gboolean cmd_bookmark(ProfWin *window, const char *const command, gchar **args);
|
||||||
|
gboolean cmd_bookmark_ignore(ProfWin *window, const char *const command, gchar **args);
|
||||||
gboolean cmd_roster(ProfWin *window, const char *const command, gchar **args);
|
gboolean cmd_roster(ProfWin *window, const char *const command, gchar **args);
|
||||||
gboolean cmd_software(ProfWin *window, const char *const command, gchar **args);
|
gboolean cmd_software(ProfWin *window, const char *const command, gchar **args);
|
||||||
gboolean cmd_splash(ProfWin *window, const char *const command, gchar **args);
|
gboolean cmd_splash(ProfWin *window, const char *const command, gchar **args);
|
||||||
|
@ -85,3 +85,9 @@ bookmark_ignored(Bookmark *bookmark)
|
|||||||
{
|
{
|
||||||
return g_key_file_get_boolean(bookmark_ignore_keyfile, account_jid, bookmark->barejid, NULL);
|
return g_key_file_get_boolean(bookmark_ignore_keyfile, account_jid, bookmark->barejid, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gchar **
|
||||||
|
bookmark_ignore_list(gsize *len)
|
||||||
|
{
|
||||||
|
return g_key_file_get_keys(bookmark_ignore_keyfile, account_jid, len, NULL);
|
||||||
|
}
|
||||||
|
@ -39,5 +39,6 @@
|
|||||||
void bookmark_ignore_on_connect();
|
void bookmark_ignore_on_connect();
|
||||||
void bookmark_ignore_on_disconnect();
|
void bookmark_ignore_on_disconnect();
|
||||||
gboolean bookmark_ignored(Bookmark *bookmark);
|
gboolean bookmark_ignored(Bookmark *bookmark);
|
||||||
|
gchar ** bookmark_ignore_list(gsize *len);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -2683,3 +2683,18 @@ _show_roster_contacts(GSList *list, gboolean show_groups)
|
|||||||
curr = g_slist_next(curr);
|
curr = g_slist_next(curr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
cons_show_bookmarks_ignore(gchar **list, gsize len)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
ProfWin *console = wins_get_console();
|
||||||
|
|
||||||
|
cons_show("");
|
||||||
|
cons_show("Ignored bookmarks:");
|
||||||
|
|
||||||
|
for(i=0; i<len; i++) {
|
||||||
|
win_print(console, THEME_DEFAULT, "-", " %s", list[i]);
|
||||||
|
win_newline(console);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -268,6 +268,7 @@ void cons_show_login_success(ProfAccount *account, gboolean secured);
|
|||||||
void cons_show_account_list(gchar **accounts);
|
void cons_show_account_list(gchar **accounts);
|
||||||
void cons_show_room_list(GSList *room, const char *const conference_node);
|
void cons_show_room_list(GSList *room, const char *const conference_node);
|
||||||
void cons_show_bookmarks(const GList *list);
|
void cons_show_bookmarks(const GList *list);
|
||||||
|
void cons_show_bookmarks_ignore(gchar **list, gsize len);
|
||||||
void cons_show_disco_items(GSList *items, const char *const jid);
|
void cons_show_disco_items(GSList *items, const char *const jid);
|
||||||
void cons_show_disco_info(const char *from, GSList *identities, GSList *features);
|
void cons_show_disco_info(const char *from, GSList *identities, GSList *features);
|
||||||
void cons_show_room_invite(const char *const invitor, const char *const room, const char *const reason);
|
void cons_show_room_invite(const char *const invitor, const char *const room, const char *const reason);
|
||||||
|
Loading…
Reference in New Issue
Block a user