mirror of
https://github.com/gryf/weechat-xmpp.git
synced 2025-12-19 20:38:07 +01:00
[mod] autopep8
This commit is contained in:
325
jabber.py
325
jabber.py
@@ -108,7 +108,7 @@ except:
|
||||
# deprecated sha and md5. Since the code producing those warnings is
|
||||
# outside this script, catch them and ignore.
|
||||
original_filters = warnings.filters[:]
|
||||
warnings.filterwarnings("ignore",category=DeprecationWarning)
|
||||
warnings.filterwarnings("ignore", category=DeprecationWarning)
|
||||
try:
|
||||
import xmpp
|
||||
except:
|
||||
@@ -122,139 +122,139 @@ finally:
|
||||
|
||||
jabber_servers = []
|
||||
jabber_server_options = {
|
||||
"jid" : { "type" : "string",
|
||||
"desc" : "jabber id (user@server.tld)",
|
||||
"min" : 0,
|
||||
"max" : 0,
|
||||
"jid": {"type": "string",
|
||||
"desc": "jabber id (user@server.tld)",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"string_values": "",
|
||||
"default" : "",
|
||||
"value" : "",
|
||||
"check_cb" : "",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "",
|
||||
"value": "",
|
||||
"check_cb": "",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
"priority" : { "type" : "integer",
|
||||
"desc" : "Default resource priority",
|
||||
"min" : 0,
|
||||
"max" : 65535,
|
||||
"priority": {"type": "integer",
|
||||
"desc": "Default resource priority",
|
||||
"min": 0,
|
||||
"max": 65535,
|
||||
"string_values": "",
|
||||
"default" : "8",
|
||||
"value" : "8",
|
||||
"check_cb" : "",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "8",
|
||||
"value": "8",
|
||||
"check_cb": "",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
"away_priority": { "type" : "integer",
|
||||
"desc" : "Resource priority on away",
|
||||
"min" : 0,
|
||||
"max" : 65535,
|
||||
"away_priority": {"type": "integer",
|
||||
"desc": "Resource priority on away",
|
||||
"min": 0,
|
||||
"max": 65535,
|
||||
"string_values": "",
|
||||
"default" : "0",
|
||||
"value" : "0",
|
||||
"check_cb" : "",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "0",
|
||||
"value": "0",
|
||||
"check_cb": "",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
"password" : { "type" : "string",
|
||||
"desc" : "password for jabber id on server",
|
||||
"min" : 0,
|
||||
"max" : 0,
|
||||
"password": {"type": "string",
|
||||
"desc": "password for jabber id on server",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"string_values": "",
|
||||
"default" : "",
|
||||
"value" : "",
|
||||
"check_cb" : "",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "",
|
||||
"value": "",
|
||||
"check_cb": "",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
"server" : { "type" : "string",
|
||||
"desc" : "connect server host or ip, eg. talk.google.com",
|
||||
"min" : 0,
|
||||
"max" : 0,
|
||||
"server": {"type": "string",
|
||||
"desc": "connect server host or ip, eg. talk.google.com",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"string_values": "",
|
||||
"default" : "",
|
||||
"value" : "",
|
||||
"check_cb" : "",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "",
|
||||
"value": "",
|
||||
"check_cb": "",
|
||||
"change_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,
|
||||
"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" : "",
|
||||
"default": "",
|
||||
"value": "",
|
||||
"check_cb": "",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
"port" : { "type" : "integer",
|
||||
"desc" : "connect server port, eg. 5223",
|
||||
"min" : 0,
|
||||
"max" : 65535,
|
||||
"port": {"type": "integer",
|
||||
"desc": "connect server port, eg. 5223",
|
||||
"min": 0,
|
||||
"max": 65535,
|
||||
"string_values": "",
|
||||
"default" : "5222",
|
||||
"value" : "5222",
|
||||
"check_cb" : "",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "5222",
|
||||
"value": "5222",
|
||||
"check_cb": "",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
"autoconnect" : { "type" : "boolean",
|
||||
"desc" : "automatically connect to server when script is starting",
|
||||
"min" : 0,
|
||||
"max" : 0,
|
||||
"autoconnect": {"type": "boolean",
|
||||
"desc": "automatically connect to server when script is starting",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"string_values": "",
|
||||
"default" : "off",
|
||||
"value" : "off",
|
||||
"check_cb" : "",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "off",
|
||||
"value": "off",
|
||||
"check_cb": "",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
"autoreconnect": { "type" : "boolean",
|
||||
"desc" : "automatically reconnect to server when disconnected",
|
||||
"min" : 0,
|
||||
"max" : 0,
|
||||
"autoreconnect": {"type": "boolean",
|
||||
"desc": "automatically reconnect to server when disconnected",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"string_values": "",
|
||||
"default" : "off",
|
||||
"value" : "off",
|
||||
"check_cb" : "",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "off",
|
||||
"value": "off",
|
||||
"check_cb": "",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
"private" : { "type" : "boolean",
|
||||
"desc" : "display messages in separate chat buffers instead of a single server buffer",
|
||||
"min" : 0,
|
||||
"max" : 0,
|
||||
"private": {"type": "boolean",
|
||||
"desc": "display messages in separate chat buffers instead of a single server buffer",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"string_values": "",
|
||||
"default" : "on",
|
||||
"value" : "on",
|
||||
"check_cb" : "",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "on",
|
||||
"value": "on",
|
||||
"check_cb": "",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
"ping_interval": { "type" : "integer",
|
||||
"desc" : "Number of seconds between server pings. 0 = disable",
|
||||
"min" : 0,
|
||||
"max" : 9999999,
|
||||
"ping_interval": {"type": "integer",
|
||||
"desc": "Number of seconds between server pings. 0 = disable",
|
||||
"min": 0,
|
||||
"max": 9999999,
|
||||
"string_values": "",
|
||||
"default" : "0",
|
||||
"value" : "0",
|
||||
"check_cb" : "ping_interval_check_cb",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "0",
|
||||
"value": "0",
|
||||
"check_cb": "ping_interval_check_cb",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
"ping_timeout" : { "type" : "integer",
|
||||
"desc" : "Number of seconds to allow ping to respond before timing out",
|
||||
"min" : 0,
|
||||
"max" : 9999999,
|
||||
"ping_timeout": {"type": "integer",
|
||||
"desc": "Number of seconds to allow ping to respond before timing out",
|
||||
"min": 0,
|
||||
"max": 9999999,
|
||||
"string_values": "",
|
||||
"default" : "10",
|
||||
"value" : "10",
|
||||
"check_cb" : "ping_timeout_check_cb",
|
||||
"change_cb" : "",
|
||||
"delete_cb" : "",
|
||||
"default": "10",
|
||||
"value": "10",
|
||||
"check_cb": "ping_timeout_check_cb",
|
||||
"change_cb": "",
|
||||
"delete_cb": "",
|
||||
},
|
||||
}
|
||||
}
|
||||
jabber_config_file = None
|
||||
jabber_config_section = {}
|
||||
jabber_config_option = {}
|
||||
@@ -262,6 +262,7 @@ jabber_jid_aliases = {} # { 'alias1': 'jid1', 'alias2': 'jid2', ...
|
||||
|
||||
# =================================[ config ]=================================
|
||||
|
||||
|
||||
def jabber_config_init():
|
||||
""" Initialize config file: create sections and options in memory. """
|
||||
global jabber_config_file, jabber_config_section
|
||||
@@ -309,10 +310,12 @@ def jabber_config_init():
|
||||
weechat.config_free(jabber_config_file)
|
||||
return
|
||||
|
||||
|
||||
def jabber_config_reload_cb(data, config_file):
|
||||
""" Reload config file. """
|
||||
return weechat.config_reload(config_file)
|
||||
|
||||
|
||||
def jabber_config_server_read_cb(data, config_file, section, option_name, value):
|
||||
""" Read server option in config file. """
|
||||
global jabber_servers
|
||||
@@ -327,6 +330,7 @@ def jabber_config_server_read_cb(data, config_file, section, option_name, value)
|
||||
rc = weechat.config_option_set(server.options[items[1]], value, 1)
|
||||
return rc
|
||||
|
||||
|
||||
def jabber_config_server_write_cb(data, config_file, section_name):
|
||||
""" Write server section in config file. """
|
||||
global jabber_servers
|
||||
@@ -336,6 +340,7 @@ def jabber_config_server_write_cb(data, config_file, section_name):
|
||||
weechat.config_write_option(config_file, option)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_config_jid_aliases_read_cb(data, config_file, section, option_name, value):
|
||||
""" Read jid_aliases option in config file. """
|
||||
global jabber_jid_aliases
|
||||
@@ -348,6 +353,7 @@ def jabber_config_jid_aliases_read_cb(data, config_file, section, option_name, v
|
||||
return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR
|
||||
return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED
|
||||
|
||||
|
||||
def jabber_config_jid_aliases_write_cb(data, config_file, section_name):
|
||||
""" Write jid_aliases section in config file. """
|
||||
global jabber_jid_aliases
|
||||
@@ -356,16 +362,19 @@ def jabber_config_jid_aliases_write_cb(data, config_file, section_name):
|
||||
weechat.config_write_line(config_file, alias, jid)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_config_read():
|
||||
""" Read jabber config file (jabber.conf). """
|
||||
global jabber_config_file
|
||||
return weechat.config_read(jabber_config_file)
|
||||
|
||||
|
||||
def jabber_config_write():
|
||||
""" Write jabber config file (jabber.conf). """
|
||||
global jabber_config_file
|
||||
return weechat.config_write(jabber_config_file)
|
||||
|
||||
|
||||
def jabber_debug_enabled():
|
||||
""" Return True if debug is enabled. """
|
||||
global jabber_config_options
|
||||
@@ -373,6 +382,7 @@ def jabber_debug_enabled():
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def jabber_config_color(color):
|
||||
""" Return color code for a jabber color option. """
|
||||
global jabber_config_option
|
||||
@@ -380,6 +390,7 @@ def jabber_config_color(color):
|
||||
return weechat.color(weechat.config_color(jabber_config_option[color]))
|
||||
return ""
|
||||
|
||||
|
||||
def ping_timeout_check_cb(server_name, option, value):
|
||||
global jabber_config_file, jabber_config_section
|
||||
ping_interval_option = weechat.config_search_option(
|
||||
@@ -394,6 +405,7 @@ def ping_timeout_check_cb(server_name, option, value):
|
||||
return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR
|
||||
return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED
|
||||
|
||||
|
||||
def ping_interval_check_cb(server_name, option, value):
|
||||
global jabber_config_file, jabber_config_section
|
||||
ping_timeout_option = weechat.config_search_option(
|
||||
@@ -410,6 +422,7 @@ def ping_interval_check_cb(server_name, option, value):
|
||||
|
||||
# ================================[ servers ]=================================
|
||||
|
||||
|
||||
class Server:
|
||||
""" Class to manage a server: buffer, connection, send/recv data. """
|
||||
|
||||
@@ -502,7 +515,7 @@ class Server:
|
||||
# warning. Since the code producing the warning is outside this script,
|
||||
# catch it and ignore.
|
||||
original_filters = warnings.filters[:]
|
||||
warnings.filterwarnings("ignore",category=DeprecationWarning)
|
||||
warnings.filterwarnings("ignore", category=DeprecationWarning)
|
||||
try:
|
||||
conn = self.client.connect(server=server_tuple)
|
||||
finally:
|
||||
@@ -529,7 +542,7 @@ class Server:
|
||||
self.sock = self.client.Connection._sock.fileno()
|
||||
self.hook_fd = weechat.hook_fd(self.sock, 1, 0, 0, "jabber_fd_cb", "")
|
||||
weechat.buffer_set(self.buffer, "highlight_words", self.buddy.username)
|
||||
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", "")
|
||||
|
||||
# Joining rooms registerer in autojoin server option
|
||||
@@ -541,8 +554,7 @@ class Server:
|
||||
jabber_cmd_room(None, self.buffer, "%s" % room)
|
||||
# setting initial presence
|
||||
priority = weechat.config_integer(self.options['priority'])
|
||||
self.set_presence(show="",priority=priority)
|
||||
|
||||
self.set_presence(show="", priority=priority)
|
||||
|
||||
self.ping_up = True
|
||||
else:
|
||||
@@ -598,7 +610,7 @@ class Server:
|
||||
|
||||
def muc_presence(self, muc, conn, node):
|
||||
chan_user = muc.search_buddy_list(node.getFrom().getResource().encode("utf-8"), by='name')
|
||||
action='update'
|
||||
action = 'update'
|
||||
if not chan_user:
|
||||
chan_user = muc.add_buddy(jid=node.getFrom())
|
||||
|
||||
@@ -613,7 +625,7 @@ class Server:
|
||||
muc.rename_buddy(buddy=chan_user, old_nick=node.getFrom().getResource().encode("utf-8"))
|
||||
return
|
||||
else:
|
||||
action='remove'
|
||||
action = 'remove'
|
||||
|
||||
muc.update_nicklist(buddy=chan_user, action=action, role=role)
|
||||
|
||||
@@ -625,10 +637,10 @@ class Server:
|
||||
return
|
||||
if not buddy:
|
||||
buddy = self.add_buddy(jid=node.getFrom())
|
||||
action='update'
|
||||
action = 'update'
|
||||
node_type = node.getType()
|
||||
if node_type in ["error", "unavailable"]:
|
||||
action='remove'
|
||||
action = 'remove'
|
||||
if action == 'update':
|
||||
away = node.getShow() in ["away", "xa"]
|
||||
status = ''
|
||||
@@ -702,7 +714,7 @@ class Server:
|
||||
try:
|
||||
self.client.Process(1)
|
||||
except xmpp.protocol.StreamError as e:
|
||||
weechat.prnt('', '%s: Error from server: %s' %(SCRIPT_NAME, e))
|
||||
weechat.prnt('', '%s: Error from server: %s' % (SCRIPT_NAME, e))
|
||||
self.disconnect()
|
||||
if weechat.config_boolean(self.options['autoreconnect']):
|
||||
autoreconnect_delay = 30
|
||||
@@ -804,9 +816,12 @@ class Server:
|
||||
self.set_presence(show, status, priority)
|
||||
|
||||
def set_presence(self, show=None, status=None, priority=None):
|
||||
if not show == None: self.presence.setShow(show)
|
||||
if not status == None: self.presence.setStatus(status)
|
||||
if not priority == None: self.presence.setPriority(priority)
|
||||
if not show == None:
|
||||
self.presence.setShow(show)
|
||||
if not status == None:
|
||||
self.presence.setStatus(status)
|
||||
if not priority == None:
|
||||
self.presence.setPriority(priority)
|
||||
self.client.send(self.presence)
|
||||
|
||||
def add_buddy(self, jid=None):
|
||||
@@ -833,14 +848,14 @@ class Server:
|
||||
weechat.prnt(self.buffer, "")
|
||||
weechat.prnt(self.buffer, "Buddies:")
|
||||
|
||||
len_max = { 'alias': 5, 'jid': 5 }
|
||||
len_max = {'alias': 5, 'jid': 5}
|
||||
lines = []
|
||||
for buddy in sorted(self.buddies, key=lambda x: x.jid.getStripped().encode('utf-8')):
|
||||
alias = ''
|
||||
if buddy.alias != buddy.bare_jid:
|
||||
alias = buddy.alias
|
||||
buddy_jid_string = buddy.jid.getStripped().encode('utf-8')
|
||||
lines.append( {
|
||||
lines.append({
|
||||
'jid': buddy_jid_string,
|
||||
'alias': alias,
|
||||
'status': buddy.away_string(),
|
||||
@@ -958,7 +973,7 @@ class Server:
|
||||
self.delete_ping_timer()
|
||||
if not self.option_integer('ping_interval'):
|
||||
return
|
||||
self.ping_timer = weechat.hook_timer( self.option_integer('ping_interval') * 1000,
|
||||
self.ping_timer = weechat.hook_timer(self.option_integer('ping_interval') * 1000,
|
||||
0, 0, "jabber_ping_timer", self.name)
|
||||
return
|
||||
|
||||
@@ -989,7 +1004,7 @@ class Server:
|
||||
if not self.connect():
|
||||
return
|
||||
iq = xmpp.protocol.Iq(to=self.buddy.domain, typ='get')
|
||||
iq.addChild( name= "ping", namespace = "urn:xmpp:ping" )
|
||||
iq.addChild(name="ping", namespace="urn:xmpp:ping")
|
||||
id = self.client.send(iq)
|
||||
self.print_debug_handler("ping", iq)
|
||||
self.add_ping_timeout_timer()
|
||||
@@ -1014,7 +1029,7 @@ class Server:
|
||||
weechat.unhook(self.hook_fd)
|
||||
self.hook_fd = None
|
||||
if self.client != None:
|
||||
#if self.client.isConnected():
|
||||
# if self.client.isConnected():
|
||||
# self.client.disconnect()
|
||||
self.client = None
|
||||
self.jid = None
|
||||
@@ -1040,13 +1055,15 @@ class Server:
|
||||
for name, option in self.options.items():
|
||||
weechat.config_option_free(option)
|
||||
|
||||
|
||||
def eval_expression(option_name):
|
||||
""" Return a evaluated expression """
|
||||
if int(version) >= 0x00040200:
|
||||
return weechat.string_eval_expression(option_name,{},{},{})
|
||||
return weechat.string_eval_expression(option_name, {}, {}, {})
|
||||
else:
|
||||
return option_name
|
||||
|
||||
|
||||
def jabber_search_server_by_name(name):
|
||||
""" Search a server by name. """
|
||||
global jabber_servers
|
||||
@@ -1055,10 +1072,11 @@ def jabber_search_server_by_name(name):
|
||||
return server
|
||||
return None
|
||||
|
||||
|
||||
def jabber_search_context(buffer):
|
||||
""" Search a server / chat for a buffer. """
|
||||
global jabber_servers
|
||||
context = { "server": None, "chat": None }
|
||||
context = {"server": None, "chat": None}
|
||||
for server in jabber_servers:
|
||||
if server.buffer == buffer:
|
||||
context["server"] = server
|
||||
@@ -1070,6 +1088,7 @@ def jabber_search_context(buffer):
|
||||
return context
|
||||
return context
|
||||
|
||||
|
||||
def jabber_search_context_by_name(server_name):
|
||||
"""Search for buffer given name of server. """
|
||||
|
||||
@@ -1170,6 +1189,7 @@ class Chat:
|
||||
|
||||
class MUC:
|
||||
""" Class to manage XMPP MUC. """
|
||||
|
||||
def __init__(self, jid=None, chat=None, server=None):
|
||||
""" Init MUC
|
||||
|
||||
@@ -1245,13 +1265,13 @@ class MUC:
|
||||
weechat.prnt(self.chat.buffer, "")
|
||||
weechat.prnt(self.chat.buffer, "Buddies:")
|
||||
|
||||
len_max = { 'alias': 5, 'jid': 5 }
|
||||
len_max = {'alias': 5, 'jid': 5}
|
||||
lines = []
|
||||
for buddy in sorted(self.buddies, key=lambda x: str(x.jid)):
|
||||
alias = ''
|
||||
if buddy.alias != buddy.bare_jid:
|
||||
alias = buddy.alias
|
||||
lines.append( {
|
||||
lines.append({
|
||||
'jid': str(buddy.jid),
|
||||
'alias': alias,
|
||||
'status': buddy.away_string(),
|
||||
@@ -1363,9 +1383,11 @@ class MUC:
|
||||
msg))
|
||||
return
|
||||
|
||||
|
||||
class Buddy:
|
||||
""" Class to manage buddies. """
|
||||
def __init__(self, jid=None, chat=None, server=None ):
|
||||
|
||||
def __init__(self, jid=None, chat=None, server=None):
|
||||
""" Init buddy
|
||||
|
||||
Args:
|
||||
@@ -1475,6 +1497,7 @@ class Buddy:
|
||||
|
||||
# ================================[ commands ]================================
|
||||
|
||||
|
||||
def jabber_hook_commands_and_completions():
|
||||
""" Hook commands and completions. """
|
||||
weechat.hook_command(SCRIPT_COMMAND, "Manage Jabber servers",
|
||||
@@ -1561,6 +1584,7 @@ def jabber_hook_commands_and_completions():
|
||||
weechat.hook_completion("jabber_jid_aliases", "list of jabber jid aliases",
|
||||
"jabber_completion_jid_aliases", "")
|
||||
|
||||
|
||||
def jabber_list_servers_chats(name):
|
||||
""" List servers and chats. """
|
||||
global jabber_servers
|
||||
@@ -1585,6 +1609,7 @@ def jabber_list_servers_chats(name):
|
||||
else:
|
||||
weechat.prnt("", "jabber: no server defined")
|
||||
|
||||
|
||||
def jabber_cmd_jabber(data, buffer, args):
|
||||
""" Command '/jabber'. """
|
||||
global jabber_servers, jabber_config_option
|
||||
@@ -1595,7 +1620,7 @@ def jabber_cmd_jabber(data, buffer, args):
|
||||
argv1eol = ""
|
||||
pos = args.find(" ")
|
||||
if pos > 0:
|
||||
argv1eol = args[pos+1:]
|
||||
argv1eol = args[pos + 1:]
|
||||
if argv[0] == "list":
|
||||
jabber_list_servers_chats(argv[1])
|
||||
elif argv[0] == "add":
|
||||
@@ -1610,8 +1635,10 @@ def jabber_cmd_jabber(data, buffer, args):
|
||||
if conn_port and not conn_port.isdigit():
|
||||
weechat.prnt("", "jabber: error, invalid port, digits only")
|
||||
return weechat.WEECHAT_RC_OK
|
||||
if conn_server: kwargs['server'] = conn_server
|
||||
if conn_port: kwargs['port'] = conn_port
|
||||
if conn_server:
|
||||
kwargs['server'] = conn_server
|
||||
if conn_port:
|
||||
kwargs['port'] = conn_port
|
||||
server = Server(argv[1], **kwargs)
|
||||
jabber_servers.append(server)
|
||||
weechat.prnt("", "jabber: server '%s' created" % argv[1])
|
||||
@@ -1694,13 +1721,16 @@ def jabber_cmd_jabber(data, buffer, args):
|
||||
if context["server"]:
|
||||
if len(argv) == 1:
|
||||
show = context["server"].presence.getShow()
|
||||
if show == "": show = "online"
|
||||
if show == "":
|
||||
show = "online"
|
||||
weechat.prnt("", "jabber: presence = %s" % show)
|
||||
elif not re.match(r'^(?:online|chat|away|xa|dnd)$', argv[1]):
|
||||
weechat.prnt("", "jabber: Presence should be one of: online, chat, away, xa, dnd")
|
||||
else:
|
||||
if argv[1] == "online": show = ""
|
||||
else: show = argv[1]
|
||||
if argv[1] == "online":
|
||||
show = ""
|
||||
else:
|
||||
show = argv[1]
|
||||
context["server"].set_presence(show=show)
|
||||
elif argv[0] == "buddies":
|
||||
context = jabber_search_context(buffer)
|
||||
@@ -1716,6 +1746,7 @@ def jabber_cmd_jabber(data, buffer, args):
|
||||
weechat.prnt("", "jabber: unknown action")
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_cmd_jchat(data, buffer, args):
|
||||
""" Command '/jchat'. """
|
||||
if args:
|
||||
@@ -1731,6 +1762,7 @@ def jabber_cmd_jchat(data, buffer, args):
|
||||
weechat.prnt("", "Usage: /jchat <nickname>")
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_cmd_room(data, buffer, args):
|
||||
""" Command '/jroom'. """
|
||||
global jabber_config_file
|
||||
@@ -1767,6 +1799,7 @@ def jabber_cmd_room(data, buffer, args):
|
||||
weechat.prnt("", "Usage: /jroom <roomname>@conference.<server_FQDN> [<optional_user_nickname>]")
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_cmd_jmsg(data, buffer, args):
|
||||
""" Command '/jmsg'. """
|
||||
if args:
|
||||
@@ -1787,6 +1820,7 @@ def jabber_cmd_jmsg(data, buffer, args):
|
||||
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_cmd_invite(data, buffer, args):
|
||||
""" Command '/invite'. """
|
||||
if args:
|
||||
@@ -1795,6 +1829,7 @@ def jabber_cmd_invite(data, buffer, args):
|
||||
context["server"].add_buddy(args)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_cmd_kick(data, buffer, args):
|
||||
""" Command '/kick'. """
|
||||
if args:
|
||||
@@ -1803,6 +1838,7 @@ def jabber_cmd_kick(data, buffer, args):
|
||||
context["server"].del_buddy(args)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_away_command_run_cb(data, buffer, command):
|
||||
""" Callback called when /away -all command is run """
|
||||
global jabber_servers
|
||||
@@ -1816,6 +1852,7 @@ def jabber_away_command_run_cb(data, buffer, command):
|
||||
server.set_away(message)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
class AliasCommand(object):
|
||||
"""Class representing a jabber alias command, ie /jabber alias ..."""
|
||||
|
||||
@@ -1945,7 +1982,8 @@ class AliasCommand(object):
|
||||
self.action = self.argv[0]
|
||||
if len(self.argv) > 1:
|
||||
# Pad argv list to prevent IndexError exceptions
|
||||
while len(self.argv) < 3: self.argv.append('')
|
||||
while len(self.argv) < 3:
|
||||
self.argv.append('')
|
||||
self.alias = self.argv[1]
|
||||
self.jid = self.argv[2]
|
||||
return
|
||||
@@ -1959,6 +1997,7 @@ class AliasCommand(object):
|
||||
self.list()
|
||||
return
|
||||
|
||||
|
||||
def jabber_completion_servers(data, completion_item, buffer, completion):
|
||||
""" Completion with jabber server names. """
|
||||
global jabber_servers
|
||||
@@ -1967,6 +2006,7 @@ def jabber_completion_servers(data, completion_item, buffer, completion):
|
||||
0, weechat.WEECHAT_LIST_POS_SORT)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_completion_jid_aliases(data, completion_item, buffer, completion):
|
||||
""" Completion with jabber alias names. """
|
||||
global jabber_jid_aliases
|
||||
@@ -1977,6 +2017,7 @@ def jabber_completion_jid_aliases(data, completion_item, buffer, completion):
|
||||
|
||||
# ==================================[ fd ]====================================
|
||||
|
||||
|
||||
def jabber_fd_cb(data, fd):
|
||||
""" Callback for reading socket. """
|
||||
global jabber_servers
|
||||
@@ -1987,6 +2028,7 @@ def jabber_fd_cb(data, fd):
|
||||
|
||||
# ================================[ buffers ]=================================
|
||||
|
||||
|
||||
def jabber_buffer_input_cb(data, buffer, input_data):
|
||||
""" Callback called for input data on a jabber buffer. """
|
||||
context = jabber_search_context(buffer)
|
||||
@@ -1999,6 +2041,7 @@ def jabber_buffer_input_cb(data, buffer, input_data):
|
||||
context["server"].send_message_from_input(input=input_data)
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_buffer_close_cb(data, buffer):
|
||||
""" Callback called when a jabber buffer is closed. """
|
||||
context = jabber_search_context(buffer)
|
||||
@@ -2013,12 +2056,14 @@ def jabber_buffer_close_cb(data, buffer):
|
||||
|
||||
# ==================================[ timers ]==================================
|
||||
|
||||
|
||||
def jabber_ping_timeout_timer(server_name, remaining_calls):
|
||||
server = jabber_search_server_by_name(server_name)
|
||||
if server:
|
||||
server.ping_time_out()
|
||||
return weechat.WEECHAT_RC_OK
|
||||
|
||||
|
||||
def jabber_ping_timer(server_name, remaining_calls):
|
||||
server = jabber_search_server_by_name(server_name)
|
||||
if server:
|
||||
@@ -2027,6 +2072,7 @@ def jabber_ping_timer(server_name, remaining_calls):
|
||||
|
||||
# ==================================[ main ]==================================
|
||||
|
||||
|
||||
if __name__ == "__main__" and import_ok:
|
||||
if weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION,
|
||||
SCRIPT_LICENSE, SCRIPT_DESC,
|
||||
@@ -2046,6 +2092,7 @@ if __name__ == "__main__" and import_ok:
|
||||
|
||||
# ==================================[ end ]===================================
|
||||
|
||||
|
||||
def jabber_unload_script():
|
||||
""" Function called when script is unloaded. """
|
||||
global jabber_servers
|
||||
|
||||
Reference in New Issue
Block a user