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:
committed by
Laurent Peuch
parent
8f6c21f5a1
commit
69b7caf280
35
jabber.py
35
jabber.py
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user