slidge 0.2.12__py3-none-any.whl → 0.3.0a0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- slidge/__init__.py +5 -2
- slidge/command/adhoc.py +9 -3
- slidge/command/admin.py +16 -12
- slidge/command/base.py +16 -12
- slidge/command/chat_command.py +25 -16
- slidge/command/user.py +7 -8
- slidge/contact/contact.py +119 -209
- slidge/contact/roster.py +106 -105
- slidge/core/config.py +2 -43
- slidge/core/dispatcher/caps.py +9 -2
- slidge/core/dispatcher/disco.py +13 -3
- slidge/core/dispatcher/message/__init__.py +1 -1
- slidge/core/dispatcher/message/chat_state.py +17 -8
- slidge/core/dispatcher/message/marker.py +7 -5
- slidge/core/dispatcher/message/message.py +117 -92
- slidge/core/dispatcher/muc/__init__.py +1 -1
- slidge/core/dispatcher/muc/admin.py +4 -4
- slidge/core/dispatcher/muc/mam.py +10 -6
- slidge/core/dispatcher/muc/misc.py +4 -2
- slidge/core/dispatcher/muc/owner.py +5 -3
- slidge/core/dispatcher/muc/ping.py +3 -1
- slidge/core/dispatcher/presence.py +21 -15
- slidge/core/dispatcher/registration.py +20 -12
- slidge/core/dispatcher/search.py +7 -3
- slidge/core/dispatcher/session_dispatcher.py +13 -5
- slidge/core/dispatcher/util.py +37 -27
- slidge/core/dispatcher/vcard.py +7 -4
- slidge/core/gateway.py +168 -84
- slidge/core/mixins/__init__.py +1 -11
- slidge/core/mixins/attachment.py +163 -148
- slidge/core/mixins/avatar.py +100 -177
- slidge/core/mixins/db.py +50 -2
- slidge/core/mixins/message.py +19 -17
- slidge/core/mixins/message_maker.py +29 -15
- slidge/core/mixins/message_text.py +38 -30
- slidge/core/mixins/presence.py +91 -35
- slidge/core/pubsub.py +42 -47
- slidge/core/session.py +88 -57
- slidge/db/alembic/versions/0337c90c0b96_unify_legacy_xmpp_id_mappings.py +183 -0
- slidge/db/alembic/versions/4dbd23a3f868_new_avatar_store.py +56 -0
- slidge/db/alembic/versions/54ce3cde350c_use_hash_for_avatar_filenames.py +50 -0
- slidge/db/alembic/versions/58b98dacf819_refactor.py +118 -0
- slidge/db/alembic/versions/75a62b74b239_ditch_hats_table.py +74 -0
- slidge/db/avatar.py +150 -119
- slidge/db/meta.py +33 -22
- slidge/db/models.py +68 -117
- slidge/db/store.py +412 -1094
- slidge/group/archive.py +61 -54
- slidge/group/bookmarks.py +74 -55
- slidge/group/participant.py +135 -142
- slidge/group/room.py +315 -312
- slidge/main.py +28 -18
- slidge/migration.py +2 -12
- slidge/slixfix/__init__.py +20 -4
- slidge/slixfix/delivery_receipt.py +6 -4
- slidge/slixfix/link_preview/link_preview.py +1 -1
- slidge/slixfix/link_preview/stanza.py +1 -1
- slidge/slixfix/roster.py +5 -7
- slidge/slixfix/xep_0077/register.py +8 -8
- slidge/slixfix/xep_0077/stanza.py +7 -7
- slidge/slixfix/xep_0100/gateway.py +12 -13
- slidge/slixfix/xep_0153/vcard_avatar.py +1 -1
- slidge/slixfix/xep_0292/vcard4.py +1 -1
- slidge/util/archive_msg.py +11 -5
- slidge/util/conf.py +23 -20
- slidge/util/jid_escaping.py +1 -1
- slidge/{core/mixins → util}/lock.py +6 -6
- slidge/util/test.py +30 -29
- slidge/util/types.py +22 -18
- slidge/util/util.py +19 -22
- {slidge-0.2.12.dist-info → slidge-0.3.0a0.dist-info}/METADATA +1 -1
- slidge-0.3.0a0.dist-info/RECORD +117 -0
- {slidge-0.2.12.dist-info → slidge-0.3.0a0.dist-info}/WHEEL +1 -1
- slidge-0.2.12.dist-info/RECORD +0 -112
- {slidge-0.2.12.dist-info → slidge-0.3.0a0.dist-info}/entry_points.txt +0 -0
- {slidge-0.2.12.dist-info → slidge-0.3.0a0.dist-info}/licenses/LICENSE +0 -0
- {slidge-0.2.12.dist-info → slidge-0.3.0a0.dist-info}/top_level.txt +0 -0
slidge/util/jid_escaping.py
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
import asyncio
|
2
2
|
import logging
|
3
3
|
from contextlib import asynccontextmanager
|
4
|
-
from typing import Hashable
|
4
|
+
from typing import Any, AsyncIterator, Hashable
|
5
5
|
|
6
6
|
|
7
7
|
class NamedLockMixin:
|
8
|
-
def __init__(self, *a, **k):
|
8
|
+
def __init__(self, *a: Any, **k: Any) -> None:
|
9
9
|
super().__init__(*a, **k)
|
10
10
|
self.__locks = dict[Hashable, asyncio.Lock]()
|
11
11
|
|
12
12
|
@asynccontextmanager
|
13
|
-
async def lock(self, id_: Hashable):
|
13
|
+
async def lock(self, id_: Hashable) -> AsyncIterator[None]:
|
14
14
|
log.trace("getting %s", id_) # type:ignore
|
15
15
|
locks = self.__locks
|
16
16
|
if not locks.get(id_):
|
@@ -21,13 +21,13 @@ class NamedLockMixin:
|
|
21
21
|
yield
|
22
22
|
finally:
|
23
23
|
log.trace("releasing %s", id_) # type:ignore
|
24
|
-
waiters = locks[id_]._waiters
|
24
|
+
waiters = locks[id_]._waiters
|
25
25
|
if not waiters:
|
26
26
|
del locks[id_]
|
27
27
|
log.trace("erasing %s", id_) # type:ignore
|
28
28
|
|
29
|
-
def get_lock(self, id_: Hashable):
|
29
|
+
def get_lock(self, id_: Hashable) -> asyncio.Lock | None:
|
30
30
|
return self.__locks.get(id_)
|
31
31
|
|
32
32
|
|
33
|
-
log = logging.getLogger(__name__)
|
33
|
+
log = logging.getLogger(__name__)
|
slidge/util/test.py
CHANGED
@@ -43,19 +43,25 @@ from slidge import (
|
|
43
43
|
from ..command import Command
|
44
44
|
from ..core import config
|
45
45
|
from ..core.config import _TimedeltaSeconds
|
46
|
-
from ..core.pubsub import PepAvatar, PepNick
|
47
46
|
from ..db import SlidgeStore
|
48
47
|
from ..db.avatar import avatar_cache
|
49
48
|
from ..db.meta import Base
|
50
|
-
from ..db.models import Contact
|
49
|
+
from ..db.models import Contact, GatewayUser
|
51
50
|
|
52
51
|
|
53
52
|
class SlixTestPlus(SlixTest):
|
54
|
-
def setUp(self):
|
53
|
+
def setUp(self) -> None:
|
55
54
|
super().setUp()
|
56
55
|
Error.namespace = "jabber:component:accept"
|
57
56
|
|
58
|
-
def check(
|
57
|
+
def check(
|
58
|
+
self,
|
59
|
+
stanza,
|
60
|
+
criteria,
|
61
|
+
method: str = "exact",
|
62
|
+
defaults=None,
|
63
|
+
use_values: bool = True,
|
64
|
+
):
|
59
65
|
"""
|
60
66
|
Create and compare several stanza objects to a correct XML string.
|
61
67
|
|
@@ -174,7 +180,9 @@ class SlixTestPlus(SlixTest):
|
|
174
180
|
)
|
175
181
|
self.assertTrue(result, debug)
|
176
182
|
|
177
|
-
def next_sent(
|
183
|
+
def next_sent(
|
184
|
+
self, timeout: float = 0.05
|
185
|
+
) -> Optional[Union[Message, Iq, Presence]]:
|
178
186
|
self.wait_for_send_queue()
|
179
187
|
sent = self.xmpp.socket.next_sent(timeout=timeout)
|
180
188
|
if sent is None:
|
@@ -197,13 +205,11 @@ class SlidgeTest(SlixTestPlus):
|
|
197
205
|
home_dir = Path(tempfile.mkdtemp())
|
198
206
|
user_jid_validator = ".*"
|
199
207
|
admins: list[str] = []
|
200
|
-
no_roster_push = False
|
201
208
|
upload_requester = None
|
202
209
|
ignore_delay_threshold = _TimedeltaSeconds("300")
|
203
|
-
last_seen_fallback = True
|
204
210
|
|
205
211
|
@classmethod
|
206
|
-
def setUpClass(cls):
|
212
|
+
def setUpClass(cls) -> None:
|
207
213
|
for k, v in vars(cls.Config).items():
|
208
214
|
setattr(config, k.upper(), v)
|
209
215
|
|
@@ -237,8 +243,6 @@ class SlidgeTest(SlixTestPlus):
|
|
237
243
|
except Exception:
|
238
244
|
raise
|
239
245
|
self.xmpp.TEST_MODE = True
|
240
|
-
PepNick.contact_store = self.xmpp.store.contacts
|
241
|
-
PepAvatar.store = self.xmpp.store
|
242
246
|
avatar_cache.store = self.xmpp.store.avatars
|
243
247
|
avatar_cache.set_dir(Path(tempfile.mkdtemp()))
|
244
248
|
self.xmpp._always_send_everything = True
|
@@ -273,22 +277,20 @@ class SlidgeTest(SlixTestPlus):
|
|
273
277
|
self.xmpp.use_presence_ids = False
|
274
278
|
Error.namespace = "jabber:component:accept"
|
275
279
|
|
276
|
-
def tearDown(self):
|
280
|
+
def tearDown(self) -> None:
|
277
281
|
self.db_engine.echo = False
|
278
282
|
super().tearDown()
|
279
|
-
import slidge.db.store
|
280
|
-
|
281
|
-
if slidge.db.store._session is not None:
|
282
|
-
slidge.db.store._session.commit()
|
283
|
-
slidge.db.store._session = None
|
284
283
|
Base.metadata.drop_all(self.xmpp.store._engine)
|
285
284
|
|
286
|
-
def setup_logged_session(self, n_contacts=0):
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
285
|
+
def setup_logged_session(self, n_contacts: int = 0) -> None:
|
286
|
+
with self.xmpp.store.session() as orm:
|
287
|
+
user = GatewayUser(
|
288
|
+
jid=JID("romeo@montague.lit/gajim").bare,
|
289
|
+
legacy_module_data={"username": "romeo", "city": ""},
|
290
|
+
preferences={"sync_avatar": True, "sync_presence": True},
|
291
|
+
)
|
292
|
+
orm.add(user)
|
293
|
+
orm.commit()
|
292
294
|
|
293
295
|
with self.xmpp.store.session() as session:
|
294
296
|
session.execute(delete(Contact))
|
@@ -308,9 +310,8 @@ class SlidgeTest(SlixTestPlus):
|
|
308
310
|
if BaseGateway.get_self_or_unique_subclass().GROUPS:
|
309
311
|
stanza = self.next_sent()
|
310
312
|
assert "syncing groups" in stanza["status"].lower(), stanza
|
311
|
-
|
312
|
-
|
313
|
-
assert probe.get_type() == "probe"
|
313
|
+
probe = self.next_sent()
|
314
|
+
assert probe.get_type() == "probe"
|
314
315
|
stanza = self.next_sent()
|
315
316
|
assert "yup" in stanza["status"].lower(), stanza
|
316
317
|
self.romeo: BaseSession = BaseSession.get_self_or_unique_subclass().from_jid(
|
@@ -338,7 +339,7 @@ class SlidgeTest(SlixTestPlus):
|
|
338
339
|
)
|
339
340
|
|
340
341
|
@classmethod
|
341
|
-
def tearDownClass(cls):
|
342
|
+
def tearDownClass(cls) -> None:
|
342
343
|
reset_subclasses()
|
343
344
|
|
344
345
|
|
@@ -348,7 +349,7 @@ def format_stanza(stanza):
|
|
348
349
|
)
|
349
350
|
|
350
351
|
|
351
|
-
def find_subclass(o, parent, base_ok=False):
|
352
|
+
def find_subclass(o, parent, base_ok: bool = False):
|
352
353
|
try:
|
353
354
|
vals = vars(o).values()
|
354
355
|
except TypeError:
|
@@ -366,7 +367,7 @@ def find_subclass(o, parent, base_ok=False):
|
|
366
367
|
raise RuntimeError
|
367
368
|
|
368
369
|
|
369
|
-
def reset_subclasses():
|
370
|
+
def reset_subclasses() -> None:
|
370
371
|
"""
|
371
372
|
Reset registered subclasses between test classes.
|
372
373
|
|
@@ -383,7 +384,7 @@ def reset_subclasses():
|
|
383
384
|
# reset_commands()
|
384
385
|
|
385
386
|
|
386
|
-
def reset_commands():
|
387
|
+
def reset_commands() -> None:
|
387
388
|
Command.subclasses = [
|
388
389
|
c for c in Command.subclasses if str(c).startswith("<class 'slidge.core")
|
389
390
|
]
|
slidge/util/types.py
CHANGED
@@ -10,6 +10,7 @@ from typing import (
|
|
10
10
|
IO,
|
11
11
|
TYPE_CHECKING,
|
12
12
|
Any,
|
13
|
+
AsyncIterator,
|
13
14
|
Generic,
|
14
15
|
Hashable,
|
15
16
|
Literal,
|
@@ -25,19 +26,15 @@ from slixmpp.types import PresenceShows, PresenceTypes, ResourceDict
|
|
25
26
|
|
26
27
|
if TYPE_CHECKING:
|
27
28
|
from ..contact import LegacyContact
|
28
|
-
from ..core.pubsub import PepItem
|
29
29
|
from ..core.session import BaseSession
|
30
|
-
from ..group
|
30
|
+
from ..group import LegacyMUC
|
31
|
+
from ..group.participant import LegacyParticipant
|
31
32
|
|
32
33
|
AnyBaseSession = BaseSession[Any, Any]
|
33
34
|
else:
|
34
35
|
AnyBaseSession = None
|
35
36
|
|
36
37
|
|
37
|
-
class URL(str):
|
38
|
-
pass
|
39
|
-
|
40
|
-
|
41
38
|
LegacyGroupIdType = TypeVar("LegacyGroupIdType", bound=Hashable)
|
42
39
|
"""
|
43
40
|
Type of the unique identifier for groups, usually a str or an int,
|
@@ -47,18 +44,14 @@ LegacyMessageType = TypeVar("LegacyMessageType", bound=Hashable)
|
|
47
44
|
LegacyThreadType = TypeVar("LegacyThreadType", bound=Hashable)
|
48
45
|
LegacyUserIdType = TypeVar("LegacyUserIdType", bound=Hashable)
|
49
46
|
|
50
|
-
LegacyContactType = TypeVar("LegacyContactType", bound="LegacyContact")
|
51
|
-
LegacyMUCType = TypeVar("LegacyMUCType", bound="LegacyMUC")
|
47
|
+
LegacyContactType = TypeVar("LegacyContactType", bound="LegacyContact[Any]")
|
48
|
+
LegacyMUCType = TypeVar("LegacyMUCType", bound="LegacyMUC[Any, Any, Any, Any]")
|
52
49
|
LegacyParticipantType = TypeVar("LegacyParticipantType", bound="LegacyParticipant")
|
53
50
|
|
54
|
-
|
55
|
-
|
56
|
-
Recipient = Union["LegacyMUC", "LegacyContact"]
|
51
|
+
Recipient = Union["LegacyMUC[Any, Any, Any, Any]", "LegacyContact[Any]"]
|
57
52
|
RecipientType = TypeVar("RecipientType", bound=Recipient)
|
58
|
-
Sender = Union["LegacyContact", "LegacyParticipant"]
|
59
|
-
AvatarType = Union[bytes, str, Path]
|
53
|
+
Sender = Union["LegacyContact[Any]", "LegacyParticipant"]
|
60
54
|
LegacyFileIdType = Union[int, str]
|
61
|
-
AvatarIdType = Union[LegacyFileIdType, URL]
|
62
55
|
|
63
56
|
ChatState = Literal["active", "composing", "gone", "inactive", "paused"]
|
64
57
|
ProcessingHint = Literal["no-store", "markable", "store"]
|
@@ -116,6 +109,7 @@ class LegacyAttachment:
|
|
116
109
|
path: Optional[Union[Path, str]] = None
|
117
110
|
name: Optional[Union[str]] = None
|
118
111
|
stream: Optional[IO[bytes]] = None
|
112
|
+
aio_stream: Optional[AsyncIterator[bytes]] = None
|
119
113
|
data: Optional[bytes] = None
|
120
114
|
content_type: Optional[str] = None
|
121
115
|
legacy_file_id: Optional[Union[str, int]] = None
|
@@ -126,11 +120,14 @@ class LegacyAttachment:
|
|
126
120
|
use the ``body`` parameter of :meth:`.AttachmentMixin.send_files`
|
127
121
|
"""
|
128
122
|
|
129
|
-
def __post_init__(self):
|
130
|
-
if
|
131
|
-
x is
|
123
|
+
def __post_init__(self) -> None:
|
124
|
+
if all(
|
125
|
+
x is None
|
126
|
+
for x in (self.path, self.stream, self.data, self.url, self.aio_stream)
|
132
127
|
):
|
133
128
|
raise TypeError("There is not data in this attachment", self)
|
129
|
+
if isinstance(self.path, str):
|
130
|
+
self.path = Path(self.path)
|
134
131
|
|
135
132
|
|
136
133
|
class MucType(IntEnum):
|
@@ -171,7 +168,7 @@ class LinkPreview(NamedTuple):
|
|
171
168
|
|
172
169
|
|
173
170
|
class Mention(NamedTuple):
|
174
|
-
contact: "LegacyContact"
|
171
|
+
contact: "LegacyContact[Any]"
|
175
172
|
start: int
|
176
173
|
end: int
|
177
174
|
|
@@ -207,3 +204,10 @@ class Sticker(NamedTuple):
|
|
207
204
|
path: Path
|
208
205
|
content_type: Optional[str]
|
209
206
|
hashes: dict[str, str]
|
207
|
+
|
208
|
+
|
209
|
+
class Avatar(NamedTuple):
|
210
|
+
path: Optional[Path] = None
|
211
|
+
unique_id: Optional[str | int] = None
|
212
|
+
url: Optional[str] = None
|
213
|
+
data: Optional[bytes] = None
|
slidge/util/util.py
CHANGED
@@ -7,7 +7,7 @@ from abc import ABCMeta
|
|
7
7
|
from functools import wraps
|
8
8
|
from pathlib import Path
|
9
9
|
from time import time
|
10
|
-
from typing import TYPE_CHECKING, Callable, NamedTuple, Optional, Type, TypeVar
|
10
|
+
from typing import TYPE_CHECKING, Any, Callable, NamedTuple, Optional, Type, TypeVar
|
11
11
|
|
12
12
|
try:
|
13
13
|
import emoji
|
@@ -34,7 +34,7 @@ except ImportError as e:
|
|
34
34
|
)
|
35
35
|
|
36
36
|
|
37
|
-
def fix_suffix(path: Path, mime_type: Optional[str], file_name: Optional[str]):
|
37
|
+
def fix_suffix(path: Path, mime_type: Optional[str], file_name: Optional[str]) -> Path:
|
38
38
|
guessed = magic.from_file(path, mime=True)
|
39
39
|
if guessed == mime_type:
|
40
40
|
log.debug("Magic and given MIME match")
|
@@ -65,9 +65,15 @@ def fix_suffix(path: Path, mime_type: Optional[str], file_name: Optional[str]):
|
|
65
65
|
|
66
66
|
|
67
67
|
class SubclassableOnce(type):
|
68
|
-
|
69
|
-
|
70
|
-
|
68
|
+
# To allow importing everything, including plugins, during tests
|
69
|
+
TEST_MODE: bool = False
|
70
|
+
|
71
|
+
def __init__(
|
72
|
+
cls,
|
73
|
+
name: str,
|
74
|
+
bases: tuple[Type[Any], ...],
|
75
|
+
dct: dict[str, Any],
|
76
|
+
) -> None:
|
71
77
|
for b in bases:
|
72
78
|
if type(b) in (SubclassableOnce, ABCSubclassableOnceAtMost):
|
73
79
|
if hasattr(b, "_subclass") and not cls.TEST_MODE:
|
@@ -84,19 +90,19 @@ class SubclassableOnce(type):
|
|
84
90
|
|
85
91
|
super().__init__(name, bases, dct)
|
86
92
|
|
87
|
-
def get_self_or_unique_subclass(cls):
|
93
|
+
def get_self_or_unique_subclass(cls) -> "SubclassableOnce":
|
88
94
|
try:
|
89
95
|
return cls.get_unique_subclass()
|
90
96
|
except AttributeError:
|
91
97
|
return cls
|
92
98
|
|
93
|
-
def get_unique_subclass(cls):
|
99
|
+
def get_unique_subclass(cls) -> "SubclassableOnce":
|
94
100
|
r = getattr(cls, "_subclass", None)
|
95
101
|
if r is None:
|
96
102
|
raise AttributeError("Could not find any subclass", cls)
|
97
103
|
return r
|
98
104
|
|
99
|
-
def reset_subclass(cls):
|
105
|
+
def reset_subclass(cls) -> None:
|
100
106
|
try:
|
101
107
|
log.debug("Resetting subclass of %s", cls)
|
102
108
|
delattr(cls, "_subclass")
|
@@ -156,7 +162,7 @@ ILLEGAL_XML_CHARS_RE = re.compile(XML_ILLEGAL_CHARACTER_REGEX)
|
|
156
162
|
# from https://stackoverflow.com/a/35804945/5902284
|
157
163
|
def addLoggingLevel(
|
158
164
|
levelName: str = "TRACE", levelNum: int = logging.DEBUG - 5, methodName=None
|
159
|
-
):
|
165
|
+
) -> None:
|
160
166
|
"""
|
161
167
|
Comprehensively adds a new logging level to the `logging` module and the
|
162
168
|
currently configured logging class.
|
@@ -197,11 +203,11 @@ def addLoggingLevel(
|
|
197
203
|
# This method was inspired by the answers to Stack Overflow post
|
198
204
|
# http://stackoverflow.com/q/2183233/2988730, especially
|
199
205
|
# http://stackoverflow.com/a/13638084/2988730
|
200
|
-
def logForLevel(self, message, *args, **kwargs):
|
206
|
+
def logForLevel(self, message, *args, **kwargs) -> None:
|
201
207
|
if self.isEnabledFor(levelNum):
|
202
208
|
self._log(levelNum, message, args, **kwargs)
|
203
209
|
|
204
|
-
def logToRoot(message, *args, **kwargs):
|
210
|
+
def logToRoot(message, *args, **kwargs) -> None:
|
205
211
|
logging.log(levelNum, message, *args, **kwargs)
|
206
212
|
|
207
213
|
logging.addLevelName(levelNum, levelName)
|
@@ -211,7 +217,7 @@ def addLoggingLevel(
|
|
211
217
|
|
212
218
|
|
213
219
|
class SlidgeLogger(logging.Logger):
|
214
|
-
def trace(self):
|
220
|
+
def trace(self) -> None:
|
215
221
|
pass
|
216
222
|
|
217
223
|
|
@@ -294,15 +300,6 @@ def replace_mentions(
|
|
294
300
|
return "".join(pieces)
|
295
301
|
|
296
302
|
|
297
|
-
def with_session(func):
|
298
|
-
@wraps(func)
|
299
|
-
async def wrapped(self, *args, **kwargs):
|
300
|
-
with self.xmpp.store.session():
|
301
|
-
return await func(self, *args, **kwargs)
|
302
|
-
|
303
|
-
return wrapped
|
304
|
-
|
305
|
-
|
306
303
|
def timeit(func):
|
307
304
|
@wraps(func)
|
308
305
|
async def wrapped(self, *args, **kwargs):
|
@@ -325,5 +322,5 @@ def strip_leading_emoji(text: str) -> str:
|
|
325
322
|
return text
|
326
323
|
|
327
324
|
|
328
|
-
async def noop_coro():
|
325
|
+
async def noop_coro() -> None:
|
329
326
|
pass
|
@@ -0,0 +1,117 @@
|
|
1
|
+
slidge/__init__.py,sha256=OWGOMz8wl6I6XNUT9ipE9IFD-OinS8zQGGn4U_z3IWw,1835
|
2
|
+
slidge/__main__.py,sha256=ydjUklOoavS4YlGfjRX_8BQN2DaSbaXPMi47RkOgcFI,37
|
3
|
+
slidge/main.py,sha256=Q2memNl050JJhUk-ZKHV2Q2lVpdMtoyLKupKswq-swM,7070
|
4
|
+
slidge/migration.py,sha256=gq14UVm0zGP7VankizT3jy9Q9zu7hJeTYpVlInrswf8,1221
|
5
|
+
slidge/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
+
slidge/command/__init__.py,sha256=UYf1mjCYbZ5G7PIgaFTWSQRAzEJkQ6dTH8Fu_e_XnO0,613
|
7
|
+
slidge/command/adhoc.py,sha256=NCHammJdl30eHniiYukYQZKp1IeI-5qv5u9NncLNSNM,10760
|
8
|
+
slidge/command/admin.py,sha256=_utjSHGKeKtMTe2UHXVr2oQ_ZzCiG575pUQpVcO6tHE,6409
|
9
|
+
slidge/command/base.py,sha256=h6lQ6ypb5uNrppZ_N8mS7ObJpnOINYZS6QokGlWVgAk,13527
|
10
|
+
slidge/command/categories.py,sha256=vF0KGDV9sEn8TNkcMoDRw-u3gEyNHSXghOU2JRHQtKs,351
|
11
|
+
slidge/command/chat_command.py,sha256=r_qalygOCsEoS-OgWw8IIlAzTufhXNjduONbeoepUIA,11557
|
12
|
+
slidge/command/register.py,sha256=BduDI31Kx8CbWWEdjybimTA5Wcfhn-Jkt8sSPsySCpo,6724
|
13
|
+
slidge/command/user.py,sha256=VS7xuADXXes941OyiJbxC_C8d5hcqm-TSS4Gu82_8PQ,12173
|
14
|
+
slidge/contact/__init__.py,sha256=WMMaHk7UW7YT9EH2LtPdkU0bHQaOp4ikBhbBQskmoc8,191
|
15
|
+
slidge/contact/contact.py,sha256=ubqd3aH-TOcv5hsHGPSlDGyojQXn3wjalrO7l_LfZk8,19449
|
16
|
+
slidge/contact/roster.py,sha256=TAPvaPWUn77CHt8la_BLfQRkZZJhlG-hn2wEQZbGzJ8,9706
|
17
|
+
slidge/core/__init__.py,sha256=RG7Jj5JCJERjhqJ31lOLYV-7bH_oblClQD1KF9LsTXo,68
|
18
|
+
slidge/core/config.py,sha256=1HxHQ5BOnYghi8V5KbCQ6sUsNnXzAZAIoFA5PrMqH4E,6060
|
19
|
+
slidge/core/gateway.py,sha256=IpnHk0D-MXBY2-oPu8u-WrO6bV2Smq95Quqeec5-DEI,40930
|
20
|
+
slidge/core/pubsub.py,sha256=-YK49tEdz_SLM3O8Y9zvu3p5KYhxgNpqbsD57rOIdNI,12141
|
21
|
+
slidge/core/session.py,sha256=Arz8hQ99o_DJd4NnhRTPaeurywD48xahpjbUVFR8Lkk,29382
|
22
|
+
slidge/core/dispatcher/__init__.py,sha256=1EXcjXietUKlxEqdrCWCV3xZ3q_DSsjHoqWrPMbtYao,84
|
23
|
+
slidge/core/dispatcher/caps.py,sha256=gISaHtFwFDXtkSrSsAkZfPiHQyXfmXg3v_YYU0w9iDg,2254
|
24
|
+
slidge/core/dispatcher/disco.py,sha256=xVPyBFnnkON-JjjM1oydRa-dqnDbwAZER2MGQACRhVk,2309
|
25
|
+
slidge/core/dispatcher/presence.py,sha256=XrcWGjIHofmAu_8QIOMsF6Wlg4_kyPukp73FPm8BwOg,6721
|
26
|
+
slidge/core/dispatcher/registration.py,sha256=Qa3fYZFJ4NaVz-FsnXorCmMQ9WyO7oZte1Zvro5f74E,3415
|
27
|
+
slidge/core/dispatcher/search.py,sha256=bL5cwMOtsfnX5IH-t60S1PudpeMWZnF4-qksrKDuDyc,3411
|
28
|
+
slidge/core/dispatcher/session_dispatcher.py,sha256=ysgPhns7NgUxhmkgEwRv-yDkSnUIXEdc-FsgqDqQAkE,3466
|
29
|
+
slidge/core/dispatcher/util.py,sha256=DsMWz7yS67E2Y2pcnXUkuVMTa9F_Ok0JIxjhqhdYpD0,6161
|
30
|
+
slidge/core/dispatcher/vcard.py,sha256=qHZZShq3Iyvgh1FkcAgGhdKXF5m1VUqeb4EWkY0cbFw,5203
|
31
|
+
slidge/core/dispatcher/message/__init__.py,sha256=gNeZZ0wtCI9JBqMe6tpumwV1TjY0mnPWTJc94uFTN-I,244
|
32
|
+
slidge/core/dispatcher/message/chat_state.py,sha256=RbtM_nlZyvOHusZkDEP0TXA4wMp_N435490eE4wW8U0,2143
|
33
|
+
slidge/core/dispatcher/message/marker.py,sha256=WZyf72_SM6sDGPMEOzhu93o2KbgxSxNF25jwsiM7h2A,2439
|
34
|
+
slidge/core/dispatcher/message/message.py,sha256=IEXbgaErWk8L-xQhkUXdYlruzk7x84Q1BjltLGjFxXI,16146
|
35
|
+
slidge/core/dispatcher/muc/__init__.py,sha256=60YUr0i8PCZEPyNNTynJueRbbxF5pqzdyVf8z_XFXmM,290
|
36
|
+
slidge/core/dispatcher/muc/admin.py,sha256=1tDZ9hHD6q5SqCjsYOpDimPB3Iyl21YO5RnK1goEGso,3284
|
37
|
+
slidge/core/dispatcher/muc/mam.py,sha256=7vfmMI_mJOIrc9KCbtTibJSowhZTBBFwXWc84Ikpu3I,2994
|
38
|
+
slidge/core/dispatcher/muc/misc.py,sha256=FYo5FdmzksEuUCfCLLOOm8_8plXtZFQP8IzvzVv3Wug,4115
|
39
|
+
slidge/core/dispatcher/muc/owner.py,sha256=dDAxpRaA8H_NJQNIyBNixck2oG4GHZeEQqPhKd7MmDQ,3359
|
40
|
+
slidge/core/dispatcher/muc/ping.py,sha256=EgKKS9AvMnW-vINGcoGbtk6NdbN9A7zVaGfT5T7F6YE,1699
|
41
|
+
slidge/core/mixins/__init__.py,sha256=Zea39CCwjJU5XfHwcYPEZ9Sin8z1BZxoV68G2RwC3nE,386
|
42
|
+
slidge/core/mixins/attachment.py,sha256=nR_ZHaPbrrXi3Ko8we6vhlu6GD0k4lU6JD3PPzsnFwU,20484
|
43
|
+
slidge/core/mixins/avatar.py,sha256=X5tS6jJmjEoHC6O9kMgkNJoXM8eCY53tzW8kv2NOyv4,5346
|
44
|
+
slidge/core/mixins/base.py,sha256=MOd-pas38_52VawQVlxWtBtmTKC6My9G0ZaCeQxOJbs,748
|
45
|
+
slidge/core/mixins/db.py,sha256=a6idm-FgHWfDK-MJZWy5AkkBlyY8JmwOB8xAFmm0E9g,1934
|
46
|
+
slidge/core/mixins/disco.py,sha256=jk3Z1B6zTuisHv8VKNRJodIo0ee5btYHh2ZrlflPj_Q,3670
|
47
|
+
slidge/core/mixins/message.py,sha256=xk4bgiJF9ATe-rgtH4sHU8hUwecBF4KjGIujm90mbXQ,8014
|
48
|
+
slidge/core/mixins/message_maker.py,sha256=d9lMurnWCr7Y-pyyUkLoQYykb6lCCZuBNKFOe2hcY3A,6552
|
49
|
+
slidge/core/mixins/message_text.py,sha256=UUbY-hdsMEUHe3b2h2Rwkaic43iDiaaUoEmuyw6FezY,8564
|
50
|
+
slidge/core/mixins/presence.py,sha256=YPGdAPyVocjV7UJgIGupgf-arKJUYni67b3I7ajsKJE,9697
|
51
|
+
slidge/core/mixins/recipient.py,sha256=b0uFnpym-hOFgYxGjXT1xQcZ4YRbDSBftPcNWLzSwEI,1336
|
52
|
+
slidge/db/__init__.py,sha256=EBDH1JSEhgqYcli2Bw11CRC749wJk8AOucgBzmhDSvU,105
|
53
|
+
slidge/db/avatar.py,sha256=MXFd1oe0eL5CCUYbc5CpsIcbio3cY3xVoKt39RAoj9I,8240
|
54
|
+
slidge/db/meta.py,sha256=NtjGWcqPfG7uPfwR_cC6_23zyo8ftqgKX8CbP9IBq6U,2185
|
55
|
+
slidge/db/models.py,sha256=xkTveglIbJDwcm1YEF7urEC1LTlwyXYrxgT4Vppdmmg,12763
|
56
|
+
slidge/db/store.py,sha256=nRR0oAAHg16YX8zffavFh0i8d2QnZgyf0Zexev3M3sM,19261
|
57
|
+
slidge/db/alembic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
|
+
slidge/db/alembic/env.py,sha256=hsBlRNs0zF5diSHGRSa8Fi3qRVQDA2rJdR41AEIdvxc,1642
|
59
|
+
slidge/db/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
|
60
|
+
slidge/db/alembic/versions/0337c90c0b96_unify_legacy_xmpp_id_mappings.py,sha256=51Z7jCMEKtSeex4FUikEy2g-KQggW0kB-qxpBFKQh-0,6832
|
61
|
+
slidge/db/alembic/versions/04cf35e3cf85_add_participant_nickname_no_illegal.py,sha256=Dwz_azOXr7Tsw7Wnj0L8mknITIPXO9ewEsRn169EUNA,904
|
62
|
+
slidge/db/alembic/versions/09f27f098baa_add_missing_attributes_in_room.py,sha256=mUL-0Io6ZPd_QbnKfwGYyjdMcM2uxQ0Wg72H23-2t_E,1033
|
63
|
+
slidge/db/alembic/versions/15b0bd83407a_remove_bogus_unique_constraints_on_room_.py,sha256=kzHuHGhzey5CY0p_OsKf5a-3zSk2649wqg2ToLiSD1I,2927
|
64
|
+
slidge/db/alembic/versions/2461390c0af2_store_contacts_caps_verstring_in_db.py,sha256=CLB-kOP9Rc0FJIKDLef912L5sYkjpTIPC8fhrIdrC7k,1084
|
65
|
+
slidge/db/alembic/versions/29f5280c61aa_store_subject_setter_in_room.py,sha256=f8TFS28CXjGhvIn41UYMoHYeODfqhKfo4O7gk-JwA1E,1134
|
66
|
+
slidge/db/alembic/versions/2b1f45ab7379_store_room_subject_setter_by_nickname.py,sha256=CMVP2wFz6s7t57eWdSaGtck8BXzfVPJhHE5AoWi34tI,1359
|
67
|
+
slidge/db/alembic/versions/3071e0fa69d4_add_contact_client_type.py,sha256=jCdwCOnX9VDgnqIFFHGKaPA7w87Hm9nvR1rMY0LrA30,1394
|
68
|
+
slidge/db/alembic/versions/45c24cc73c91_add_bob.py,sha256=UjMySZ5LaInyPt0KbAxx0rF4GQhZh8CwBeqHtNPdG1c,1249
|
69
|
+
slidge/db/alembic/versions/4dbd23a3f868_new_avatar_store.py,sha256=t4kuly8UBqz-Vv6nMhJLZ834eCXZbziGjCotkenJIag,1764
|
70
|
+
slidge/db/alembic/versions/54ce3cde350c_use_hash_for_avatar_filenames.py,sha256=aNwlpXCHI_TEnVt2w-C8OrdH02-FhgrKbZkEqt40ay4,1495
|
71
|
+
slidge/db/alembic/versions/58b98dacf819_refactor.py,sha256=bQG57V7b0UK6of4MdDpoBNDtPQH5AYHqAkt3RL9OmaI,5001
|
72
|
+
slidge/db/alembic/versions/5bd48bfdffa2_lift_room_legacy_id_constraint.py,sha256=m3USa76h0O2Xut-NePXIOZfkXl0bx0d5FyjOYpd34Jo,1977
|
73
|
+
slidge/db/alembic/versions/75a62b74b239_ditch_hats_table.py,sha256=INKDe7Y5iMETpyFmwMyQm-RrnGjP9gbcC_pWKuXoi2I,2388
|
74
|
+
slidge/db/alembic/versions/82a4af84b679_add_muc_history_filled.py,sha256=g37po0ydp8ZmzJrE5oFV7GscnploxjCtPDpw28SqVGk,1429
|
75
|
+
slidge/db/alembic/versions/8b993243a536_add_vcard_content_to_contact_table.py,sha256=18tG8B03Kq8Qz_-mMd28Beed6jow8XNTtrz7gT5QY3g,1210
|
76
|
+
slidge/db/alembic/versions/8d2ced764698_rely_on_db_to_store_contacts_rooms_and_.py,sha256=ikoAlRV3_BJcDcFRANF-9HTB--0xpY0C5XdGuMuW9c0,4866
|
77
|
+
slidge/db/alembic/versions/aa9d82a7f6ef_db_creation.py,sha256=eFlfn-LiDph05yyCc8gmtJwVKzgrSHwyWJ6nuVfEpQA,1391
|
78
|
+
slidge/db/alembic/versions/abba1ae0edb3_store_avatar_legacy_id_in_the_contact_.py,sha256=VprqEVHipYuM-ea-CIM4_ubOD5zJ9inLTbhXc869n3A,2779
|
79
|
+
slidge/db/alembic/versions/b33993e87db3_move_everything_to_persistent_db.py,sha256=2tiRxoC9PYOQn6XQrwK0JTEsb45Pzp2PsKoZSS4rcIA,7564
|
80
|
+
slidge/db/alembic/versions/b64b1a793483_add_source_and_legacy_id_for_archived_.py,sha256=r2sOgR5HcfueJyc3cWNDRmlZzdHOSX6nl2gef54wDbk,1559
|
81
|
+
slidge/db/alembic/versions/c4a8ec35a0e8_per_room_user_nick.py,sha256=jjQmlRv6nqdm5q6LbwVpSUSkTBj1c76Hiq8e8q77q3g,933
|
82
|
+
slidge/db/alembic/versions/e91195719c2c_store_users_avatars_persistently.py,sha256=8Ga3VFgKrzMs_-B8OPtfP-0rey_MFaDg-QGtSbaft3o,640
|
83
|
+
slidge/group/__init__.py,sha256=yFt7cHqeaKIMN6f9ZyhhspOcJJvBtLedGv-iICG7lto,258
|
84
|
+
slidge/group/archive.py,sha256=DKwyde15-Op2rXuQBvdSmFcAKhUyWuorpEFcRSmDHec,5956
|
85
|
+
slidge/group/bookmarks.py,sha256=UWrUjZMWlDmwKFRuNEqxZSx4cvXFib4AP_l388ApJa8,7086
|
86
|
+
slidge/group/participant.py,sha256=6atjdHEgbfhPjPAkOVAQFFuCv5b8TO279HPHq-qpqIE,17651
|
87
|
+
slidge/group/room.py,sha256=KKj1mmASoRH80AfI-IZMOeahdThEEGu77-DFUw0ZsZo,49299
|
88
|
+
slidge/slixfix/__init__.py,sha256=LvaYZQYjr4l_45AYYpod1dB3MUaZye18vKF-4H8Bm20,4758
|
89
|
+
slidge/slixfix/delivery_receipt.py,sha256=JmogxsiXYEbTmCM4fvC5wkQs0jBsaJtKl4j_B_18riE,1415
|
90
|
+
slidge/slixfix/roster.py,sha256=DjjHQqCsKsPChUxV7S0Pm4IAgjfrwgm5tcTdJi3N_gY,1670
|
91
|
+
slidge/slixfix/link_preview/__init__.py,sha256=TDPTSEH5FQxgGpQpQIde-D72AHg-6YVWG-tOj4KpKmU,290
|
92
|
+
slidge/slixfix/link_preview/link_preview.py,sha256=_SeTvcNe_mPljLRp3rIKwOw0sXxpVIzMRF-Bkr3iMHw,456
|
93
|
+
slidge/slixfix/link_preview/stanza.py,sha256=0RC9dkD_3mzASq4nMYjyyytk9FqhOvkrv1Qbqf7hWqw,2672
|
94
|
+
slidge/slixfix/xep_0077/__init__.py,sha256=0lY1YXdgAsfrfxI_Woxaf1etHCJXe35Xtntq_icF6nA,325
|
95
|
+
slidge/slixfix/xep_0077/register.py,sha256=VtWFkQiqtbxke8lncwL9z32qWvuG40J38LYmWTQKUoE,10500
|
96
|
+
slidge/slixfix/xep_0077/stanza.py,sha256=u1rolvn-vRTMUSIxfWyFIveWz7Z6BWW3QmLh5o-g8vM,2471
|
97
|
+
slidge/slixfix/xep_0100/__init__.py,sha256=AtEXDQOrEWodkN3fgKR0W3Ezsz_Zza6cgO5ZaZS-JOo,107
|
98
|
+
slidge/slixfix/xep_0100/gateway.py,sha256=iK_a6XQGh6bYqSMAZw4i-7Fb0nguvGDQkuvxIeYIxKg,4330
|
99
|
+
slidge/slixfix/xep_0100/stanza.py,sha256=7vCzej9VFQupsTpGGl0cJWuGNH4I6oVcckBu_-fE55c,232
|
100
|
+
slidge/slixfix/xep_0153/__init__.py,sha256=hsEldnLuzvcp0NqSscxPV7FJl-6GFP372vlDg1G3S3I,283
|
101
|
+
slidge/slixfix/xep_0153/vcard_avatar.py,sha256=Oq4bV1XomedjIb9eWCGB5xxW_IDoRRYNTfQ-GYhzLYI,466
|
102
|
+
slidge/slixfix/xep_0292/__init__.py,sha256=_MvS9wGra6ig3P_dPAVlCPDJkiOFvUWGjaRsHj1woUg,98
|
103
|
+
slidge/slixfix/xep_0292/vcard4.py,sha256=I6EXdTQ51nfF5qvKh7WMAluELbFsdtnYHrsV_8PrjK4,366
|
104
|
+
slidge/util/__init__.py,sha256=BELovoTMPcPPGz3D48esBr8A4BRRHXTvavfgnArBgEc,301
|
105
|
+
slidge/util/archive_msg.py,sha256=hGNquu38ouSWSc-kz_oAYPXwjhUVZNSedIpwkrXHSd0,1826
|
106
|
+
slidge/util/conf.py,sha256=uNDY6GdQyTZEV47ab9fi27wwRb0ZMvbuZ7Hbzfe_NT8,7269
|
107
|
+
slidge/util/jid_escaping.py,sha256=QJ2Yj_j1gTmiO9g2r187iVCu7kia_O5ABhRiLAO2TG4,1073
|
108
|
+
slidge/util/lock.py,sha256=ZnUi3LGiz271-YeYKo9JzxovJCoSwlP9P65pNyHIO9o,1029
|
109
|
+
slidge/util/test.py,sha256=_E6er2BtQlpyzTUmp4u8C9KhBYzbLrmTwSVgxGObKHU,13988
|
110
|
+
slidge/util/types.py,sha256=xJ84ZvaUOU_VVJSjEMysgNSl05k0_O9YKbyW-JUrsMI,5635
|
111
|
+
slidge/util/util.py,sha256=4hihLCl4SsB5S14TT3bP8tDPP_Zg9rYbSfLdLB9-G_Q,9332
|
112
|
+
slidge-0.3.0a0.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
113
|
+
slidge-0.3.0a0.dist-info/METADATA,sha256=-zxaahvP72dUIyyg9A2DEygBURS_rRqAJp2WBLoYcMw,5056
|
114
|
+
slidge-0.3.0a0.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
|
115
|
+
slidge-0.3.0a0.dist-info/entry_points.txt,sha256=py3_x834fFJ2TEzPd18Wt2DnysdAfuVqJ5zzBrXbAZs,44
|
116
|
+
slidge-0.3.0a0.dist-info/top_level.txt,sha256=2LRjDYHaGZ5ieCMF8xy58JIiabRMzX-MGMbCZwfE17c,7
|
117
|
+
slidge-0.3.0a0.dist-info/RECORD,,
|
slidge-0.2.12.dist-info/RECORD
DELETED
@@ -1,112 +0,0 @@
|
|
1
|
-
slidge/__init__.py,sha256=CJBHKrNCsJkFA5aPRhmMF3a-dfWtPG4zOcHeuWb0xxU,1757
|
2
|
-
slidge/__main__.py,sha256=ydjUklOoavS4YlGfjRX_8BQN2DaSbaXPMi47RkOgcFI,37
|
3
|
-
slidge/main.py,sha256=WMjWFeeODHZKzpXoQdOweZN1ygxM03dah3vFpOUdDUs,6537
|
4
|
-
slidge/migration.py,sha256=4BJmPIRB56_WIhRTqBFIIBXuvnhhBjjOMl4CE7jY6oc,1541
|
5
|
-
slidge/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
slidge/command/__init__.py,sha256=UYf1mjCYbZ5G7PIgaFTWSQRAzEJkQ6dTH8Fu_e_XnO0,613
|
7
|
-
slidge/command/adhoc.py,sha256=bYLXcYJjbqPE9nBhrEQevqYFh9AS7Ei3m1vTZBIggrc,10557
|
8
|
-
slidge/command/admin.py,sha256=DYN9yADZo2hKV0t20K2qnFPJHU98eKsaZTOqi1zdMys,6165
|
9
|
-
slidge/command/base.py,sha256=EDcEl5dJcooSmLarXI2fmBq6QtU7h-7MOM3DDsxXmTU,13447
|
10
|
-
slidge/command/categories.py,sha256=vF0KGDV9sEn8TNkcMoDRw-u3gEyNHSXghOU2JRHQtKs,351
|
11
|
-
slidge/command/chat_command.py,sha256=z-4qp03rK7kCh3_kEozDViwkDg_hVjHvRCiYYJxedBQ,11153
|
12
|
-
slidge/command/register.py,sha256=BduDI31Kx8CbWWEdjybimTA5Wcfhn-Jkt8sSPsySCpo,6724
|
13
|
-
slidge/command/user.py,sha256=fLh5d7XTSXicj6g0I80F5n6BFaA20PaYoXFkfDOR4zA,12303
|
14
|
-
slidge/contact/__init__.py,sha256=WMMaHk7UW7YT9EH2LtPdkU0bHQaOp4ikBhbBQskmoc8,191
|
15
|
-
slidge/contact/contact.py,sha256=CLWuNLvWuODi1mlT6MFGx9s3y8yGPM8ZEsH-Ih6QEn8,22929
|
16
|
-
slidge/contact/roster.py,sha256=19EYyX-usuevMob9AgnQmSt6APdE5MxMroHOYmVYt-w,10205
|
17
|
-
slidge/core/__init__.py,sha256=RG7Jj5JCJERjhqJ31lOLYV-7bH_oblClQD1KF9LsTXo,68
|
18
|
-
slidge/core/config.py,sha256=OjJfpXJaDhMxRB-vYA0cqkSf0fwMt-HMThM8GS1htCg,7964
|
19
|
-
slidge/core/gateway.py,sha256=Ghe2-bZ2XSeWC34uXO0D31yn04WbcwKH5pnDpPL4cVA,37606
|
20
|
-
slidge/core/pubsub.py,sha256=IAu-MV_ncrUk3SiVVWyzmKtv9I9yXBNAOE78GaowyYE,12156
|
21
|
-
slidge/core/session.py,sha256=Ie1a6bpUCC_HFvm98S-t03WG5JlOFG0SwbmGB2l9ZTc,28439
|
22
|
-
slidge/core/dispatcher/__init__.py,sha256=1EXcjXietUKlxEqdrCWCV3xZ3q_DSsjHoqWrPMbtYao,84
|
23
|
-
slidge/core/dispatcher/caps.py,sha256=vzCAXo_bhALuLEpJWtyJTzVfWx96g1AsWD8_wkoDl0Y,2028
|
24
|
-
slidge/core/dispatcher/disco.py,sha256=j56VY9NIFzwPEWFKQQZ7YIqS9GdD-ZaF_K8a2L-JvRk,2006
|
25
|
-
slidge/core/dispatcher/presence.py,sha256=X4i-JjQ423gXiveJH7sjdwW_67rJiSYS7jIvkm1XsJg,6421
|
26
|
-
slidge/core/dispatcher/registration.py,sha256=Xmbw9NF3LUppCOa3XzreopdKDitZnwl_5HE-kds74n8,3155
|
27
|
-
slidge/core/dispatcher/search.py,sha256=9cGj0wwvyYlP_Yk440Y12sgo4Y1p-JWUDSJP5Zxch0M,3296
|
28
|
-
slidge/core/dispatcher/session_dispatcher.py,sha256=Gzq2IPThhzQ0_mCVKPCNHypIXgL-WnZalTyLMjUX9Hs,3148
|
29
|
-
slidge/core/dispatcher/util.py,sha256=YtXyVxM3orE7aYWs-GbJumtLTI63OpaQY_t4FMTjoZo,5754
|
30
|
-
slidge/core/dispatcher/vcard.py,sha256=Rmx-wCz6Lps0mXCO48HppNQlS3GOgMuzuw9hZYBdlVU,5130
|
31
|
-
slidge/core/dispatcher/message/__init__.py,sha256=vpDGOc_U9XvkUU_ws9n9-5M2NPJ87XGTVpuIxM7Z99k,223
|
32
|
-
slidge/core/dispatcher/message/chat_state.py,sha256=sCdEpzbgmvBmTovNOCv9uY6v0eJZcWVvDYAGlAV3FJ4,1735
|
33
|
-
slidge/core/dispatcher/message/marker.py,sha256=f1ezaMoHupBFZY7aUMsWLAQG7G1J9b3ihxICCkpGtis,2411
|
34
|
-
slidge/core/dispatcher/message/message.py,sha256=07h7OBbIh3OtSbi7DNwv5ANRTzWbwS9ICMHjS_6KpEM,15360
|
35
|
-
slidge/core/dispatcher/muc/__init__.py,sha256=V8URHLJ_y7mk-7Id6FzRuczb1Uq_Z69fhxvzHuVLH1w,269
|
36
|
-
slidge/core/dispatcher/muc/admin.py,sha256=mkosquhaI2iC_mFq7C08kjwjr4iVqAWp7kbOTmgUQtU,3321
|
37
|
-
slidge/core/dispatcher/muc/mam.py,sha256=1ROVP4ZPEVEH-HR5qRV4YwHz-V15uu5gyhv1ZwwKhk8,2821
|
38
|
-
slidge/core/dispatcher/muc/misc.py,sha256=bHBjMC-Pu3jR5hAPGMzXf-C05UbACIwg38YbJUxHIxk,4068
|
39
|
-
slidge/core/dispatcher/muc/owner.py,sha256=1a6YV7b_mmi1jC6q1ko8weeL8imQA-s-hYGPLIHd10I,3308
|
40
|
-
slidge/core/dispatcher/muc/ping.py,sha256=lb1VQPhiUPZ19KhbofRXMVCcY6wwQ2w-asnqtANaAwA,1660
|
41
|
-
slidge/core/mixins/__init__.py,sha256=muReAzgvENgMvlfm0Fpe6BQFfm2EMjoDe9ZhGgo6Vig,627
|
42
|
-
slidge/core/mixins/attachment.py,sha256=diEmZAkc_fv9UEHzDXVHtRbE9-vhK8yN9ZtI9gL0JAY,20212
|
43
|
-
slidge/core/mixins/avatar.py,sha256=BVOeH5j5tsPJ0IHUcB5ozpyh02TBPKiZMd9MYizDokA,8136
|
44
|
-
slidge/core/mixins/base.py,sha256=MOd-pas38_52VawQVlxWtBtmTKC6My9G0ZaCeQxOJbs,748
|
45
|
-
slidge/core/mixins/db.py,sha256=5Qpegd7D8e5TLXLLINYcf_DuVdN-7wNmsfztUuFYPcU,442
|
46
|
-
slidge/core/mixins/disco.py,sha256=jk3Z1B6zTuisHv8VKNRJodIo0ee5btYHh2ZrlflPj_Q,3670
|
47
|
-
slidge/core/mixins/lock.py,sha256=Vf1rrkbyNbSprr38WGfZiMgTB7AdbqH8ppFHY8N2yXE,975
|
48
|
-
slidge/core/mixins/message.py,sha256=X8Ka8j0nOnBcecYE_YuK8_J7MeO5-R0TIZw4X8c7R3Y,7846
|
49
|
-
slidge/core/mixins/message_maker.py,sha256=_sa0YWyxnvI0DcPgoh6h1CxLbYF73Ezw1LRZN2CNRTM,6025
|
50
|
-
slidge/core/mixins/message_text.py,sha256=pCY4tezEuwB2ZuUyUi72i4v9AJkxp_SWF1jrFsn94Ns,8096
|
51
|
-
slidge/core/mixins/presence.py,sha256=yywo6KAw8C7GaZSMrSMuioNfhW08MrnobHt8XbHd0q8,7891
|
52
|
-
slidge/core/mixins/recipient.py,sha256=b0uFnpym-hOFgYxGjXT1xQcZ4YRbDSBftPcNWLzSwEI,1336
|
53
|
-
slidge/db/__init__.py,sha256=EBDH1JSEhgqYcli2Bw11CRC749wJk8AOucgBzmhDSvU,105
|
54
|
-
slidge/db/avatar.py,sha256=z5e72STv8PdN6zkNyKlLqF7NFxHwCa6IjwgFpzu5ghE,8033
|
55
|
-
slidge/db/meta.py,sha256=v1Jf-npZ28QwdGpsLQWLBHEbEP3-jnPrygRg05tJ_Iw,1831
|
56
|
-
slidge/db/models.py,sha256=MSVNW04x05qfxahvjCYRDFjfFP-XXp-lOHnK5IqFCXw,14046
|
57
|
-
slidge/db/store.py,sha256=P9gprCsRsbJjdzvyG2UKV5IHL6R0tWu-Q7t6mivqJVI,47206
|
58
|
-
slidge/db/alembic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
59
|
-
slidge/db/alembic/env.py,sha256=hsBlRNs0zF5diSHGRSa8Fi3qRVQDA2rJdR41AEIdvxc,1642
|
60
|
-
slidge/db/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
|
61
|
-
slidge/db/alembic/versions/04cf35e3cf85_add_participant_nickname_no_illegal.py,sha256=Dwz_azOXr7Tsw7Wnj0L8mknITIPXO9ewEsRn169EUNA,904
|
62
|
-
slidge/db/alembic/versions/09f27f098baa_add_missing_attributes_in_room.py,sha256=mUL-0Io6ZPd_QbnKfwGYyjdMcM2uxQ0Wg72H23-2t_E,1033
|
63
|
-
slidge/db/alembic/versions/15b0bd83407a_remove_bogus_unique_constraints_on_room_.py,sha256=kzHuHGhzey5CY0p_OsKf5a-3zSk2649wqg2ToLiSD1I,2927
|
64
|
-
slidge/db/alembic/versions/2461390c0af2_store_contacts_caps_verstring_in_db.py,sha256=CLB-kOP9Rc0FJIKDLef912L5sYkjpTIPC8fhrIdrC7k,1084
|
65
|
-
slidge/db/alembic/versions/29f5280c61aa_store_subject_setter_in_room.py,sha256=f8TFS28CXjGhvIn41UYMoHYeODfqhKfo4O7gk-JwA1E,1134
|
66
|
-
slidge/db/alembic/versions/2b1f45ab7379_store_room_subject_setter_by_nickname.py,sha256=CMVP2wFz6s7t57eWdSaGtck8BXzfVPJhHE5AoWi34tI,1359
|
67
|
-
slidge/db/alembic/versions/3071e0fa69d4_add_contact_client_type.py,sha256=jCdwCOnX9VDgnqIFFHGKaPA7w87Hm9nvR1rMY0LrA30,1394
|
68
|
-
slidge/db/alembic/versions/45c24cc73c91_add_bob.py,sha256=UjMySZ5LaInyPt0KbAxx0rF4GQhZh8CwBeqHtNPdG1c,1249
|
69
|
-
slidge/db/alembic/versions/5bd48bfdffa2_lift_room_legacy_id_constraint.py,sha256=m3USa76h0O2Xut-NePXIOZfkXl0bx0d5FyjOYpd34Jo,1977
|
70
|
-
slidge/db/alembic/versions/82a4af84b679_add_muc_history_filled.py,sha256=g37po0ydp8ZmzJrE5oFV7GscnploxjCtPDpw28SqVGk,1429
|
71
|
-
slidge/db/alembic/versions/8b993243a536_add_vcard_content_to_contact_table.py,sha256=18tG8B03Kq8Qz_-mMd28Beed6jow8XNTtrz7gT5QY3g,1210
|
72
|
-
slidge/db/alembic/versions/8d2ced764698_rely_on_db_to_store_contacts_rooms_and_.py,sha256=ikoAlRV3_BJcDcFRANF-9HTB--0xpY0C5XdGuMuW9c0,4866
|
73
|
-
slidge/db/alembic/versions/aa9d82a7f6ef_db_creation.py,sha256=eFlfn-LiDph05yyCc8gmtJwVKzgrSHwyWJ6nuVfEpQA,1391
|
74
|
-
slidge/db/alembic/versions/abba1ae0edb3_store_avatar_legacy_id_in_the_contact_.py,sha256=VprqEVHipYuM-ea-CIM4_ubOD5zJ9inLTbhXc869n3A,2779
|
75
|
-
slidge/db/alembic/versions/b33993e87db3_move_everything_to_persistent_db.py,sha256=2tiRxoC9PYOQn6XQrwK0JTEsb45Pzp2PsKoZSS4rcIA,7564
|
76
|
-
slidge/db/alembic/versions/b64b1a793483_add_source_and_legacy_id_for_archived_.py,sha256=r2sOgR5HcfueJyc3cWNDRmlZzdHOSX6nl2gef54wDbk,1559
|
77
|
-
slidge/db/alembic/versions/c4a8ec35a0e8_per_room_user_nick.py,sha256=jjQmlRv6nqdm5q6LbwVpSUSkTBj1c76Hiq8e8q77q3g,933
|
78
|
-
slidge/db/alembic/versions/e91195719c2c_store_users_avatars_persistently.py,sha256=8Ga3VFgKrzMs_-B8OPtfP-0rey_MFaDg-QGtSbaft3o,640
|
79
|
-
slidge/group/__init__.py,sha256=yFt7cHqeaKIMN6f9ZyhhspOcJJvBtLedGv-iICG7lto,258
|
80
|
-
slidge/group/archive.py,sha256=AUzVtXlHiCreyY3jp1XMt0G7LDNm-qOU-4CEPQ89ics,5445
|
81
|
-
slidge/group/bookmarks.py,sha256=uGw_XtF0nloZ7rhNLdKM0nNZZb5C6SBfTsLyZryxjxY,6592
|
82
|
-
slidge/group/participant.py,sha256=YExXhm7FWK_G-_H6VJKFhJhA07l1KB7pZvD1xAYibj8,17730
|
83
|
-
slidge/group/room.py,sha256=XDbK7kHTIB3A1JlvdeK85OBBxYTA9sVCu7tb7gcXa0Q,49515
|
84
|
-
slidge/slixfix/__init__.py,sha256=su7mDAHgP3uU7bSxjK8dwW79k7KBLevJHdMQV8_33WA,4130
|
85
|
-
slidge/slixfix/delivery_receipt.py,sha256=3bWdZH3-X3CZJXmnI_TpjkTUUK-EY4Ktm78lW0-40fc,1366
|
86
|
-
slidge/slixfix/roster.py,sha256=KvDjh9q7pqaZf69H93okfib13cc95uVZUJ6rzpqmDaU,1704
|
87
|
-
slidge/slixfix/link_preview/__init__.py,sha256=TDPTSEH5FQxgGpQpQIde-D72AHg-6YVWG-tOj4KpKmU,290
|
88
|
-
slidge/slixfix/link_preview/link_preview.py,sha256=9PgdfnoyVMHnXS0w5OFp0wz3ku96Ck-HtRXbVUlDi1U,448
|
89
|
-
slidge/slixfix/link_preview/stanza.py,sha256=YAXoNw2MD0a3nzvldGKlvSemjUMbUEG23regzmj4Ntc,2664
|
90
|
-
slidge/slixfix/xep_0077/__init__.py,sha256=0lY1YXdgAsfrfxI_Woxaf1etHCJXe35Xtntq_icF6nA,325
|
91
|
-
slidge/slixfix/xep_0077/register.py,sha256=6nwTfHNL7Z9-1wUhpAF743TNbjQLCMP7Rflkdad8d60,10431
|
92
|
-
slidge/slixfix/xep_0077/stanza.py,sha256=Lngly7F1ChCkNKn7yl1QmN838fO-KqkAhkazxzDsz80,2410
|
93
|
-
slidge/slixfix/xep_0100/__init__.py,sha256=AtEXDQOrEWodkN3fgKR0W3Ezsz_Zza6cgO5ZaZS-JOo,107
|
94
|
-
slidge/slixfix/xep_0100/gateway.py,sha256=aSR18605MWVqgucNd_zd1SdYlXry7k5uoqDzsvVqQyM,4363
|
95
|
-
slidge/slixfix/xep_0100/stanza.py,sha256=7vCzej9VFQupsTpGGl0cJWuGNH4I6oVcckBu_-fE55c,232
|
96
|
-
slidge/slixfix/xep_0153/__init__.py,sha256=hsEldnLuzvcp0NqSscxPV7FJl-6GFP372vlDg1G3S3I,283
|
97
|
-
slidge/slixfix/xep_0153/vcard_avatar.py,sha256=py-qzj1jmmzsM4GCTKLRW7cAdAmSVjodp6q0r5B0RqQ,458
|
98
|
-
slidge/slixfix/xep_0292/__init__.py,sha256=_MvS9wGra6ig3P_dPAVlCPDJkiOFvUWGjaRsHj1woUg,98
|
99
|
-
slidge/slixfix/xep_0292/vcard4.py,sha256=jL-TOW3eG2QXLduSLNq03L8HoUNmvy8kTZI5ojvo6GE,358
|
100
|
-
slidge/util/__init__.py,sha256=BELovoTMPcPPGz3D48esBr8A4BRRHXTvavfgnArBgEc,301
|
101
|
-
slidge/util/archive_msg.py,sha256=xXAR0BI5r3d6KKWjae9594izCOv6iI03z2WLuTecNw8,1724
|
102
|
-
slidge/util/conf.py,sha256=yT_9Wino0xfhTvOjmmokt2PIQBTwBKVuVPWp7_7aoKU,6967
|
103
|
-
slidge/util/jid_escaping.py,sha256=pWJTrB6-M923a_rEE-nxPmiDTOx9UCMa8UgE7JbLC0c,1066
|
104
|
-
slidge/util/test.py,sha256=l1VHBsw5Uzk2t7wtkfb9kWvtehcYhw1t_d567JAJFKA,14135
|
105
|
-
slidge/util/types.py,sha256=5j0G22hhsh3PNhtpJaz2DVt5XINJznZjz0hqewPZoFo,5407
|
106
|
-
slidge/util/util.py,sha256=ZkQltO6JmfqZc9T-86XI6gAsZx9BLdF0CCurnxPRNRc,9329
|
107
|
-
slidge-0.2.12.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
108
|
-
slidge-0.2.12.dist-info/METADATA,sha256=NoQOAYNN-4kPAqDQyKp5rfiFvLtygf8UOXHgZ7kkH6k,5055
|
109
|
-
slidge-0.2.12.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
110
|
-
slidge-0.2.12.dist-info/entry_points.txt,sha256=py3_x834fFJ2TEzPd18Wt2DnysdAfuVqJ5zzBrXbAZs,44
|
111
|
-
slidge-0.2.12.dist-info/top_level.txt,sha256=2LRjDYHaGZ5ieCMF8xy58JIiabRMzX-MGMbCZwfE17c,7
|
112
|
-
slidge-0.2.12.dist-info/RECORD,,
|
File without changes
|