1
0
mirror of https://github.com/gryf/weechat-xmpp.git synced 2025-12-19 12:28:12 +01:00

Added autojoin at the connect time

This commit is contained in:
Erwan Dupard
2017-08-25 10:18:14 +02:00
committed by Laurent Peuch
parent 8f6c21f5a1
commit 69b7caf280

View File

@@ -177,6 +177,17 @@ jabber_server_options = {
"change_cb" : "", "change_cb" : "",
"delete_cb" : "", "delete_cb" : "",
}, },
"autojoin" : { "type" : "string",
"desc" : "auto join some room at the connection, eq. test@conference.talk.google.com, foo@bar.com",
"min" : 0,
"max" : 0,
"string_values": "",
"default" : "",
"value" : "",
"check_cb" : "",
"change_cb" : "",
"delete_cb" : "",
},
"port" : { "type" : "integer", "port" : { "type" : "integer",
"desc" : "connect server port, eg. 5223", "desc" : "connect server port, eg. 5223",
"min" : 0, "min" : 0,
@@ -446,7 +457,7 @@ class Server:
return weechat.config_boolean(self.options[option_name]) return weechat.config_boolean(self.options[option_name])
def option_integer(self, option_name): def option_integer(self, option_name):
""" Return a server option, as string. """ """ Return a server option, as integer. """
return weechat.config_integer(self.options[option_name]) return weechat.config_integer(self.options[option_name])
def connect(self): def connect(self):
@@ -521,6 +532,13 @@ class Server:
weechat.buffer_set(self.buffer, "localvar_set_nick", self.buddy.username); weechat.buffer_set(self.buffer, "localvar_set_nick", self.buddy.username);
hook_away = weechat.hook_command_run("/away -all*", "jabber_away_command_run_cb", "") hook_away = weechat.hook_command_run("/away -all*", "jabber_away_command_run_cb", "")
# Joining rooms registerer in autojoin server option
autojoins = self.option_string("autojoin")
weechat.prnt("", "Autojoins: %s" % autojoins)
rooms = [room.strip() for room in autojoins.split(',')]
for room in rooms:
weechat.prnt("", "Joining '%s'" % room)
jabber_cmd_room(None, self.buffer, "%s" % room)
# setting initial presence # setting initial presence
priority = weechat.config_integer(self.options['priority']) priority = weechat.config_integer(self.options['priority'])
@@ -1496,6 +1514,7 @@ def jabber_hook_commands_and_completions():
"Other jabber commands:\n" "Other jabber commands:\n"
" Chat with a buddy (pv buffer): /jchat\n" " Chat with a buddy (pv buffer): /jchat\n"
" Add buddy to roster: /invite\n" " Add buddy to roster: /invite\n"
" Join a Romm: /jroom\n"
" Remove buddy from roster: /kick\n" " Remove buddy from roster: /kick\n"
" Send message to buddy: /jmsg", " Send message to buddy: /jmsg",
"list %(jabber_servers)" "list %(jabber_servers)"
@@ -1517,7 +1536,7 @@ def jabber_hook_commands_and_completions():
"", "",
"jabber_cmd_jchat", "") "jabber_cmd_jchat", "")
weechat.hook_command("jroom", "Manage XMPP rooms", weechat.hook_command("jroom", "Manage XMPP rooms",
"<room>", "<room> [-autojoin]",
"room: MUC jid", "room: MUC jid",
"", "",
"jabber_cmd_room", "") "jabber_cmd_room", "")
@@ -1720,14 +1739,16 @@ def jabber_cmd_room(data, buffer, args):
nickname = None nickname = None
else: else:
nickname = argv[1] nickname = argv[1]
context = jabber_search_context(buffer) context = jabber_search_context(buffer)
if context["server"]: server = context["server"]
buddy = context["server"].search_buddy_list(args, by='alias') if server:
buddy = server.search_buddy_list(args, by='alias')
if not buddy: if not buddy:
buddy = context["server"].add_muc(room, nickname) buddy = server.add_muc(room, nickname)
if not buddy.chat: if not buddy.chat:
context["server"].add_chat(buddy) server.add_chat(buddy)
if "-autojoin" in argv:
weechat.prnt("", "autojoin activated for %s" % room)
weechat.buffer_set(buddy.chat.buffer, "display", "auto") weechat.buffer_set(buddy.chat.buffer, "display", "auto")
weechat.buffer_set(buddy.chat.buffer, "nicklist", "1") weechat.buffer_set(buddy.chat.buffer, "nicklist", "1")
weechat.buffer_set(buddy.chat.buffer, "nicklist_display_groups", "1") weechat.buffer_set(buddy.chat.buffer, "nicklist_display_groups", "1")