Segregate XMPP (Jabber) client and component; each to its respective module.
This commit is contained in:
parent
78a83ff121
commit
f8bdfca972
4 changed files with 78 additions and 73 deletions
|
@ -107,82 +107,11 @@ match account_mode:
|
|||
class JabberComponent:
|
||||
def __init__(self, jid, secret, hostname, port, alias=None):
|
||||
xmpp = SlixfeedComponent(jid, secret, hostname, port, alias)
|
||||
xmpp.register_plugin('xep_0004') # Data Forms
|
||||
xmpp.register_plugin('xep_0030') # Service Discovery
|
||||
xmpp.register_plugin('xep_0045') # Multi-User Chat
|
||||
# xmpp.register_plugin('xep_0048') # Bookmarks
|
||||
xmpp.register_plugin('xep_0050') # Ad-Hoc Commands
|
||||
xmpp.register_plugin('xep_0054') # vcard-temp
|
||||
xmpp.register_plugin('xep_0060') # Publish-Subscribe
|
||||
# xmpp.register_plugin('xep_0065') # SOCKS5 Bytestreams
|
||||
xmpp.register_plugin('xep_0066') # Out of Band Data
|
||||
xmpp.register_plugin('xep_0071') # XHTML-IM
|
||||
xmpp.register_plugin('xep_0084') # User Avatar
|
||||
xmpp.register_plugin('xep_0085') # Chat State Notifications
|
||||
xmpp.register_plugin('xep_0115') # Entity Capabilities
|
||||
xmpp.register_plugin('xep_0122') # Data Forms Validation
|
||||
xmpp.register_plugin('xep_0153') # vCard-Based Avatars
|
||||
xmpp.register_plugin('xep_0199') # XMPP Ping
|
||||
xmpp.register_plugin('xep_0203') # Delayed Delivery
|
||||
xmpp.register_plugin('xep_0249') # Direct MUC Invitations
|
||||
xmpp.register_plugin('xep_0297') # Stanza Forwarding
|
||||
xmpp.register_plugin('xep_0356') # Privileged Entity
|
||||
xmpp.register_plugin('xep_0363') # HTTP File Upload
|
||||
xmpp.register_plugin('xep_0402') # PEP Native Bookmarks
|
||||
xmpp.register_plugin('xep_0444') # Message Reactions
|
||||
xmpp.connect()
|
||||
xmpp.process()
|
||||
|
||||
|
||||
class JabberClient:
|
||||
def __init__(self, jid, password, hostname=None, port=None, alias=None):
|
||||
xmpp = Slixfeed(jid, password, hostname, port, alias)
|
||||
xmpp.register_plugin('xep_0004') # Data Forms
|
||||
xmpp.register_plugin('xep_0030') # Service Discovery
|
||||
xmpp.register_plugin('xep_0045') # Multi-User Chat
|
||||
xmpp.register_plugin('xep_0048') # Bookmarks
|
||||
xmpp.register_plugin('xep_0050') # Ad-Hoc Commands
|
||||
xmpp.register_plugin('xep_0054') # vcard-temp
|
||||
xmpp.register_plugin('xep_0060') # Publish-Subscribe
|
||||
# xmpp.register_plugin('xep_0065') # SOCKS5 Bytestreams
|
||||
xmpp.register_plugin('xep_0066') # Out of Band Data
|
||||
xmpp.register_plugin('xep_0071') # XHTML-IM
|
||||
xmpp.register_plugin('xep_0084') # User Avatar
|
||||
xmpp.register_plugin('xep_0085') # Chat State Notifications
|
||||
xmpp.register_plugin('xep_0115') # Entity Capabilities
|
||||
xmpp.register_plugin('xep_0122') # Data Forms Validation
|
||||
xmpp.register_plugin('xep_0153') # vCard-Based Avatars
|
||||
xmpp.register_plugin('xep_0199', {'keepalive': True}) # XMPP Ping
|
||||
xmpp.register_plugin('xep_0249') # Direct MUC Invitations
|
||||
xmpp.register_plugin('xep_0363') # HTTP File Upload
|
||||
xmpp.register_plugin('xep_0402') # PEP Native Bookmarks
|
||||
xmpp.register_plugin('xep_0444') # Message Reactions
|
||||
|
||||
# proxy_enabled = config.get_value('accounts', 'XMPP', 'proxy_enabled')
|
||||
# if proxy_enabled == '1':
|
||||
# values = config.get_value('accounts', 'XMPP', [
|
||||
# 'proxy_host',
|
||||
# 'proxy_port',
|
||||
# 'proxy_username',
|
||||
# 'proxy_password'
|
||||
# ])
|
||||
# print('Proxy is enabled: {}:{}'.format(values[0], values[1]))
|
||||
# xmpp.use_proxy = True
|
||||
# xmpp.proxy_config = {
|
||||
# 'host': values[0],
|
||||
# 'port': values[1],
|
||||
# 'username': values[2],
|
||||
# 'password': values[3]
|
||||
# }
|
||||
# proxy = {'socks5': (values[0], values[1])}
|
||||
# xmpp.proxy = {'socks5': ('localhost', 9050)}
|
||||
|
||||
# Connect to the XMPP server and start processing XMPP stanzas.
|
||||
if hostname and port:
|
||||
xmpp.connect((hostname, port))
|
||||
else:
|
||||
xmpp.connect()
|
||||
xmpp.process()
|
||||
|
||||
|
||||
def main():
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
__version__ = '0.1.69'
|
||||
__version_info__ = (0, 1, 69)
|
||||
__version__ = '0.1.70'
|
||||
__version_info__ = (0, 1, 70)
|
||||
|
|
|
@ -149,6 +149,47 @@ class Slixfeed(slixmpp.ClientXMPP):
|
|||
self.max_connection_attempts = 10
|
||||
self.reconnect_timeout = config.get_values('accounts.toml', 'xmpp')['settings']['reconnect_timeout']
|
||||
|
||||
self.register_plugin('xep_0004') # Data Forms
|
||||
self.register_plugin('xep_0030') # Service Discovery
|
||||
self.register_plugin('xep_0045') # Multi-User Chat
|
||||
self.register_plugin('xep_0048') # Bookmarks
|
||||
self.register_plugin('xep_0050') # Ad-Hoc Commands
|
||||
self.register_plugin('xep_0054') # vcard-temp
|
||||
self.register_plugin('xep_0060') # Publish-Subscribe
|
||||
# self.register_plugin('xep_0065') # SOCKS5 Bytestreams
|
||||
self.register_plugin('xep_0066') # Out of Band Data
|
||||
self.register_plugin('xep_0071') # XHTML-IM
|
||||
self.register_plugin('xep_0084') # User Avatar
|
||||
self.register_plugin('xep_0085') # Chat State Notifications
|
||||
self.register_plugin('xep_0115') # Entity Capabilities
|
||||
self.register_plugin('xep_0122') # Data Forms Validation
|
||||
self.register_plugin('xep_0153') # vCard-Based Avatars
|
||||
self.register_plugin('xep_0199', {'keepalive': True}) # XMPP Ping
|
||||
self.register_plugin('xep_0203') # Delayed Delivery
|
||||
self.register_plugin('xep_0249') # Direct MUC Invitations
|
||||
self.register_plugin('xep_0363') # HTTP File Upload
|
||||
self.register_plugin('xep_0402') # PEP Native Bookmarks
|
||||
self.register_plugin('xep_0444') # Message Reactions
|
||||
|
||||
# proxy_enabled = config.get_value('accounts', 'XMPP', 'proxy_enabled')
|
||||
# if proxy_enabled == '1':
|
||||
# values = config.get_value('accounts', 'XMPP', [
|
||||
# 'proxy_host',
|
||||
# 'proxy_port',
|
||||
# 'proxy_username',
|
||||
# 'proxy_password'
|
||||
# ])
|
||||
# print('Proxy is enabled: {}:{}'.format(values[0], values[1]))
|
||||
# self.use_proxy = True
|
||||
# self.proxy_config = {
|
||||
# 'host': values[0],
|
||||
# 'port': values[1],
|
||||
# 'username': values[2],
|
||||
# 'password': values[3]
|
||||
# }
|
||||
# proxy = {'socks5': (values[0], values[1])}
|
||||
# self.proxy = {'socks5': ('localhost', 9050)}
|
||||
|
||||
self.add_event_handler("session_start",
|
||||
self.on_session_start)
|
||||
self.add_event_handler("session_resumed",
|
||||
|
@ -208,6 +249,13 @@ class Slixfeed(slixmpp.ClientXMPP):
|
|||
self.add_event_handler('session_end',
|
||||
self.on_session_end)
|
||||
|
||||
# Connect to the XMPP server and start processing XMPP stanzas.
|
||||
if hostname and port:
|
||||
self.connect((hostname, port))
|
||||
else:
|
||||
self.connect()
|
||||
self.process()
|
||||
|
||||
|
||||
# TODO Test
|
||||
async def on_groupchat_invite(self, message):
|
||||
|
|
|
@ -139,6 +139,30 @@ class SlixfeedComponent(slixmpp.ComponentXMPP):
|
|||
self.max_connection_attempts = 10
|
||||
self.reconnect_timeout = config.get_values('accounts.toml', 'xmpp')['settings']['reconnect_timeout']
|
||||
|
||||
self.register_plugin('xep_0004') # Data Forms
|
||||
self.register_plugin('xep_0030') # Service Discovery
|
||||
self.register_plugin('xep_0045') # Multi-User Chat
|
||||
# self.register_plugin('xep_0048') # Bookmarks
|
||||
self.register_plugin('xep_0050') # Ad-Hoc Commands
|
||||
self.register_plugin('xep_0054') # vcard-temp
|
||||
self.register_plugin('xep_0060') # Publish-Subscribe
|
||||
# self.register_plugin('xep_0065') # SOCKS5 Bytestreams
|
||||
self.register_plugin('xep_0066') # Out of Band Data
|
||||
self.register_plugin('xep_0071') # XHTML-IM
|
||||
self.register_plugin('xep_0084') # User Avatar
|
||||
self.register_plugin('xep_0085') # Chat State Notifications
|
||||
self.register_plugin('xep_0115') # Entity Capabilities
|
||||
self.register_plugin('xep_0122') # Data Forms Validation
|
||||
self.register_plugin('xep_0153') # vCard-Based Avatars
|
||||
self.register_plugin('xep_0199') # XMPP Ping
|
||||
self.register_plugin('xep_0203') # Delayed Delivery
|
||||
self.register_plugin('xep_0249') # Direct MUC Invitations
|
||||
self.register_plugin('xep_0297') # Stanza Forwarding
|
||||
self.register_plugin('xep_0356') # Privileged Entity
|
||||
self.register_plugin('xep_0363') # HTTP File Upload
|
||||
self.register_plugin('xep_0402') # PEP Native Bookmarks
|
||||
self.register_plugin('xep_0444') # Message Reactions
|
||||
|
||||
self.add_event_handler("session_start",
|
||||
self.on_session_start)
|
||||
self.add_event_handler("session_resumed",
|
||||
|
@ -198,6 +222,10 @@ class SlixfeedComponent(slixmpp.ComponentXMPP):
|
|||
self.add_event_handler('session_end',
|
||||
self.on_session_end)
|
||||
|
||||
# Connect to the XMPP server and start processing XMPP stanzas.
|
||||
self.connect()
|
||||
self.process()
|
||||
|
||||
|
||||
async def on_groupchat_invite(self, message):
|
||||
# logging.warning("on_groupchat_invite")
|
||||
|
|
Loading…
Reference in a new issue