slidge 0.2.0a9__py3-none-any.whl → 0.2.0b0__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- slidge/__main__.py +2 -3
- slidge/__version__.py +1 -1
- slidge/command/adhoc.py +1 -1
- slidge/command/base.py +4 -4
- slidge/command/user.py +5 -1
- slidge/contact/roster.py +9 -0
- slidge/core/config.py +0 -3
- slidge/core/dispatcher/__init__.py +3 -0
- slidge/core/{gateway → dispatcher}/caps.py +6 -4
- slidge/core/{gateway → dispatcher}/disco.py +11 -17
- slidge/core/dispatcher/message/__init__.py +10 -0
- slidge/core/dispatcher/message/chat_state.py +40 -0
- slidge/core/dispatcher/message/marker.py +62 -0
- slidge/core/dispatcher/message/message.py +397 -0
- slidge/core/dispatcher/muc/__init__.py +12 -0
- slidge/core/dispatcher/muc/admin.py +98 -0
- slidge/core/{gateway → dispatcher/muc}/mam.py +26 -15
- slidge/core/dispatcher/muc/misc.py +121 -0
- slidge/core/dispatcher/muc/owner.py +96 -0
- slidge/core/{gateway → dispatcher/muc}/ping.py +10 -15
- slidge/core/dispatcher/presence.py +177 -0
- slidge/core/{gateway → dispatcher}/registration.py +23 -2
- slidge/core/{gateway → dispatcher}/search.py +9 -14
- slidge/core/dispatcher/session_dispatcher.py +84 -0
- slidge/core/dispatcher/util.py +174 -0
- slidge/core/{gateway/vcard_temp.py → dispatcher/vcard.py} +26 -12
- slidge/core/{gateway/base.py → gateway.py} +42 -137
- slidge/core/mixins/attachment.py +24 -8
- slidge/core/mixins/base.py +2 -2
- slidge/core/mixins/lock.py +10 -8
- slidge/core/mixins/message.py +9 -203
- slidge/core/mixins/message_text.py +211 -0
- slidge/core/pubsub.py +2 -1
- slidge/core/session.py +28 -2
- slidge/db/alembic/versions/15b0bd83407a_remove_bogus_unique_constraints_on_room_.py +83 -0
- slidge/db/alembic/versions/45c24cc73c91_add_bob.py +42 -0
- slidge/db/alembic/versions/5bd48bfdffa2_lift_room_legacy_id_constraint.py +12 -1
- slidge/db/models.py +16 -1
- slidge/db/store.py +144 -11
- slidge/group/bookmarks.py +23 -1
- slidge/group/participant.py +5 -5
- slidge/group/room.py +10 -1
- slidge/{core/gateway → slixfix}/delivery_receipt.py +1 -1
- slidge/util/test.py +9 -5
- slidge/util/types.py +6 -0
- slidge/util/util.py +5 -2
- {slidge-0.2.0a9.dist-info → slidge-0.2.0b0.dist-info}/METADATA +2 -1
- {slidge-0.2.0a9.dist-info → slidge-0.2.0b0.dist-info}/RECORD +51 -40
- slidge-0.2.0b0.dist-info/entry_points.txt +3 -0
- slidge/core/gateway/__init__.py +0 -3
- slidge/core/gateway/muc_admin.py +0 -35
- slidge/core/gateway/presence.py +0 -95
- slidge/core/gateway/session_dispatcher.py +0 -895
- slidge-0.2.0a9.dist-info/entry_points.txt +0 -3
- {slidge-0.2.0a9.dist-info → slidge-0.2.0b0.dist-info}/LICENSE +0 -0
- {slidge-0.2.0a9.dist-info → slidge-0.2.0b0.dist-info}/WHEEL +0 -0
slidge/core/gateway/presence.py
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
import logging
|
2
|
-
|
3
|
-
from slixmpp import JID, Presence
|
4
|
-
|
5
|
-
from ..session import BaseSession
|
6
|
-
|
7
|
-
|
8
|
-
class _IsDirectedAtComponent(Exception):
|
9
|
-
def __init__(self, session: BaseSession):
|
10
|
-
self.session = session
|
11
|
-
|
12
|
-
|
13
|
-
class PresenceHandlerMixin:
|
14
|
-
boundjid: JID
|
15
|
-
|
16
|
-
def get_session_from_stanza(self, s) -> BaseSession:
|
17
|
-
raise NotImplementedError
|
18
|
-
|
19
|
-
async def __get_contact(self, pres: Presence):
|
20
|
-
sess = await self.__get_session(pres)
|
21
|
-
pto = pres.get_to()
|
22
|
-
if pto == self.boundjid.bare:
|
23
|
-
raise _IsDirectedAtComponent(sess)
|
24
|
-
await sess.contacts.ready
|
25
|
-
return await sess.contacts.by_jid(pto)
|
26
|
-
|
27
|
-
async def __get_session(self, p: Presence):
|
28
|
-
sess = self.get_session_from_stanza(p)
|
29
|
-
return sess
|
30
|
-
|
31
|
-
async def _handle_subscribe(self, pres: Presence):
|
32
|
-
try:
|
33
|
-
contact = await self.__get_contact(pres)
|
34
|
-
except _IsDirectedAtComponent:
|
35
|
-
pres.reply().send()
|
36
|
-
return
|
37
|
-
|
38
|
-
if contact.is_friend:
|
39
|
-
pres.reply().send()
|
40
|
-
else:
|
41
|
-
await contact.on_friend_request(pres["status"])
|
42
|
-
|
43
|
-
async def _handle_unsubscribe(self, pres: Presence):
|
44
|
-
pres.reply().send()
|
45
|
-
|
46
|
-
try:
|
47
|
-
contact = await self.__get_contact(pres)
|
48
|
-
except _IsDirectedAtComponent as e:
|
49
|
-
e.session.send_gateway_message("Bye bye!")
|
50
|
-
await e.session.kill_by_jid(e.session.user_jid)
|
51
|
-
return
|
52
|
-
|
53
|
-
contact.is_friend = False
|
54
|
-
await contact.on_friend_delete(pres["status"])
|
55
|
-
|
56
|
-
async def _handle_subscribed(self, pres: Presence):
|
57
|
-
try:
|
58
|
-
contact = await self.__get_contact(pres)
|
59
|
-
except _IsDirectedAtComponent:
|
60
|
-
return
|
61
|
-
|
62
|
-
await contact.on_friend_accept()
|
63
|
-
|
64
|
-
async def _handle_unsubscribed(self, pres: Presence):
|
65
|
-
try:
|
66
|
-
contact = await self.__get_contact(pres)
|
67
|
-
except _IsDirectedAtComponent:
|
68
|
-
return
|
69
|
-
|
70
|
-
if contact.is_friend:
|
71
|
-
contact.is_friend = False
|
72
|
-
await contact.on_friend_delete(pres["status"])
|
73
|
-
|
74
|
-
async def _handle_probe(self, pres: Presence):
|
75
|
-
try:
|
76
|
-
contact = await self.__get_contact(pres)
|
77
|
-
except _IsDirectedAtComponent:
|
78
|
-
session = await self.__get_session(pres)
|
79
|
-
session.send_cached_presence(pres.get_from())
|
80
|
-
return
|
81
|
-
if contact.is_friend:
|
82
|
-
contact.send_last_presence(force=True)
|
83
|
-
else:
|
84
|
-
reply = pres.reply()
|
85
|
-
reply["type"] = "unsubscribed"
|
86
|
-
reply.send()
|
87
|
-
|
88
|
-
async def _handle_new_subscription(self, pres: Presence):
|
89
|
-
pass
|
90
|
-
|
91
|
-
async def _handle_removed_subscription(self, pres: Presence):
|
92
|
-
pass
|
93
|
-
|
94
|
-
|
95
|
-
log = logging.getLogger(__name__)
|