slidge 0.1.0rc1__py3-none-any.whl → 0.1.1__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- slidge/__init__.py +54 -31
- slidge/__main__.py +51 -5
- slidge/command/__init__.py +28 -0
- slidge/command/adhoc.py +258 -0
- slidge/command/admin.py +193 -0
- slidge/command/base.py +441 -0
- slidge/command/categories.py +3 -0
- slidge/command/chat_command.py +288 -0
- slidge/command/register.py +179 -0
- slidge/command/user.py +250 -0
- slidge/contact/__init__.py +8 -0
- slidge/contact/contact.py +452 -0
- slidge/contact/roster.py +192 -0
- slidge/core/__init__.py +2 -0
- slidge/core/cache.py +121 -39
- slidge/core/config.py +116 -11
- slidge/core/gateway/__init__.py +3 -0
- slidge/core/gateway/base.py +895 -0
- slidge/core/gateway/caps.py +63 -0
- slidge/core/gateway/delivery_receipt.py +52 -0
- slidge/core/gateway/disco.py +80 -0
- slidge/core/gateway/mam.py +75 -0
- slidge/core/gateway/muc_admin.py +35 -0
- slidge/core/gateway/ping.py +66 -0
- slidge/core/gateway/presence.py +95 -0
- slidge/core/gateway/registration.py +53 -0
- slidge/core/gateway/search.py +102 -0
- slidge/core/gateway/session_dispatcher.py +789 -0
- slidge/core/gateway/vcard_temp.py +130 -0
- slidge/core/mixins/__init__.py +9 -1
- slidge/core/mixins/attachment.py +506 -0
- slidge/core/mixins/avatar.py +167 -0
- slidge/core/mixins/base.py +6 -19
- slidge/core/mixins/disco.py +66 -15
- slidge/core/mixins/lock.py +31 -0
- slidge/core/mixins/message.py +254 -252
- slidge/core/mixins/message_maker.py +154 -0
- slidge/core/mixins/presence.py +128 -31
- slidge/core/mixins/recipient.py +43 -0
- slidge/core/pubsub.py +275 -116
- slidge/core/session.py +586 -518
- slidge/group/__init__.py +10 -0
- slidge/group/archive.py +125 -0
- slidge/group/bookmarks.py +163 -0
- slidge/group/participant.py +458 -0
- slidge/group/room.py +1103 -0
- slidge/migration.py +18 -0
- slidge/slixfix/__init__.py +68 -0
- slidge/{util/xep_0050 → slixfix/link_preview}/__init__.py +4 -5
- slidge/slixfix/link_preview/link_preview.py +17 -0
- slidge/slixfix/link_preview/stanza.py +99 -0
- slidge/slixfix/roster.py +60 -0
- slidge/{util → slixfix}/xep_0077/register.py +1 -2
- slidge/slixfix/xep_0077/stanza.py +104 -0
- slidge/{util → slixfix}/xep_0100/gateway.py +17 -12
- slidge/slixfix/xep_0153/__init__.py +10 -0
- slidge/slixfix/xep_0153/stanza.py +25 -0
- slidge/slixfix/xep_0153/vcard_avatar.py +23 -0
- slidge/slixfix/xep_0264/__init__.py +5 -0
- slidge/slixfix/xep_0264/stanza.py +36 -0
- slidge/slixfix/xep_0264/thumbnail.py +23 -0
- slidge/slixfix/xep_0292/__init__.py +5 -0
- slidge/slixfix/xep_0292/vcard4.py +100 -0
- slidge/slixfix/xep_0313/__init__.py +12 -0
- slidge/slixfix/xep_0313/mam.py +262 -0
- slidge/slixfix/xep_0313/stanza.py +359 -0
- slidge/slixfix/xep_0317/__init__.py +5 -0
- slidge/slixfix/xep_0317/hats.py +17 -0
- slidge/slixfix/xep_0317/stanza.py +28 -0
- slidge/{util → slixfix}/xep_0356_old/privilege.py +9 -7
- slidge/slixfix/xep_0424/__init__.py +9 -0
- slidge/slixfix/xep_0424/retraction.py +77 -0
- slidge/slixfix/xep_0424/stanza.py +28 -0
- slidge/slixfix/xep_0490/__init__.py +8 -0
- slidge/slixfix/xep_0490/mds.py +47 -0
- slidge/slixfix/xep_0490/stanza.py +17 -0
- slidge/util/__init__.py +4 -6
- slidge/util/archive_msg.py +61 -0
- slidge/util/conf.py +25 -4
- slidge/util/db.py +23 -69
- slidge/util/schema.sql +126 -0
- slidge/util/sql.py +508 -0
- slidge/util/test.py +136 -86
- slidge/util/types.py +155 -14
- slidge/util/util.py +225 -51
- slidge-0.1.1.dist-info/METADATA +110 -0
- slidge-0.1.1.dist-info/RECORD +96 -0
- {slidge-0.1.0rc1.dist-info → slidge-0.1.1.dist-info}/WHEEL +1 -1
- slidge/core/adhoc.py +0 -492
- slidge/core/chat_command.py +0 -197
- slidge/core/contact.py +0 -441
- slidge/core/disco.py +0 -59
- slidge/core/gateway.py +0 -899
- slidge/core/muc/__init__.py +0 -3
- slidge/core/muc/bookmarks.py +0 -74
- slidge/core/muc/participant.py +0 -152
- slidge/core/muc/room.py +0 -348
- slidge/plugins/discord/__init__.py +0 -121
- slidge/plugins/discord/client.py +0 -121
- slidge/plugins/discord/session.py +0 -172
- slidge/plugins/dummy.py +0 -334
- slidge/plugins/facebook.py +0 -591
- slidge/plugins/hackernews.py +0 -209
- slidge/plugins/mattermost/__init__.py +0 -1
- slidge/plugins/mattermost/api.py +0 -288
- slidge/plugins/mattermost/gateway.py +0 -417
- slidge/plugins/mattermost/websocket.py +0 -248
- slidge/plugins/signal/__init__.py +0 -4
- slidge/plugins/signal/config.py +0 -4
- slidge/plugins/signal/contact.py +0 -104
- slidge/plugins/signal/gateway.py +0 -379
- slidge/plugins/signal/group.py +0 -76
- slidge/plugins/signal/session.py +0 -515
- slidge/plugins/signal/txt.py +0 -13
- slidge/plugins/signal/util.py +0 -32
- slidge/plugins/skype.py +0 -310
- slidge/plugins/steam.py +0 -400
- slidge/plugins/telegram/__init__.py +0 -6
- slidge/plugins/telegram/client.py +0 -325
- slidge/plugins/telegram/config.py +0 -21
- slidge/plugins/telegram/contact.py +0 -154
- slidge/plugins/telegram/gateway.py +0 -182
- slidge/plugins/telegram/group.py +0 -184
- slidge/plugins/telegram/session.py +0 -275
- slidge/plugins/telegram/util.py +0 -153
- slidge/plugins/whatsapp/__init__.py +0 -6
- slidge/plugins/whatsapp/config.py +0 -17
- slidge/plugins/whatsapp/contact.py +0 -33
- slidge/plugins/whatsapp/event.go +0 -455
- slidge/plugins/whatsapp/gateway.go +0 -156
- slidge/plugins/whatsapp/gateway.py +0 -69
- slidge/plugins/whatsapp/go.mod +0 -17
- slidge/plugins/whatsapp/go.sum +0 -22
- slidge/plugins/whatsapp/session.go +0 -371
- slidge/plugins/whatsapp/session.py +0 -370
- slidge/util/xep_0030/__init__.py +0 -13
- slidge/util/xep_0030/disco.py +0 -811
- slidge/util/xep_0030/stanza/__init__.py +0 -7
- slidge/util/xep_0030/stanza/info.py +0 -270
- slidge/util/xep_0030/stanza/items.py +0 -147
- slidge/util/xep_0030/static.py +0 -467
- slidge/util/xep_0050/adhoc.py +0 -631
- slidge/util/xep_0050/stanza.py +0 -180
- slidge/util/xep_0077/stanza.py +0 -71
- slidge/util/xep_0292/__init__.py +0 -1
- slidge/util/xep_0292/stanza.py +0 -167
- slidge/util/xep_0292/vcard4.py +0 -74
- slidge/util/xep_0356/__init__.py +0 -7
- slidge/util/xep_0356/permissions.py +0 -35
- slidge/util/xep_0356/privilege.py +0 -160
- slidge/util/xep_0356/stanza.py +0 -44
- slidge/util/xep_0461/__init__.py +0 -6
- slidge/util/xep_0461/reply.py +0 -48
- slidge/util/xep_0461/stanza.py +0 -80
- slidge-0.1.0rc1.dist-info/METADATA +0 -171
- slidge-0.1.0rc1.dist-info/RECORD +0 -99
- /slidge/{plugins/__init__.py → py.typed} +0 -0
- /slidge/{util → slixfix}/xep_0077/__init__.py +0 -0
- /slidge/{util → slixfix}/xep_0100/__init__.py +0 -0
- /slidge/{util → slixfix}/xep_0100/stanza.py +0 -0
- /slidge/{util → slixfix}/xep_0356_old/__init__.py +0 -0
- /slidge/{util → slixfix}/xep_0356_old/stanza.py +0 -0
- {slidge-0.1.0rc1.dist-info → slidge-0.1.1.dist-info}/LICENSE +0 -0
- {slidge-0.1.0rc1.dist-info → slidge-0.1.1.dist-info}/entry_points.txt +0 -0
slidge/util/xep_0356/stanza.py
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
from slixmpp.plugins.xep_0297 import Forwarded
|
2
|
-
from slixmpp.stanza import Message
|
3
|
-
from slixmpp.xmlstream import ElementBase, register_stanza_plugin
|
4
|
-
|
5
|
-
|
6
|
-
class Privilege(ElementBase):
|
7
|
-
namespace = "urn:xmpp:privilege:2"
|
8
|
-
name = "privilege"
|
9
|
-
plugin_attrib = "privilege"
|
10
|
-
|
11
|
-
def permission(self, access):
|
12
|
-
for perm in self["perms"]:
|
13
|
-
if perm["access"] == access:
|
14
|
-
return perm["type"]
|
15
|
-
|
16
|
-
def roster(self):
|
17
|
-
return self.permission("roster")
|
18
|
-
|
19
|
-
def message(self):
|
20
|
-
return self.permission("message")
|
21
|
-
|
22
|
-
def presence(self):
|
23
|
-
return self.permission("presence")
|
24
|
-
|
25
|
-
def add_perm(self, access, type_):
|
26
|
-
# This should only be needed for servers, so maybe out of scope for slixmpp
|
27
|
-
perm = Perm()
|
28
|
-
perm["type"] = type_
|
29
|
-
perm["access"] = access
|
30
|
-
self.append(perm)
|
31
|
-
|
32
|
-
|
33
|
-
class Perm(ElementBase):
|
34
|
-
namespace = "urn:xmpp:privilege:2"
|
35
|
-
name = "perm"
|
36
|
-
plugin_attrib = "perm"
|
37
|
-
plugin_multi_attrib = "perms"
|
38
|
-
interfaces = {"type", "access"}
|
39
|
-
|
40
|
-
|
41
|
-
def register():
|
42
|
-
register_stanza_plugin(Message, Privilege)
|
43
|
-
register_stanza_plugin(Privilege, Forwarded)
|
44
|
-
register_stanza_plugin(Privilege, Perm, iterable=True)
|
slidge/util/xep_0461/__init__.py
DELETED
slidge/util/xep_0461/reply.py
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
from slixmpp.plugins import BasePlugin
|
2
|
-
from slixmpp.types import JidStr
|
3
|
-
from slixmpp.xmlstream import StanzaBase
|
4
|
-
from slixmpp.xmlstream.handler import Callback
|
5
|
-
from slixmpp.xmlstream.matcher import StanzaPath
|
6
|
-
|
7
|
-
from . import stanza
|
8
|
-
|
9
|
-
|
10
|
-
class XEP_0461(BasePlugin):
|
11
|
-
"""XEP-0461: Message Replies"""
|
12
|
-
|
13
|
-
name = "xep_0461"
|
14
|
-
description = "XEP-0461: Message Replies"
|
15
|
-
|
16
|
-
dependencies = {"xep_0030"}
|
17
|
-
stanza = stanza
|
18
|
-
namespace = stanza.NS
|
19
|
-
|
20
|
-
def plugin_init(self) -> None:
|
21
|
-
stanza.register_plugins()
|
22
|
-
self.xmpp.register_handler(
|
23
|
-
Callback(
|
24
|
-
"Message replied to",
|
25
|
-
StanzaPath("message/reply"),
|
26
|
-
self._handle_reply_to_message,
|
27
|
-
)
|
28
|
-
)
|
29
|
-
|
30
|
-
def plugin_end(self):
|
31
|
-
self.xmpp.plugin["xep_0030"].del_feature(feature=stanza.NS)
|
32
|
-
|
33
|
-
def session_bind(self, jid):
|
34
|
-
self.xmpp.plugin["xep_0030"].add_feature(feature=stanza.NS)
|
35
|
-
|
36
|
-
def _handle_reply_to_message(self, msg: StanzaBase):
|
37
|
-
self.xmpp.event("message_reply", msg)
|
38
|
-
|
39
|
-
def send_reply(self, reply_to: JidStr, reply_id: str, **msg_kwargs):
|
40
|
-
"""
|
41
|
-
|
42
|
-
:param reply_to: Full JID of the quoted author
|
43
|
-
:param reply_id: ID of the message to reply to
|
44
|
-
"""
|
45
|
-
msg = self.xmpp.make_message(**msg_kwargs)
|
46
|
-
msg["reply"]["to"] = reply_to
|
47
|
-
msg["reply"]["id"] = reply_id
|
48
|
-
msg.send()
|
slidge/util/xep_0461/stanza.py
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
from slixmpp.stanza import Message
|
2
|
-
from slixmpp.xmlstream import ElementBase, register_stanza_plugin
|
3
|
-
|
4
|
-
NS = "urn:xmpp:reply:0"
|
5
|
-
|
6
|
-
|
7
|
-
class Reply(ElementBase):
|
8
|
-
namespace = NS
|
9
|
-
name = "reply"
|
10
|
-
plugin_attrib = "reply"
|
11
|
-
interfaces = {"id", "to"}
|
12
|
-
|
13
|
-
|
14
|
-
class FeatureFallBack(ElementBase):
|
15
|
-
# should also be a multi attrib
|
16
|
-
namespace = "urn:xmpp:fallback:0"
|
17
|
-
name = "fallback"
|
18
|
-
plugin_attrib = "feature_fallback"
|
19
|
-
interfaces = {"for"}
|
20
|
-
|
21
|
-
def get_stripped_body(self):
|
22
|
-
# only works for a single fallback_body attrib
|
23
|
-
start = self["fallback_body"]["start"]
|
24
|
-
end = self["fallback_body"]["end"]
|
25
|
-
body = self.parent()["body"]
|
26
|
-
if start <= end < len(body):
|
27
|
-
return body[:start] + body[end:]
|
28
|
-
else:
|
29
|
-
return body
|
30
|
-
|
31
|
-
def get_fallback_body(self):
|
32
|
-
# only works for a single fallback_body attrib
|
33
|
-
start = self["fallback_body"]["start"]
|
34
|
-
end = self["fallback_body"]["end"]
|
35
|
-
body = self.parent()["body"]
|
36
|
-
if start <= end:
|
37
|
-
return body[start:end]
|
38
|
-
else:
|
39
|
-
return ""
|
40
|
-
|
41
|
-
def add_quoted_fallback(self, fallback: str):
|
42
|
-
msg = self.parent()
|
43
|
-
quoted = "\n".join("> " + x.strip() for x in fallback.split("\n")) + "\n"
|
44
|
-
msg["body"] = quoted + msg["body"]
|
45
|
-
msg["feature_fallback"]["for"] = NS
|
46
|
-
msg["feature_fallback"]["fallback_body"]["start"] = 0
|
47
|
-
msg["feature_fallback"]["fallback_body"]["end"] = len(quoted)
|
48
|
-
|
49
|
-
|
50
|
-
class FallBackBody(ElementBase):
|
51
|
-
# According to https://xmpp.org/extensions/inbox/compatibility-fallback.html
|
52
|
-
# this should be a multi_attrib *but* since it's a protoXEP, we'll see...
|
53
|
-
namespace = FeatureFallBack.namespace
|
54
|
-
name = "body"
|
55
|
-
plugin_attrib = "fallback_body"
|
56
|
-
interfaces = {"start", "end"}
|
57
|
-
|
58
|
-
def set_start(self, v: int):
|
59
|
-
self._set_attr("start", str(v))
|
60
|
-
|
61
|
-
def get_start(self):
|
62
|
-
try:
|
63
|
-
return int(self._get_attr("start"))
|
64
|
-
except ValueError:
|
65
|
-
return 0
|
66
|
-
|
67
|
-
def set_end(self, v: int):
|
68
|
-
self._set_attr("end", str(v))
|
69
|
-
|
70
|
-
def get_end(self):
|
71
|
-
try:
|
72
|
-
return int(self._get_attr("end"))
|
73
|
-
except ValueError:
|
74
|
-
return 0
|
75
|
-
|
76
|
-
|
77
|
-
def register_plugins():
|
78
|
-
register_stanza_plugin(Message, Reply)
|
79
|
-
register_stanza_plugin(Message, FeatureFallBack)
|
80
|
-
register_stanza_plugin(FeatureFallBack, FallBackBody)
|
@@ -1,171 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: slidge
|
3
|
-
Version: 0.1.0rc1
|
4
|
-
Summary: XMPP bridging framework
|
5
|
-
Home-page: https://sr.ht/~nicoco/slidge/
|
6
|
-
License: AGPL-3.0-or-later
|
7
|
-
Author: Nicolas Cedilnik
|
8
|
-
Author-email: nicoco@nicoco.fr
|
9
|
-
Requires-Python: >=3.9,<4.0
|
10
|
-
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
12
|
-
Classifier: Programming Language :: Python :: 3.9
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
14
|
-
Classifier: Programming Language :: Python :: 3.11
|
15
|
-
Provides-Extra: discord
|
16
|
-
Provides-Extra: facebook
|
17
|
-
Provides-Extra: mattermost
|
18
|
-
Provides-Extra: signal
|
19
|
-
Provides-Extra: skype
|
20
|
-
Provides-Extra: steam
|
21
|
-
Provides-Extra: telegram
|
22
|
-
Requires-Dist: ConfigArgParse (>=1.5.3,<2.0.0)
|
23
|
-
Requires-Dist: Pillow (>=8.1.0)
|
24
|
-
Requires-Dist: SkPy (>=0.10.4,<0.11.0) ; extra == "skype"
|
25
|
-
Requires-Dist: aiohttp (>=3.6.0)
|
26
|
-
Requires-Dist: aiosignald (>=0.3.4,<0.4.0) ; extra == "signal"
|
27
|
-
Requires-Dist: aiotdlib (>=0.19.2,<0.20.0) ; extra == "telegram"
|
28
|
-
Requires-Dist: discord.py-self (>=1.9.2,<2.0.0) ; extra == "discord"
|
29
|
-
Requires-Dist: emoji (>=2.0.0,<3.0.0) ; extra == "mattermost"
|
30
|
-
Requires-Dist: mattermost-api-reference-client (>=4.0.0,<5.0.0) ; extra == "mattermost"
|
31
|
-
Requires-Dist: mautrix-facebook (>=0.4.1,<0.5.0) ; extra == "facebook"
|
32
|
-
Requires-Dist: pickle-secure (>=0.9.99,<0.10.0)
|
33
|
-
Requires-Dist: pydantic ; extra == "telegram"
|
34
|
-
Requires-Dist: qrcode (>=7.3)
|
35
|
-
Requires-Dist: slixmpp (>=1.8.3,<2.0.0)
|
36
|
-
Requires-Dist: steam[client] (>=1.3.0,<2.0.0) ; extra == "steam"
|
37
|
-
Description-Content-Type: text/markdown
|
38
|
-
|
39
|
-
Slidge 🛷
|
40
|
-
========
|
41
|
-
|
42
|
-
[Home](https://sr.ht/~nicoco/slidge) |
|
43
|
-
[Source](https://sr.ht/~nicoco/slidge/sources) |
|
44
|
-
[Issues](https://sr.ht/~nicoco/slidge/trackers) |
|
45
|
-
[Patches](https://lists.sr.ht/~nicoco/public-inbox) |
|
46
|
-
[Chat](xmpp:slidge@conference.nicoco.fr?join)
|
47
|
-
|
48
|
-
Turn any XMPP client into that fancy multiprotocol chat app that every cool kid want.
|
49
|
-
|
50
|
-
[](https://slidge.readthedocs.io/)
|
51
|
-
[](https://builds.sr.ht/~nicoco/slidge/commits/master/ci.yml?)
|
52
|
-
[](https://builds.sr.ht/~nicoco/slidge/commits/master/debian.yml?)
|
53
|
-
[](https://pypi.org/project/slidge/)
|
54
|
-
|
55
|
-
Slidge is a general purpose XMPP (puppeteer) gateway framework in python.
|
56
|
-
It's a work in progress, but it should make
|
57
|
-
[writing gateways to other chat networks](https://slidge.readthedocs.io/en/latest/dev/tutorial.html)
|
58
|
-
(*plugins*) as frictionless as possible.
|
59
|
-
|
60
|
-
It comes with a few plugins included, implementing at least basic direct messaging and often more "advanced"
|
61
|
-
instant messaging features:
|
62
|
-
|
63
|
-
| | Presences[¹] | Typing[²] | Marks[³] | Upload[⁴] | Edit[⁵] | React[⁶] | Retract[⁷] | Reply[⁸] | Groups[⁹] |
|
64
|
-
|------------|--------------|-----------|----------|-----------|---------|----------|------------|----------|-----------|
|
65
|
-
| Signal | N/A | ✅ | ✅ | ✅ | N/A | ✅ | ✅ | ✅ | ~ |
|
66
|
-
| Telegram | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ~ |
|
67
|
-
| Discord | ❌ | ✅ | N/A | ✅ | ✅ | ~ | ✅ | ✅ | ❌ |
|
68
|
-
| Steam | ✅ | ✅ | N/A | ❌ | N/A | ~ | N/A | N/A | ❌ |
|
69
|
-
| Mattermost | ✅ | ✅ | ~ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
|
70
|
-
| Facebook | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
|
71
|
-
| Skype | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
|
72
|
-
| WhatsApp | ✅ | ✅ | ✅ | ✅ | N/A | ✅ | ✅ | ✅ | ❌ |
|
73
|
-
|
74
|
-
|
75
|
-
[¹]: https://xmpp.org/rfcs/rfc6121.html#presence
|
76
|
-
[²]: https://xmpp.org/extensions/xep-0085.html
|
77
|
-
[³]: https://xmpp.org/extensions/xep-0333.html
|
78
|
-
[⁴]: https://xmpp.org/extensions/xep-0363.html
|
79
|
-
[⁵]: https://xmpp.org/extensions/xep-0308.html
|
80
|
-
[⁶]: https://xmpp.org/extensions/xep-0444.html
|
81
|
-
[⁷]: https://xmpp.org/extensions/xep-0424.html
|
82
|
-
[⁸]: https://xmpp.org/extensions/xep-0461.html
|
83
|
-
[⁹]: https://xmpp.org/extensions/xep-0045.html
|
84
|
-
|
85
|
-
|
86
|
-
This table may not be entirely accurate, but **in theory**, stuff marked ✅ works.
|
87
|
-
N/A means that the legacy network does not have an equivalent of this XMPP feature
|
88
|
-
(because XMPP is better, what did you think?).
|
89
|
-
|
90
|
-
**WARNING**: you may break the terms of use of a legacy network and end up getting your account locked
|
91
|
-
by using slidge. Refer to the
|
92
|
-
[keeping a low profile](https://slidge.readthedocs.io/en/latest/user/low_profile.html)
|
93
|
-
documentation page for more info.
|
94
|
-
|
95
|
-
Status
|
96
|
-
------
|
97
|
-
|
98
|
-
Slidge is **beta**-grade software for 1:1 chats.
|
99
|
-
Group chat support is **experimental**.
|
100
|
-
|
101
|
-
Try slidge and give us some
|
102
|
-
feedback, through the [MUC](xmpp:slidge@conference.nicoco.fr?join), the
|
103
|
-
[issue tracker](https://todo.sr.ht/~nicoco/slidge) or in the
|
104
|
-
[public inbox](https://lists.sr.ht/~nicoco/public-inbox).
|
105
|
-
Don't be shy!
|
106
|
-
|
107
|
-
Installation
|
108
|
-
------------
|
109
|
-
|
110
|
-
### containers
|
111
|
-
|
112
|
-
Containers for arm64 and amd64 are available on
|
113
|
-
[docker hub](https://hub.docker.com/u/nicocool84).
|
114
|
-
|
115
|
-
### debian
|
116
|
-
|
117
|
-
Debian packages for *bullseye* (amd64 only for now, help welcome
|
118
|
-
to support other architectures)
|
119
|
-
are built on each push to master as artifacts of
|
120
|
-
[this build job](https://builds.sr.ht/~nicoco/slidge/commits/master/debian.yml?).
|
121
|
-
|
122
|
-
A repo is maintained by IGImonster. To use it do this (as root):
|
123
|
-
|
124
|
-
```sh
|
125
|
-
# trust the repo's key
|
126
|
-
wget -O- http://deb.slidge.im/repo/slidge.gpg.key \
|
127
|
-
|gpg --dearmor \
|
128
|
-
|tee /usr/share/keyrings/slidge.gpg > /dev/null
|
129
|
-
# add the repo, replace 'release' with 'nightly' if you're feeling adventurous
|
130
|
-
echo "deb [signed-by=/usr/share/keyrings/slidge.gpg] http://deb.slidge.im/repo/debian release main" \
|
131
|
-
> /etc/apt/sources.list.d/slidge.list
|
132
|
-
# install
|
133
|
-
apt update && apt install slidge -y
|
134
|
-
```
|
135
|
-
|
136
|
-
Refer to [the docs](https://slidge.readthedocs.io/en/latest/admin/launch.html#debian-packages)
|
137
|
-
for information about how to use the provided systemd service files.
|
138
|
-
|
139
|
-
### pip
|
140
|
-
|
141
|
-
Tagged releases are uploaded to [pypi](https://pypi.org/project/slidge/).
|
142
|
-
|
143
|
-
```sh
|
144
|
-
pip install slidge[signal] # you can replace signal with any network listed in the table above
|
145
|
-
python -m slidge --legacy-module=slidge.plugins.signal
|
146
|
-
```
|
147
|
-
|
148
|
-
If you're looking for the bleeding edge, download an artifact
|
149
|
-
[here](https://builds.sr.ht/~nicoco/slidge/commits/master/ci.yml?).
|
150
|
-
|
151
|
-
About privacy
|
152
|
-
-------------
|
153
|
-
|
154
|
-
Slidge (and most if not all XMPP gateway that I know of) will break
|
155
|
-
end-to-end encryption, or more precisely one of the 'ends' become the
|
156
|
-
gateway itself. If privacy is a major concern for you, my advice would
|
157
|
-
be to:
|
158
|
-
|
159
|
-
- use XMPP + OMEMO
|
160
|
-
- self-host your gateways
|
161
|
-
- have your gateways hosted by someone you know AFK and trust
|
162
|
-
|
163
|
-
Related projects
|
164
|
-
----------------
|
165
|
-
|
166
|
-
- [Spectrum](https://www.spectrum.im/)
|
167
|
-
- [Bitfrost](https://github.com/matrix-org/matrix-bifrost)
|
168
|
-
- [Mautrix](https://github.com/mautrix)
|
169
|
-
- [matterbridge](https://github.com/42wim/matterbridge)
|
170
|
-
- [XMPP-discord-bridge](https://git.polynom.me/PapaTutuWawa/xmpp-discord-bridge)
|
171
|
-
|
slidge-0.1.0rc1.dist-info/RECORD
DELETED
@@ -1,99 +0,0 @@
|
|
1
|
-
slidge/__init__.py,sha256=tyBOCnlV7Hj21E5Tnpjb4YMHT9OK2vsuQ_qwv9fA_1k,841
|
2
|
-
slidge/__main__.py,sha256=kGAza5HGhPHqXdjv7Bt8C7-jipNwMw5Uzw13LA-Qn34,4257
|
3
|
-
slidge/core/__init__.py,sha256=KsroWIleBIaobXxutkx6Icwamt-2wtxdmfTFnZ5K3rM,36
|
4
|
-
slidge/core/adhoc.py,sha256=GqIVmwXVKT9vhkSoXrKbOSBAlq_34elU8MkXm0AABUc,17007
|
5
|
-
slidge/core/cache.py,sha256=mQ8tcTrsPlRvv072Y7dHkPbSkCMvPOJuPZBOoU-oXKo,2918
|
6
|
-
slidge/core/chat_command.py,sha256=64wuS1_0atPcTfvGhFWdPozXMOQwZockR_XuRBuF2oQ,7020
|
7
|
-
slidge/core/config.py,sha256=NgC9Pm425wzt2ILmuox-5gNwKRrB_kZeAnaNGcjg9Vk,3215
|
8
|
-
slidge/core/contact.py,sha256=QQ-YD6GAW4yMlEXA6SCK8Gc9ikzEgUz7HUxlByqq4Ak,14880
|
9
|
-
slidge/core/disco.py,sha256=L9y1gqvE2-Kpiy3UewMqKvOi05OIa8uQjJ3gAdLGITM,1707
|
10
|
-
slidge/core/gateway.py,sha256=w6ND4ynocckL0jRJYgFQ9qO9qZrxof8r60jvrx-ry04,33682
|
11
|
-
slidge/core/mixins/__init__.py,sha256=Kh6rAOq5u1JfCC7AiWvzRJgYUReDSY-GFFHACmq9FZY,307
|
12
|
-
slidge/core/mixins/base.py,sha256=h_vjafT4QiNZ18sysH_eZHALp_rLN4H0vncuNCU1r48,1072
|
13
|
-
slidge/core/mixins/disco.py,sha256=GqMgaJnTwRn50Lg18mjIWxJQB5DbSaz1wB6OIhgxJ2s,2113
|
14
|
-
slidge/core/mixins/message.py,sha256=EPQXRR4eW9-4IRVMsZRcXr-h-g6bowRd8pCftQtSyRY,14819
|
15
|
-
slidge/core/mixins/presence.py,sha256=CSM70EeXjIHfIN2MJDeFXDZm-4OtsUBD8VHUbnZIdC8,3770
|
16
|
-
slidge/core/muc/__init__.py,sha256=m6ZUUqLjavCk4guqF3tu0nSEZvo2urGFAw_vLXVQk7M,119
|
17
|
-
slidge/core/muc/bookmarks.py,sha256=QnHt8veLwIlMN9FxKEWay4ug3looKUXvCZWx0_L_PlM,2697
|
18
|
-
slidge/core/muc/participant.py,sha256=7dZXNP7LOzxmJ4GpYs4NOLp5kPoTCxzb4Q-G1iccgNg,5148
|
19
|
-
slidge/core/muc/room.py,sha256=0K2ZixTnQfztfeA9mfzqSu6JWHg0pcY9KLNFC8metok,11126
|
20
|
-
slidge/core/pubsub.py,sha256=muy8MwmMGhQIC8YuDzn9O3pEk_Wwft0u07BOb39H7z0,12305
|
21
|
-
slidge/core/session.py,sha256=haGsW0a16fqr-PlJOrcAK-duL6VeMde6nWwapay2Efk,24193
|
22
|
-
slidge/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
|
-
slidge/plugins/discord/__init__.py,sha256=6P9CfSJNzkx2FLIv6vv4fI1SvvZC3yqe1vTAdQVypXs,3759
|
24
|
-
slidge/plugins/discord/client.py,sha256=rhmM0-bpS33gBDeoGdgjDXsFf4lG89B3nHs28p2u7Vo,4357
|
25
|
-
slidge/plugins/discord/session.py,sha256=R5lMCcFb1fuDca5_XLh0sG1l1gDkaLib68JYf9E4Z2g,5841
|
26
|
-
slidge/plugins/dummy.py,sha256=WG4r3AbcH2RSh2G9y8i2JxWcj038hYpjYvA8unLRYNc,10479
|
27
|
-
slidge/plugins/facebook.py,sha256=l1PNORmXMYC7BU101wFEg_lNg0c1MuBXSoBp1P2tCv4,22184
|
28
|
-
slidge/plugins/hackernews.py,sha256=hl63_CRj_ubDOa8g02I_CGe3Cd7CPYizW8ZnvozQ8Ic,7604
|
29
|
-
slidge/plugins/mattermost/__init__.py,sha256=QvVBfx4ADUB33mYmtuYjKjMqNOLbGOIcj0puQp5iFk4,38
|
30
|
-
slidge/plugins/mattermost/api.py,sha256=tPm0O4bVEADnUbI5cYbcf5-xcVAr2vtuE1SPcLEWbHs,9601
|
31
|
-
slidge/plugins/mattermost/gateway.py,sha256=paFdcwtEl8fM8uNN-1Q6QK_fXpuDfWPDh3skSc56gwg,16234
|
32
|
-
slidge/plugins/mattermost/websocket.py,sha256=LSbmn4Qxy4hWPc4kckHS5eB13Zqt_X-oFz9nyEVLxZU,8504
|
33
|
-
slidge/plugins/signal/__init__.py,sha256=LXtkyq5k9Rx7zpBORiEIFmdWF1qKiy5XO5kz_qENDwo,115
|
34
|
-
slidge/plugins/signal/config.py,sha256=HvpQ_pNkFLqDqAu3JjTUf5mYXX-dsB-wkqY3eTKKxDQ,124
|
35
|
-
slidge/plugins/signal/contact.py,sha256=HNhK4tkPOv79FqouAooGoAKHGvmmAaNcVnBessM53sg,3572
|
36
|
-
slidge/plugins/signal/gateway.py,sha256=kVPRSAEVSMqmOYdvELY8meL7Sy4tt9fQcMjpcyrjS3I,12953
|
37
|
-
slidge/plugins/signal/group.py,sha256=fPtaeCTAzb3M_IgHUoaFupe-DXupHyw1zkjGm9k7_u0,2403
|
38
|
-
slidge/plugins/signal/session.py,sha256=HZrrl2t4LyoXbgIV8TtvqYXcOtWMhFZ-KGE7h0MbCTQ,18611
|
39
|
-
slidge/plugins/signal/txt.py,sha256=Hw8bt_yz8Ikc5Xi1H7oVxNg6oJIoALrKq0xBd8i90dQ,555
|
40
|
-
slidge/plugins/signal/util.py,sha256=Re39VWv6KgWTXmLWijF32uIzOC-4lOHCBFgN2IYKCQc,1112
|
41
|
-
slidge/plugins/skype.py,sha256=oUFQ11TDlwYwU7vMX1ru4wYti1c9X4uA7mj66OiFI_4,11606
|
42
|
-
slidge/plugins/steam.py,sha256=Ga0OjGR8pAeGUbUdZV76aqx2gvuC8Mt9vVl2CnNRDMY,14752
|
43
|
-
slidge/plugins/telegram/__init__.py,sha256=rcurcuo82_30FJdmRIuG9qMXMqRtLUDb58aLI8oTjEQ,185
|
44
|
-
slidge/plugins/telegram/client.py,sha256=bnt8u1-ZayGo_wDoTCbsNKvck4_u9rBw6oyGAV1LHus,13681
|
45
|
-
slidge/plugins/telegram/config.py,sha256=RtfpaDcpr7uTqN4udT9hURjOMi4RpbMKev8V7r4zNFw,667
|
46
|
-
slidge/plugins/telegram/contact.py,sha256=LhSLZSCGEooIJtIIJVGUNA6mZs4GkBiPJolLEZG6efg,5527
|
47
|
-
slidge/plugins/telegram/gateway.py,sha256=cGCf5EeBpnOFvPdWvILDIo2O1VNUai5FyUnX9Pv-3yE,6687
|
48
|
-
slidge/plugins/telegram/group.py,sha256=9IUTnb2KU5BnJvFMRMiKG7fGfAOztHaCfHgnB6otI9c,6566
|
49
|
-
slidge/plugins/telegram/session.py,sha256=jkakvgE88CCyB9nbP6kwLdJwM4r1KHFAdMmVUKSGAdE,9339
|
50
|
-
slidge/plugins/telegram/util.py,sha256=-m5hN3AqbdGWN8vwbK00cOU-izaF7roqntjApw3AB5k,6523
|
51
|
-
slidge/plugins/whatsapp/__init__.py,sha256=vS9p298Cn5nXiKKTEtzcIlWRsl29UfwmjpHO5NT_NLM,112
|
52
|
-
slidge/plugins/whatsapp/config.py,sha256=tke6r8aSMJtOpPvIMmGfnp0V2qC4LB2s3aUshLjYAiw,574
|
53
|
-
slidge/plugins/whatsapp/contact.py,sha256=29zDN2gSdszWp0REuaPyGARpE7FLkVKQ_jgGE0AkxYU,1095
|
54
|
-
slidge/plugins/whatsapp/event.go,sha256=b0hQk3v3_bkOsJL4D_NEpoOTNvJ44oill6-FSZ9d4j0,15365
|
55
|
-
slidge/plugins/whatsapp/gateway.go,sha256=szcOeDUFq_F-cg1a9KivMD5y_XgmjlIBSLfT6f-QN24,4997
|
56
|
-
slidge/plugins/whatsapp/gateway.py,sha256=Fy4DKfS8GIOGI9_FWneIRxJFQpIdknqMluHbHfIVwBc,2281
|
57
|
-
slidge/plugins/whatsapp/go.mod,sha256=i0BerX1WJOKtAIRX47hVHl6_v6oBJGvS-1Cu7OEQ_co,484
|
58
|
-
slidge/plugins/whatsapp/go.sum,sha256=EWGvQfH-6K3VQBZG9cIuqmIkBVBIgCEfS-FUsWxNxgI,2064
|
59
|
-
slidge/plugins/whatsapp/session.go,sha256=FTvL9jIHlQQLL2LxNmyoYK3YPJZ5f2w1kf0yQfzDdAw,12445
|
60
|
-
slidge/plugins/whatsapp/session.py,sha256=tIDBSlasfS8I0BhQn8qPwzXenNsqvZ4qcDHfJrLXtPE,14739
|
61
|
-
slidge/util/__init__.py,sha256=Ogn4C0OIWVy2geH_Xi7cL7MjU0wPJGZtPAOlthVDIpg,299
|
62
|
-
slidge/util/conf.py,sha256=HHOMyXw36vQ3mOea_HDFrdV0hVoL4EjwGBU5wx-sVWI,5708
|
63
|
-
slidge/util/db.py,sha256=U66c_Srm3m1lWEPTWaNp1x9-iI8w6r5ZzMEdnyRZoGo,7758
|
64
|
-
slidge/util/test.py,sha256=yO4HxEtrDSvwyyU8IfQjhC7QbVY29Emop89LsWukchI,9295
|
65
|
-
slidge/util/types.py,sha256=-PuLqEuSTmxgX-30GOVlA9VPkm-2g0tmYsz1GOEWLuM,1633
|
66
|
-
slidge/util/util.py,sha256=fO6cKM82ygf06m0J9lnBZPMkcaZKkLS0Rsb7G1M9bCk,3596
|
67
|
-
slidge/util/xep_0030/__init__.py,sha256=q-jCNG3h3ThSKoPdMwNV5Ggha4J4LVvxgnTbg4lKY_g,372
|
68
|
-
slidge/util/xep_0030/disco.py,sha256=gUU8bUNlLrGTRrlbNfySx5c1C7hZXFgwcvZuuKLgRlo,31653
|
69
|
-
slidge/util/xep_0030/stanza/__init__.py,sha256=BlPragBoxcdM7k3B528ahctrN_JdH76li4OD4Jtu00o,292
|
70
|
-
slidge/util/xep_0030/stanza/info.py,sha256=_OQBY3IrX34LO33j1E3QA479R0OPb5bHZHFneL_LgWU,10428
|
71
|
-
slidge/util/xep_0030/stanza/items.py,sha256=rozBAv4Mz5Joo6MSn5bHw-f0WyMMt8kVlOJKyGQJ9So,4608
|
72
|
-
slidge/util/xep_0030/static.py,sha256=jbJ4HfoG0x4GqOb9s7XMluQjmtSlK4BL_awUuWBTRWM,17117
|
73
|
-
slidge/util/xep_0050/__init__.py,sha256=BbntavYABeKr28gvav6JJv65CiETjP_CG1kaWJbDuWM,305
|
74
|
-
slidge/util/xep_0050/adhoc.py,sha256=jFV5ydXB2ekqy92tM42yV3hTEgCWmNESvIyLbvUN1-E,22499
|
75
|
-
slidge/util/xep_0050/stanza.py,sha256=J00CAfqzkVl4VEV-QjZvW6xfL9AJEquLrr8bhbarkwg,5814
|
76
|
-
slidge/util/xep_0077/__init__.py,sha256=0lY1YXdgAsfrfxI_Woxaf1etHCJXe35Xtntq_icF6nA,325
|
77
|
-
slidge/util/xep_0077/register.py,sha256=zpyCodqdxkB-M09eaKHGgSB1G2-9eVcY7MRjdq3YSL4,10402
|
78
|
-
slidge/util/xep_0077/stanza.py,sha256=hm-fEmuI8MqNP5PjIkQhXsV59Kl4wHOa0J3ZJ8jJdTo,2186
|
79
|
-
slidge/util/xep_0100/__init__.py,sha256=AtEXDQOrEWodkN3fgKR0W3Ezsz_Zza6cgO5ZaZS-JOo,107
|
80
|
-
slidge/util/xep_0100/gateway.py,sha256=WzqHbdu7hcHNI2lSP8gITJ8MBro9vxKzSVbDMQIZnSk,4312
|
81
|
-
slidge/util/xep_0100/stanza.py,sha256=7vCzej9VFQupsTpGGl0cJWuGNH4I6oVcckBu_-fE55c,232
|
82
|
-
slidge/util/xep_0292/__init__.py,sha256=BZcAjprx0Bw_lAJC-9LIWDKRRlToueF1yGd_OGqGANQ,29
|
83
|
-
slidge/util/xep_0292/stanza.py,sha256=3m3-e_lSdZ6oYbJS5wSQCczujRyoXeY6wOyy9t5qkbM,3782
|
84
|
-
slidge/util/xep_0292/vcard4.py,sha256=Cqsth3F1-zqO0BNAAUTv9ycgBF6tU7ig59bJAXKlZxc,2102
|
85
|
-
slidge/util/xep_0356/__init__.py,sha256=yUrWZF0Neu1Iy_awlvkWhEo8qKNNRq4tZfUP0orB00E,166
|
86
|
-
slidge/util/xep_0356/permissions.py,sha256=IiLWJAdbrSM06W-gQBOH2-hlvW5LNjAbPiY_TFXmoo8,625
|
87
|
-
slidge/util/xep_0356/privilege.py,sha256=UqrKVG1uwZhaNHaUSdldIaH-Fjfm6Ehf201KRIXLP-I,5204
|
88
|
-
slidge/util/xep_0356/stanza.py,sha256=kCMTMllh2Uehq1xD_vqQyAjPq_Fbdl2AYhPYjnpeBX8,1206
|
89
|
-
slidge/util/xep_0356_old/__init__.py,sha256=3jGWJX2m5gWgDCxcVqCsCCVPRTcfmU96yenwvAJtOKE,180
|
90
|
-
slidge/util/xep_0356_old/privilege.py,sha256=oocTh88wv7NF7UooZHlpl7eMpIvy4fqaPBwvJxfO65o,5299
|
91
|
-
slidge/util/xep_0356_old/stanza.py,sha256=i7aqcaTg6PBhVwbHToLtlrwxBj7uO-M7VrYSyElyEKI,1229
|
92
|
-
slidge/util/xep_0461/__init__.py,sha256=ENgspdjoCPbDb_vkAz579AMEINN4IWqfvoSi93ejY3Y,126
|
93
|
-
slidge/util/xep_0461/reply.py,sha256=KSz4N06hK8H9PJ85lgPrBi6otoWrI3Xd8-I88GYNtuo,1383
|
94
|
-
slidge/util/xep_0461/stanza.py,sha256=o4q92PbpfhJ-2zDkNPk-tTYif7l14Xzc6BWAybRbjJA,2390
|
95
|
-
slidge-0.1.0rc1.dist-info/entry_points.txt,sha256=SNl72KSocF5plsu_67xyH6wVWfGTXQbzkQgXbLtzDrQ,47
|
96
|
-
slidge-0.1.0rc1.dist-info/METADATA,sha256=H49bXKgf4GQczok_Ue1cK0o94BlKu0KNcaMC7wSeMZA,7457
|
97
|
-
slidge-0.1.0rc1.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
|
98
|
-
slidge-0.1.0rc1.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
99
|
-
slidge-0.1.0rc1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|