slidge 0.2.2__py3-none-any.whl → 0.2.3.post1__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/__version__.py +1 -1
- slidge/command/register.py +1 -3
- slidge/contact/contact.py +1 -1
- slidge/core/dispatcher/muc/admin.py +3 -4
- slidge/core/dispatcher/presence.py +3 -3
- slidge/core/mixins/attachment.py +1 -1
- slidge/core/mixins/avatar.py +6 -0
- slidge/core/mixins/message.py +13 -2
- slidge/db/store.py +9 -3
- slidge/group/archive.py +3 -3
- slidge/group/participant.py +11 -5
- slidge/main.py +1 -1
- slidge/slixfix/__init__.py +5 -16
- slidge/slixfix/xep_0153/__init__.py +0 -1
- slidge/slixfix/xep_0153/vcard_avatar.py +1 -10
- slidge/util/test.py +9 -2
- slidge-0.2.3.post1.dist-info/METADATA +793 -0
- {slidge-0.2.2.dist-info → slidge-0.2.3.post1.dist-info}/RECORD +35 -51
- {slidge-0.2.2.dist-info → slidge-0.2.3.post1.dist-info}/WHEEL +2 -1
- slidge-0.2.3.post1.dist-info/entry_points.txt +2 -0
- slidge-0.2.3.post1.dist-info/top_level.txt +1 -0
- slidge/slixfix/xep_0153/stanza.py +0 -25
- slidge/slixfix/xep_0264/__init__.py +0 -5
- slidge/slixfix/xep_0264/stanza.py +0 -36
- slidge/slixfix/xep_0264/thumbnail.py +0 -23
- slidge/slixfix/xep_0313/__init__.py +0 -12
- slidge/slixfix/xep_0313/mam.py +0 -262
- slidge/slixfix/xep_0313/stanza.py +0 -359
- slidge/slixfix/xep_0317/__init__.py +0 -5
- slidge/slixfix/xep_0317/hats.py +0 -17
- slidge/slixfix/xep_0317/stanza.py +0 -28
- slidge/slixfix/xep_0424/__init__.py +0 -9
- slidge/slixfix/xep_0424/retraction.py +0 -77
- slidge/slixfix/xep_0424/stanza.py +0 -28
- slidge/slixfix/xep_0490/__init__.py +0 -8
- slidge/slixfix/xep_0490/mds.py +0 -47
- slidge/slixfix/xep_0490/stanza.py +0 -17
- slidge-0.2.2.dist-info/LICENSE +0 -661
- slidge-0.2.2.dist-info/METADATA +0 -116
- slidge-0.2.2.dist-info/entry_points.txt +0 -3
@@ -1,54 +1,61 @@
|
|
1
1
|
slidge/__init__.py,sha256=S0tUjqpZlzsr8G4Y_1Xt-KCYB07qaknTB0OwHU8k29U,1587
|
2
2
|
slidge/__main__.py,sha256=ydjUklOoavS4YlGfjRX_8BQN2DaSbaXPMi47RkOgcFI,37
|
3
|
-
slidge/__version__.py,sha256=
|
3
|
+
slidge/__version__.py,sha256=i4LQytjT85nU1wHx0KxMZ2wULDy9KnXdNBwMO7WBmNk,171
|
4
|
+
slidge/main.py,sha256=vMJzhvUxbeuIXuHxXXs6lm_ShBjXiS9B5Li5Ge4vWPo,6238
|
5
|
+
slidge/migration.py,sha256=4BJmPIRB56_WIhRTqBFIIBXuvnhhBjjOMl4CE7jY6oc,1541
|
6
|
+
slidge/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
7
|
slidge/command/__init__.py,sha256=UYf1mjCYbZ5G7PIgaFTWSQRAzEJkQ6dTH8Fu_e_XnO0,613
|
5
8
|
slidge/command/adhoc.py,sha256=-AO4h1N6owSuuqZon5tDL29O6qmEeAd1pcPjGCkzKRs,10065
|
6
9
|
slidge/command/admin.py,sha256=TYrzgCIhjcTIwl1IUaFlUd3D98SPyao10gB20zo8b3Q,6187
|
7
10
|
slidge/command/base.py,sha256=S-4WnxDuGE3sQTca5L6DjHVBsHqpNuf6zvXffYoP46c,13159
|
8
11
|
slidge/command/categories.py,sha256=vF0KGDV9sEn8TNkcMoDRw-u3gEyNHSXghOU2JRHQtKs,351
|
9
12
|
slidge/command/chat_command.py,sha256=z-4qp03rK7kCh3_kEozDViwkDg_hVjHvRCiYYJxedBQ,11153
|
10
|
-
slidge/command/register.py,sha256=
|
13
|
+
slidge/command/register.py,sha256=BduDI31Kx8CbWWEdjybimTA5Wcfhn-Jkt8sSPsySCpo,6724
|
11
14
|
slidge/command/user.py,sha256=aksfkRUK7xj9n0XM-IfUSS5LrTp0qIHt5K2UkBBT1UE,12099
|
12
15
|
slidge/contact/__init__.py,sha256=WMMaHk7UW7YT9EH2LtPdkU0bHQaOp4ikBhbBQskmoc8,191
|
13
|
-
slidge/contact/contact.py,sha256=
|
16
|
+
slidge/contact/contact.py,sha256=BQ5Fw7InnI76S5bQi_kZL1HhtptZhegmtsKksml7tjY,23125
|
14
17
|
slidge/contact/roster.py,sha256=x3speGdHbZ-VTLoQLQW4s53rBeBvW87W8ZibCCZSLDA,10300
|
15
18
|
slidge/core/__init__.py,sha256=RG7Jj5JCJERjhqJ31lOLYV-7bH_oblClQD1KF9LsTXo,68
|
16
19
|
slidge/core/config.py,sha256=WP3-ScXqdAhJBX7IRB5pBi_tAV_vE6G5W3Z-LGGULQw,7691
|
20
|
+
slidge/core/gateway.py,sha256=m7XN4ACd_txLl4zoAJNJjKT0BFJu6yUfJmhVfUkV7XM,36512
|
21
|
+
slidge/core/pubsub.py,sha256=oTiS5KFQJAmsgkhOsvfvthT-LkuZGQSCrrUG0JskNkI,11907
|
22
|
+
slidge/core/session.py,sha256=nQexpCd1jlHOhQPnFI4ri-5odp3N2pU5HO4l7WFetZY,28148
|
17
23
|
slidge/core/dispatcher/__init__.py,sha256=1EXcjXietUKlxEqdrCWCV3xZ3q_DSsjHoqWrPMbtYao,84
|
18
24
|
slidge/core/dispatcher/caps.py,sha256=vzCAXo_bhALuLEpJWtyJTzVfWx96g1AsWD8_wkoDl0Y,2028
|
19
25
|
slidge/core/dispatcher/disco.py,sha256=j56VY9NIFzwPEWFKQQZ7YIqS9GdD-ZaF_K8a2L-JvRk,2006
|
26
|
+
slidge/core/dispatcher/presence.py,sha256=X4i-JjQ423gXiveJH7sjdwW_67rJiSYS7jIvkm1XsJg,6421
|
27
|
+
slidge/core/dispatcher/registration.py,sha256=Xmbw9NF3LUppCOa3XzreopdKDitZnwl_5HE-kds74n8,3155
|
28
|
+
slidge/core/dispatcher/search.py,sha256=9cGj0wwvyYlP_Yk440Y12sgo4Y1p-JWUDSJP5Zxch0M,3296
|
29
|
+
slidge/core/dispatcher/session_dispatcher.py,sha256=vNaOJpHKGTzIyQJX457IvhbooKFN5JR3HA7XW0AArFI,2868
|
30
|
+
slidge/core/dispatcher/util.py,sha256=YtXyVxM3orE7aYWs-GbJumtLTI63OpaQY_t4FMTjoZo,5754
|
31
|
+
slidge/core/dispatcher/vcard.py,sha256=Rmx-wCz6Lps0mXCO48HppNQlS3GOgMuzuw9hZYBdlVU,5130
|
20
32
|
slidge/core/dispatcher/message/__init__.py,sha256=vpDGOc_U9XvkUU_ws9n9-5M2NPJ87XGTVpuIxM7Z99k,223
|
21
33
|
slidge/core/dispatcher/message/chat_state.py,sha256=sCdEpzbgmvBmTovNOCv9uY6v0eJZcWVvDYAGlAV3FJ4,1735
|
22
34
|
slidge/core/dispatcher/message/marker.py,sha256=f1ezaMoHupBFZY7aUMsWLAQG7G1J9b3ihxICCkpGtis,2411
|
23
35
|
slidge/core/dispatcher/message/message.py,sha256=HwauW2kGionLyDWG01OSa9a14gYzoovJuJvGbfB4nt4,15296
|
24
36
|
slidge/core/dispatcher/muc/__init__.py,sha256=V8URHLJ_y7mk-7Id6FzRuczb1Uq_Z69fhxvzHuVLH1w,269
|
25
|
-
slidge/core/dispatcher/muc/admin.py,sha256=
|
37
|
+
slidge/core/dispatcher/muc/admin.py,sha256=mkosquhaI2iC_mFq7C08kjwjr4iVqAWp7kbOTmgUQtU,3321
|
26
38
|
slidge/core/dispatcher/muc/mam.py,sha256=1ROVP4ZPEVEH-HR5qRV4YwHz-V15uu5gyhv1ZwwKhk8,2821
|
27
39
|
slidge/core/dispatcher/muc/misc.py,sha256=bHBjMC-Pu3jR5hAPGMzXf-C05UbACIwg38YbJUxHIxk,4068
|
28
40
|
slidge/core/dispatcher/muc/owner.py,sha256=1a6YV7b_mmi1jC6q1ko8weeL8imQA-s-hYGPLIHd10I,3308
|
29
41
|
slidge/core/dispatcher/muc/ping.py,sha256=lb1VQPhiUPZ19KhbofRXMVCcY6wwQ2w-asnqtANaAwA,1660
|
30
|
-
slidge/core/dispatcher/presence.py,sha256=062I98OR2-iJOwU_UT2DHMxK4YlEo6Sbot282ab_-zo,6419
|
31
|
-
slidge/core/dispatcher/registration.py,sha256=Xmbw9NF3LUppCOa3XzreopdKDitZnwl_5HE-kds74n8,3155
|
32
|
-
slidge/core/dispatcher/search.py,sha256=9cGj0wwvyYlP_Yk440Y12sgo4Y1p-JWUDSJP5Zxch0M,3296
|
33
|
-
slidge/core/dispatcher/session_dispatcher.py,sha256=vNaOJpHKGTzIyQJX457IvhbooKFN5JR3HA7XW0AArFI,2868
|
34
|
-
slidge/core/dispatcher/util.py,sha256=YtXyVxM3orE7aYWs-GbJumtLTI63OpaQY_t4FMTjoZo,5754
|
35
|
-
slidge/core/dispatcher/vcard.py,sha256=Rmx-wCz6Lps0mXCO48HppNQlS3GOgMuzuw9hZYBdlVU,5130
|
36
|
-
slidge/core/gateway.py,sha256=m7XN4ACd_txLl4zoAJNJjKT0BFJu6yUfJmhVfUkV7XM,36512
|
37
42
|
slidge/core/mixins/__init__.py,sha256=muReAzgvENgMvlfm0Fpe6BQFfm2EMjoDe9ZhGgo6Vig,627
|
38
|
-
slidge/core/mixins/attachment.py,sha256=
|
39
|
-
slidge/core/mixins/avatar.py,sha256=
|
43
|
+
slidge/core/mixins/attachment.py,sha256=sdRo_WMaWnWr00bM3AYyZRAsP0TlgwqkdHd1i2EAkCg,20133
|
44
|
+
slidge/core/mixins/avatar.py,sha256=BVOeH5j5tsPJ0IHUcB5ozpyh02TBPKiZMd9MYizDokA,8136
|
40
45
|
slidge/core/mixins/base.py,sha256=MOd-pas38_52VawQVlxWtBtmTKC6My9G0ZaCeQxOJbs,748
|
41
46
|
slidge/core/mixins/db.py,sha256=5Qpegd7D8e5TLXLLINYcf_DuVdN-7wNmsfztUuFYPcU,442
|
42
47
|
slidge/core/mixins/disco.py,sha256=jk3Z1B6zTuisHv8VKNRJodIo0ee5btYHh2ZrlflPj_Q,3670
|
43
48
|
slidge/core/mixins/lock.py,sha256=Vf1rrkbyNbSprr38WGfZiMgTB7AdbqH8ppFHY8N2yXE,975
|
44
|
-
slidge/core/mixins/message.py,sha256=
|
49
|
+
slidge/core/mixins/message.py,sha256=5Tt1r_8rjsV445b_28Lx73S-rW5tsP1uGPQhIKN64VM,7998
|
45
50
|
slidge/core/mixins/message_maker.py,sha256=TcCutHi0sIwL6beJNkN7XyR0aDIbA0xZyxd2Gc9ulG4,6022
|
46
51
|
slidge/core/mixins/message_text.py,sha256=pCY4tezEuwB2ZuUyUi72i4v9AJkxp_SWF1jrFsn94Ns,8096
|
47
52
|
slidge/core/mixins/presence.py,sha256=yywo6KAw8C7GaZSMrSMuioNfhW08MrnobHt8XbHd0q8,7891
|
48
53
|
slidge/core/mixins/recipient.py,sha256=U-YppozUO8pA94jmD3-qmhkykTebPNaOVWc3JDPC9w8,1302
|
49
|
-
slidge/core/pubsub.py,sha256=oTiS5KFQJAmsgkhOsvfvthT-LkuZGQSCrrUG0JskNkI,11907
|
50
|
-
slidge/core/session.py,sha256=nQexpCd1jlHOhQPnFI4ri-5odp3N2pU5HO4l7WFetZY,28148
|
51
54
|
slidge/db/__init__.py,sha256=EBDH1JSEhgqYcli2Bw11CRC749wJk8AOucgBzmhDSvU,105
|
55
|
+
slidge/db/avatar.py,sha256=FfRt2Vu11ZKD9F3x1_drawvUd-TDE3mp7SE3BZ9hOOg,6467
|
56
|
+
slidge/db/meta.py,sha256=v1Jf-npZ28QwdGpsLQWLBHEbEP3-jnPrygRg05tJ_Iw,1831
|
57
|
+
slidge/db/models.py,sha256=0NUJfa3lPKHhwV2zE4p7QVYCVs3yn9egFg2u9mssk5c,13964
|
58
|
+
slidge/db/store.py,sha256=4QyK6rjztPdmhjsqxMookEK_WrdlzOpPFPWnCpKy2u4,46704
|
52
59
|
slidge/db/alembic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
53
60
|
slidge/db/alembic/env.py,sha256=hsBlRNs0zF5diSHGRSa8Fi3qRVQDA2rJdR41AEIdvxc,1642
|
54
61
|
slidge/db/alembic/old_user_store.py,sha256=zFOv0JEWQQK0_TMRlU4Z0G5Mc9pxvEErLyOzXmRAe5Q,5209
|
@@ -70,62 +77,39 @@ slidge/db/alembic/versions/b33993e87db3_move_everything_to_persistent_db.py,sha2
|
|
70
77
|
slidge/db/alembic/versions/b64b1a793483_add_source_and_legacy_id_for_archived_.py,sha256=r2sOgR5HcfueJyc3cWNDRmlZzdHOSX6nl2gef54wDbk,1559
|
71
78
|
slidge/db/alembic/versions/c4a8ec35a0e8_per_room_user_nick.py,sha256=jjQmlRv6nqdm5q6LbwVpSUSkTBj1c76Hiq8e8q77q3g,933
|
72
79
|
slidge/db/alembic/versions/e91195719c2c_store_users_avatars_persistently.py,sha256=8Ga3VFgKrzMs_-B8OPtfP-0rey_MFaDg-QGtSbaft3o,640
|
73
|
-
slidge/db/avatar.py,sha256=FfRt2Vu11ZKD9F3x1_drawvUd-TDE3mp7SE3BZ9hOOg,6467
|
74
|
-
slidge/db/meta.py,sha256=v1Jf-npZ28QwdGpsLQWLBHEbEP3-jnPrygRg05tJ_Iw,1831
|
75
|
-
slidge/db/models.py,sha256=0NUJfa3lPKHhwV2zE4p7QVYCVs3yn9egFg2u9mssk5c,13964
|
76
|
-
slidge/db/store.py,sha256=KDQ0rp7h6FHgONTYBvucytE7n6Fhsgxgo0pgX18dsTA,46696
|
77
80
|
slidge/group/__init__.py,sha256=yFt7cHqeaKIMN6f9ZyhhspOcJJvBtLedGv-iICG7lto,258
|
78
|
-
slidge/group/archive.py,sha256=
|
81
|
+
slidge/group/archive.py,sha256=IPqklzo0UN3lPHckfsKW9c4nl3m_9XGY4u0eehrhe8k,5281
|
79
82
|
slidge/group/bookmarks.py,sha256=AvFL34bEX6n3OP1Np309T5hrLK9GnjkjdyLJ3uiLZyc,6616
|
80
|
-
slidge/group/participant.py,sha256=
|
83
|
+
slidge/group/participant.py,sha256=epxXqJ545ALkEYxziiobH149nlBeSZlxsNCYeI8LFhM,17357
|
81
84
|
slidge/group/room.py,sha256=kPy-5bWT8215I1MPJnCCPcaDfSRMiqXx6Fta9BRpLVk,46043
|
82
|
-
slidge/
|
83
|
-
slidge/migration.py,sha256=4BJmPIRB56_WIhRTqBFIIBXuvnhhBjjOMl4CE7jY6oc,1541
|
84
|
-
slidge/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
85
|
-
slidge/slixfix/__init__.py,sha256=A1481U6RCfcJUvKF_Lkek5VI5vKbI0cN12KgQ6rk8GE,2576
|
85
|
+
slidge/slixfix/__init__.py,sha256=epiEsPNTWGF7uEhbL-cJaUyvPCbku8ZGNj3hlL7ofvc,2544
|
86
86
|
slidge/slixfix/delivery_receipt.py,sha256=3bWdZH3-X3CZJXmnI_TpjkTUUK-EY4Ktm78lW0-40fc,1366
|
87
|
+
slidge/slixfix/roster.py,sha256=KvDjh9q7pqaZf69H93okfib13cc95uVZUJ6rzpqmDaU,1704
|
87
88
|
slidge/slixfix/link_preview/__init__.py,sha256=TDPTSEH5FQxgGpQpQIde-D72AHg-6YVWG-tOj4KpKmU,290
|
88
89
|
slidge/slixfix/link_preview/link_preview.py,sha256=9PgdfnoyVMHnXS0w5OFp0wz3ku96Ck-HtRXbVUlDi1U,448
|
89
90
|
slidge/slixfix/link_preview/stanza.py,sha256=YAXoNw2MD0a3nzvldGKlvSemjUMbUEG23regzmj4Ntc,2664
|
90
|
-
slidge/slixfix/roster.py,sha256=KvDjh9q7pqaZf69H93okfib13cc95uVZUJ6rzpqmDaU,1704
|
91
91
|
slidge/slixfix/xep_0077/__init__.py,sha256=0lY1YXdgAsfrfxI_Woxaf1etHCJXe35Xtntq_icF6nA,325
|
92
92
|
slidge/slixfix/xep_0077/register.py,sha256=6nwTfHNL7Z9-1wUhpAF743TNbjQLCMP7Rflkdad8d60,10431
|
93
93
|
slidge/slixfix/xep_0077/stanza.py,sha256=Lngly7F1ChCkNKn7yl1QmN838fO-KqkAhkazxzDsz80,2410
|
94
94
|
slidge/slixfix/xep_0100/__init__.py,sha256=AtEXDQOrEWodkN3fgKR0W3Ezsz_Zza6cgO5ZaZS-JOo,107
|
95
95
|
slidge/slixfix/xep_0100/gateway.py,sha256=Fhxs2sUPnVRPa1o7RXCncnbBO2gjeZx3pbItug-8OiA,4501
|
96
96
|
slidge/slixfix/xep_0100/stanza.py,sha256=7vCzej9VFQupsTpGGl0cJWuGNH4I6oVcckBu_-fE55c,232
|
97
|
-
slidge/slixfix/xep_0153/__init__.py,sha256=
|
98
|
-
slidge/slixfix/xep_0153/
|
99
|
-
slidge/slixfix/xep_0153/vcard_avatar.py,sha256=mzaReW5c1OaeL39CeGvuzIkh3j-Z5mc2joLqn5cNc5Q,658
|
100
|
-
slidge/slixfix/xep_0264/__init__.py,sha256=c6g_y-PAwQJZ4ZLWcwXc6Q5xRPeXTvvvJH4ZKQpkj3o,109
|
101
|
-
slidge/slixfix/xep_0264/stanza.py,sha256=YvkI9rsGztkc9yOZBjf5PNKReW8aeGdF6MnrsfDckYs,864
|
102
|
-
slidge/slixfix/xep_0264/thumbnail.py,sha256=6ukgPCWJTFUnew4USB6hNtEk_ZcpWcFAvHr2r0T5znw,456
|
97
|
+
slidge/slixfix/xep_0153/__init__.py,sha256=hsEldnLuzvcp0NqSscxPV7FJl-6GFP372vlDg1G3S3I,283
|
98
|
+
slidge/slixfix/xep_0153/vcard_avatar.py,sha256=py-qzj1jmmzsM4GCTKLRW7cAdAmSVjodp6q0r5B0RqQ,458
|
103
99
|
slidge/slixfix/xep_0292/__init__.py,sha256=_MvS9wGra6ig3P_dPAVlCPDJkiOFvUWGjaRsHj1woUg,98
|
104
100
|
slidge/slixfix/xep_0292/vcard4.py,sha256=jL-TOW3eG2QXLduSLNq03L8HoUNmvy8kTZI5ojvo6GE,358
|
105
|
-
slidge/slixfix/xep_0313/__init__.py,sha256=rpvXxN4Fi-ey4Ww39OEAXoiaeWs3XMqvzR64hA6j_x4,368
|
106
|
-
slidge/slixfix/xep_0313/mam.py,sha256=2USgMGgklnGXPcw_1F3482HxIyd41TLx0uit43_RthA,9211
|
107
|
-
slidge/slixfix/xep_0313/stanza.py,sha256=WriAx6XKiiyZTkoTw5RHcgu3ZYdkDd6hjQ0wHqDkXE0,10249
|
108
|
-
slidge/slixfix/xep_0317/__init__.py,sha256=KRMpj3n2TYTyXzlGHdGXzNbMEvbHxn7Qd1WxqRIkrhU,104
|
109
|
-
slidge/slixfix/xep_0317/hats.py,sha256=HAZ7y5DNehpdPVpNpgo1JxnG2GVhVSElLYdARiL9KJQ,290
|
110
|
-
slidge/slixfix/xep_0317/stanza.py,sha256=HYSJSUHqPNHmrpJsschb__qazfb2Jm3WUxLsrmPqC4I,659
|
111
101
|
slidge/slixfix/xep_0356_old/__init__.py,sha256=3jGWJX2m5gWgDCxcVqCsCCVPRTcfmU96yenwvAJtOKE,180
|
112
102
|
slidge/slixfix/xep_0356_old/privilege.py,sha256=kcJzFbzhOHtQMtzOJpvvwm1pghSpealWnqhC0zc8dGo,5338
|
113
103
|
slidge/slixfix/xep_0356_old/stanza.py,sha256=i7aqcaTg6PBhVwbHToLtlrwxBj7uO-M7VrYSyElyEKI,1229
|
114
|
-
slidge/slixfix/xep_0424/__init__.py,sha256=ngz0GBepiJs_cocaohkDRTiaB8mvaEwXoqQBv9Av9o8,284
|
115
|
-
slidge/slixfix/xep_0424/retraction.py,sha256=VmJQCj4umtjslnU1ydVOL6KquZnVvqgPTAyoE1KQKwE,2448
|
116
|
-
slidge/slixfix/xep_0424/stanza.py,sha256=mT8QzRX3YcyTqTSfaaWKxyhag1s1-iQy5QW9nH6cyU8,753
|
117
|
-
slidge/slixfix/xep_0490/__init__.py,sha256=Rhu_1h1P34LfIP_yr4JQ_PBHcuNBLDzLdJMnNmNJRrE,158
|
118
|
-
slidge/slixfix/xep_0490/mds.py,sha256=KaITeEzSWgpGyU7RP-iwipjSyCEdVMPiVIT5vHVK-RM,1527
|
119
|
-
slidge/slixfix/xep_0490/stanza.py,sha256=ztec_ipyhUFz_uWQYkS0Q6LlsNiSBBC5aZK-qSmhHXk,443
|
120
104
|
slidge/util/__init__.py,sha256=BELovoTMPcPPGz3D48esBr8A4BRRHXTvavfgnArBgEc,301
|
121
105
|
slidge/util/archive_msg.py,sha256=xXAR0BI5r3d6KKWjae9594izCOv6iI03z2WLuTecNw8,1724
|
122
106
|
slidge/util/conf.py,sha256=1j2OnOsCBar1tOObErhXR5RC3Vl3faliOZ1U8J3My58,6613
|
123
107
|
slidge/util/db.py,sha256=4LxZj8oBYgiSnyBUnF_ALjr0TblkfNQq_p28sCfkHMY,242
|
124
|
-
slidge/util/test.py,sha256=
|
108
|
+
slidge/util/test.py,sha256=l1VHBsw5Uzk2t7wtkfb9kWvtehcYhw1t_d567JAJFKA,14135
|
125
109
|
slidge/util/types.py,sha256=R_xfS5mRL0XUJIoDpnaAkZlTOoLPerduXBFftaVwIAI,5489
|
126
110
|
slidge/util/util.py,sha256=An4BRIHktZGXnu4kCwaKYaSye_PlyuxEm_4SC9YvPhc,9594
|
127
|
-
slidge-0.2.
|
128
|
-
slidge-0.2.
|
129
|
-
slidge-0.2.
|
130
|
-
slidge-0.2.
|
131
|
-
slidge-0.2.
|
111
|
+
slidge-0.2.3.post1.dist-info/METADATA,sha256=qv5adMikUh_9Eu-6rinlYgSMaCLYG1fF4YaQ1D1QJeg,44800
|
112
|
+
slidge-0.2.3.post1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
113
|
+
slidge-0.2.3.post1.dist-info/entry_points.txt,sha256=py3_x834fFJ2TEzPd18Wt2DnysdAfuVqJ5zzBrXbAZs,44
|
114
|
+
slidge-0.2.3.post1.dist-info/top_level.txt,sha256=2LRjDYHaGZ5ieCMF8xy58JIiabRMzX-MGMbCZwfE17c,7
|
115
|
+
slidge-0.2.3.post1.dist-info/RECORD,,
|
@@ -0,0 +1 @@
|
|
1
|
+
slidge
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# Slixmpp: The Slick XMPP Library
|
2
|
-
# Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
|
3
|
-
# This file is part of Slixmpp.
|
4
|
-
# See the file LICENSE for copying permission.
|
5
|
-
from slixmpp.xmlstream import ElementBase
|
6
|
-
|
7
|
-
|
8
|
-
class VCardTempUpdate(ElementBase):
|
9
|
-
name = "x"
|
10
|
-
namespace = "vcard-temp:x:update"
|
11
|
-
plugin_attrib = "vcard_temp_update"
|
12
|
-
interfaces = {"photo"}
|
13
|
-
sub_interfaces = interfaces
|
14
|
-
|
15
|
-
def set_photo(self, value):
|
16
|
-
if value is not None:
|
17
|
-
self._set_sub_text("photo", value, keep=True)
|
18
|
-
else:
|
19
|
-
self._del_sub("photo")
|
20
|
-
|
21
|
-
def get_photo(self):
|
22
|
-
photo = self.xml.find("{%s}photo" % self.namespace)
|
23
|
-
if photo is None:
|
24
|
-
return None
|
25
|
-
return photo.text
|
@@ -1,36 +0,0 @@
|
|
1
|
-
from typing import Optional
|
2
|
-
|
3
|
-
from slixmpp import register_stanza_plugin
|
4
|
-
from slixmpp.plugins.xep_0234.stanza import File
|
5
|
-
from slixmpp.xmlstream import ElementBase
|
6
|
-
|
7
|
-
NS = "urn:xmpp:thumbs:1"
|
8
|
-
|
9
|
-
|
10
|
-
class Thumbnail(ElementBase):
|
11
|
-
name = plugin_attrib = "thumbnail"
|
12
|
-
namespace = NS
|
13
|
-
interfaces = {"uri", "media-type", "width", "height"}
|
14
|
-
|
15
|
-
def get_width(self) -> float:
|
16
|
-
return _int_or_none(self._get_attr("width"))
|
17
|
-
|
18
|
-
def get_height(self) -> float:
|
19
|
-
return _int_or_none(self._get_attr("height"))
|
20
|
-
|
21
|
-
def set_width(self, v: int) -> None:
|
22
|
-
self._set_attr("width", str(v))
|
23
|
-
|
24
|
-
def set_height(self, v: int) -> None:
|
25
|
-
self._set_attr("height", str(v))
|
26
|
-
|
27
|
-
|
28
|
-
def _int_or_none(v) -> Optional[int]:
|
29
|
-
try:
|
30
|
-
return int(v)
|
31
|
-
except ValueError:
|
32
|
-
return None
|
33
|
-
|
34
|
-
|
35
|
-
def register_plugin():
|
36
|
-
register_stanza_plugin(File, Thumbnail)
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import logging
|
2
|
-
|
3
|
-
from slixmpp.plugins import BasePlugin
|
4
|
-
|
5
|
-
from . import stanza
|
6
|
-
|
7
|
-
log = logging.getLogger(__name__)
|
8
|
-
|
9
|
-
|
10
|
-
class XEP_0264(BasePlugin):
|
11
|
-
"""
|
12
|
-
XEP-0264: Jingle Content Thumbnails
|
13
|
-
|
14
|
-
Minimum needed for xep 0385 (Stateless inline media sharing)
|
15
|
-
"""
|
16
|
-
|
17
|
-
name = "xep_0264"
|
18
|
-
description = "XEP-0264: Jingle Content Thumbnails"
|
19
|
-
dependencies = {"xep_0234"}
|
20
|
-
stanza = stanza
|
21
|
-
|
22
|
-
def plugin_init(self):
|
23
|
-
stanza.register_plugin()
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# Slixmpp: The Slick XMPP Library
|
2
|
-
# Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
|
3
|
-
# This file is part of Slixmpp.
|
4
|
-
# See the file LICENSE for copying permission
|
5
|
-
from slixmpp.plugins.base import register_plugin
|
6
|
-
|
7
|
-
from .mam import XEP_0313
|
8
|
-
from .stanza import MAM, Metadata, Result
|
9
|
-
|
10
|
-
register_plugin(XEP_0313)
|
11
|
-
|
12
|
-
__all__ = ["XEP_0313", "Result", "MAM", "Metadata"]
|
slidge/slixfix/xep_0313/mam.py
DELETED
@@ -1,262 +0,0 @@
|
|
1
|
-
# Slixmpp: The Slick XMPP Library
|
2
|
-
# Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
|
3
|
-
# This file is part of Slixmpp.
|
4
|
-
# See the file LICENSE for copying permission
|
5
|
-
import logging
|
6
|
-
from asyncio import Future
|
7
|
-
from collections.abc import AsyncGenerator
|
8
|
-
from datetime import datetime
|
9
|
-
from typing import Any, Awaitable, Callable, Dict, Optional, Tuple
|
10
|
-
|
11
|
-
from slixmpp import JID
|
12
|
-
from slixmpp.plugins import BasePlugin
|
13
|
-
from slixmpp.plugins.xep_0004.stanza import Form
|
14
|
-
from slixmpp.stanza import Iq, Message
|
15
|
-
from slixmpp.xmlstream import register_stanza_plugin
|
16
|
-
from slixmpp.xmlstream.handler import Collector
|
17
|
-
from slixmpp.xmlstream.matcher import MatchXMLMask
|
18
|
-
|
19
|
-
from . import stanza
|
20
|
-
|
21
|
-
log = logging.getLogger(__name__)
|
22
|
-
|
23
|
-
|
24
|
-
class XEP_0313(BasePlugin):
|
25
|
-
"""
|
26
|
-
XEP-0313 Message Archive Management
|
27
|
-
"""
|
28
|
-
|
29
|
-
name = "xep_0313"
|
30
|
-
description = "XEP-0313: Message Archive Management"
|
31
|
-
dependencies = {"xep_0004", "xep_0030", "xep_0050", "xep_0059", "xep_0297"}
|
32
|
-
stanza = stanza
|
33
|
-
|
34
|
-
def plugin_init(self):
|
35
|
-
register_stanza_plugin(stanza.MAM, Form)
|
36
|
-
register_stanza_plugin(Iq, stanza.MAM)
|
37
|
-
register_stanza_plugin(Message, stanza.Result)
|
38
|
-
register_stanza_plugin(Iq, stanza.Fin)
|
39
|
-
register_stanza_plugin(stanza.Result, self.xmpp["xep_0297"].stanza.Forwarded)
|
40
|
-
register_stanza_plugin(stanza.MAM, self.xmpp["xep_0059"].stanza.Set)
|
41
|
-
register_stanza_plugin(stanza.Fin, self.xmpp["xep_0059"].stanza.Set)
|
42
|
-
register_stanza_plugin(Iq, stanza.Metadata)
|
43
|
-
register_stanza_plugin(stanza.Metadata, stanza.Start)
|
44
|
-
register_stanza_plugin(stanza.Metadata, stanza.End)
|
45
|
-
|
46
|
-
def retrieve(
|
47
|
-
self,
|
48
|
-
jid: Optional[JID] = None,
|
49
|
-
start: Optional[datetime] = None,
|
50
|
-
end: Optional[datetime] = None,
|
51
|
-
with_jid: Optional[JID] = None,
|
52
|
-
ifrom: Optional[JID] = None,
|
53
|
-
reverse: bool = False,
|
54
|
-
timeout: int = None,
|
55
|
-
callback: Callable[[Iq], None] = None,
|
56
|
-
iterator: bool = False,
|
57
|
-
rsm: Optional[Dict[str, Any]] = None,
|
58
|
-
) -> Awaitable:
|
59
|
-
"""
|
60
|
-
Send a MAM query and retrieve the results.
|
61
|
-
|
62
|
-
:param JID jid: Entity holding the MAM records
|
63
|
-
:param datetime start,end: MAM query temporal boundaries
|
64
|
-
:param JID with_jid: Filter results on this JID
|
65
|
-
:param JID ifrom: To change the from address of the query
|
66
|
-
:param bool reverse: Get the results in reverse order
|
67
|
-
:param int timeout: IQ timeout
|
68
|
-
:param func callback: Custom callback for handling results
|
69
|
-
:param bool iterator: Use RSM and iterate over a paginated query
|
70
|
-
:param dict rsm: RSM custom options
|
71
|
-
"""
|
72
|
-
iq, stanza_mask = self._pre_mam_retrieve(jid, start, end, with_jid, ifrom)
|
73
|
-
query_id = iq["id"]
|
74
|
-
amount = 10
|
75
|
-
if rsm:
|
76
|
-
for key, value in rsm.items():
|
77
|
-
iq["mam"]["rsm"][key] = str(value)
|
78
|
-
if key == "max":
|
79
|
-
amount = value
|
80
|
-
cb_data = {}
|
81
|
-
|
82
|
-
xml_mask = str(stanza_mask)
|
83
|
-
|
84
|
-
def pre_cb(query: Iq) -> None:
|
85
|
-
stanza_mask["mam_result"]["queryid"] = query["id"]
|
86
|
-
xml_mask = str(stanza_mask)
|
87
|
-
query["mam"]["queryid"] = query["id"]
|
88
|
-
collector = Collector("MAM_Results_%s" % query_id, MatchXMLMask(xml_mask))
|
89
|
-
self.xmpp.register_handler(collector)
|
90
|
-
cb_data["collector"] = collector
|
91
|
-
|
92
|
-
def post_cb(result: Iq) -> None:
|
93
|
-
results = cb_data["collector"].stop()
|
94
|
-
if result["type"] == "result":
|
95
|
-
result["mam"]["results"] = results
|
96
|
-
result["mam_fin"]["results"] = results
|
97
|
-
|
98
|
-
if iterator:
|
99
|
-
return self.xmpp["xep_0059"].iterate(
|
100
|
-
iq,
|
101
|
-
"mam",
|
102
|
-
"results",
|
103
|
-
amount=amount,
|
104
|
-
reverse=reverse,
|
105
|
-
recv_interface="mam_fin",
|
106
|
-
pre_cb=pre_cb,
|
107
|
-
post_cb=post_cb,
|
108
|
-
)
|
109
|
-
|
110
|
-
collector = Collector("MAM_Results_%s" % query_id, MatchXMLMask(xml_mask))
|
111
|
-
self.xmpp.register_handler(collector)
|
112
|
-
|
113
|
-
def wrapped_cb(iq: Iq) -> None:
|
114
|
-
results = collector.stop()
|
115
|
-
if iq["type"] == "result":
|
116
|
-
iq["mam"]["results"] = results
|
117
|
-
if callback:
|
118
|
-
callback(iq)
|
119
|
-
|
120
|
-
return iq.send(timeout=timeout, callback=wrapped_cb)
|
121
|
-
|
122
|
-
async def iterate(
|
123
|
-
self,
|
124
|
-
jid: Optional[JID] = None,
|
125
|
-
start: Optional[datetime] = None,
|
126
|
-
end: Optional[datetime] = None,
|
127
|
-
with_jid: Optional[JID] = None,
|
128
|
-
ifrom: Optional[JID] = None,
|
129
|
-
reverse: bool = False,
|
130
|
-
rsm: Optional[Dict[str, Any]] = None,
|
131
|
-
total: Optional[int] = None,
|
132
|
-
) -> AsyncGenerator:
|
133
|
-
"""
|
134
|
-
Iterate over each message of MAM query.
|
135
|
-
|
136
|
-
.. versionadded:: 1.8.0
|
137
|
-
|
138
|
-
:param jid: Entity holding the MAM records
|
139
|
-
:param start: MAM query start time
|
140
|
-
:param end: MAM query end time
|
141
|
-
:param with_jid: Filter results on this JID
|
142
|
-
:param ifrom: To change the from address of the query
|
143
|
-
:param reverse: Get the results in reverse order
|
144
|
-
:param rsm: RSM custom options
|
145
|
-
:param total: A number of messages received after which the query
|
146
|
-
should stop.
|
147
|
-
"""
|
148
|
-
iq, stanza_mask = self._pre_mam_retrieve(jid, start, end, with_jid, ifrom)
|
149
|
-
query_id = iq["id"]
|
150
|
-
amount = 10
|
151
|
-
|
152
|
-
if rsm:
|
153
|
-
for key, value in rsm.items():
|
154
|
-
iq["mam"]["rsm"][key] = str(value)
|
155
|
-
if key == "max":
|
156
|
-
amount = value
|
157
|
-
cb_data = {}
|
158
|
-
|
159
|
-
def pre_cb(query: Iq) -> None:
|
160
|
-
stanza_mask["mam_result"]["queryid"] = query["id"]
|
161
|
-
xml_mask = str(stanza_mask)
|
162
|
-
query["mam"]["queryid"] = query["id"]
|
163
|
-
collector = Collector("MAM_Results_%s" % query_id, MatchXMLMask(xml_mask))
|
164
|
-
self.xmpp.register_handler(collector)
|
165
|
-
cb_data["collector"] = collector
|
166
|
-
|
167
|
-
def post_cb(result: Iq) -> None:
|
168
|
-
results = cb_data["collector"].stop()
|
169
|
-
if result["type"] == "result":
|
170
|
-
result["mam"]["results"] = results
|
171
|
-
result["mam_fin"]["results"] = results
|
172
|
-
|
173
|
-
iterator = self.xmpp["xep_0059"].iterate(
|
174
|
-
iq,
|
175
|
-
"mam",
|
176
|
-
"results",
|
177
|
-
amount=amount,
|
178
|
-
reverse=reverse,
|
179
|
-
recv_interface="mam_fin",
|
180
|
-
pre_cb=pre_cb,
|
181
|
-
post_cb=post_cb,
|
182
|
-
)
|
183
|
-
recv_count = 0
|
184
|
-
|
185
|
-
async for page in iterator:
|
186
|
-
messages = [message for message in page["mam"]["results"]]
|
187
|
-
if reverse:
|
188
|
-
messages.reverse()
|
189
|
-
for message in messages:
|
190
|
-
yield message
|
191
|
-
recv_count += 1
|
192
|
-
if total is not None and recv_count >= total:
|
193
|
-
break
|
194
|
-
if total is not None and recv_count >= total:
|
195
|
-
break
|
196
|
-
|
197
|
-
def _pre_mam_retrieve(
|
198
|
-
self,
|
199
|
-
jid: Optional[JID] = None,
|
200
|
-
start: Optional[datetime] = None,
|
201
|
-
end: Optional[datetime] = None,
|
202
|
-
with_jid: Optional[JID] = None,
|
203
|
-
ifrom: Optional[JID] = None,
|
204
|
-
) -> Tuple[Iq, Message]:
|
205
|
-
"""Build the IQ and stanza mask for MAM results"""
|
206
|
-
iq = self.xmpp.make_iq_set(ito=jid, ifrom=ifrom)
|
207
|
-
query_id = iq["id"]
|
208
|
-
iq["mam"]["queryid"] = query_id
|
209
|
-
iq["mam"]["start"] = start
|
210
|
-
iq["mam"]["end"] = end
|
211
|
-
iq["mam"]["with"] = with_jid
|
212
|
-
|
213
|
-
stanza_mask = self.xmpp.Message()
|
214
|
-
|
215
|
-
auto_origin = stanza_mask.xml.find("{urn:xmpp:sid:0}origin-id")
|
216
|
-
if auto_origin is not None:
|
217
|
-
stanza_mask.xml.remove(auto_origin)
|
218
|
-
del stanza_mask["id"]
|
219
|
-
del stanza_mask["lang"]
|
220
|
-
stanza_mask["from"] = jid
|
221
|
-
stanza_mask["mam_result"]["queryid"] = query_id
|
222
|
-
|
223
|
-
return (iq, stanza_mask)
|
224
|
-
|
225
|
-
async def get_fields(self, jid: Optional[JID] = None, **iqkwargs) -> Form:
|
226
|
-
"""Get MAM query fields.
|
227
|
-
|
228
|
-
.. versionadded:: 1.8.0
|
229
|
-
|
230
|
-
:param jid: JID to retrieve the policy from.
|
231
|
-
:return: The Form of allowed options
|
232
|
-
"""
|
233
|
-
ifrom = iqkwargs.pop("ifrom", None)
|
234
|
-
iq = self.xmpp.make_iq_get(ito=jid, ifrom=ifrom)
|
235
|
-
iq.enable("mam")
|
236
|
-
result = await iq.send(**iqkwargs)
|
237
|
-
return result["mam"]["form"]
|
238
|
-
|
239
|
-
async def get_configuration_commands(
|
240
|
-
self, jid: Optional[JID], **discokwargs
|
241
|
-
) -> Future:
|
242
|
-
"""Get the list of MAM advanced configuration commands.
|
243
|
-
|
244
|
-
.. versionchanged:: 1.8.0
|
245
|
-
|
246
|
-
:param jid: JID to get the commands from.
|
247
|
-
"""
|
248
|
-
if jid is None:
|
249
|
-
jid = self.xmpp.boundjid.bare
|
250
|
-
return await self.xmpp["xep_0030"].get_items(
|
251
|
-
jid=jid, node="urn:xmpp:mam#configure", **discokwargs
|
252
|
-
)
|
253
|
-
|
254
|
-
def get_archive_metadata(self, jid: Optional[JID] = None, **iqkwargs) -> Future:
|
255
|
-
"""Get the archive metadata from a JID.
|
256
|
-
|
257
|
-
:param jid: JID to get the metadata from.
|
258
|
-
"""
|
259
|
-
ifrom = iqkwargs.pop("ifrom", None)
|
260
|
-
iq = self.xmpp.make_iq_get(ito=jid, ifrom=ifrom)
|
261
|
-
iq.enable("mam_metadata")
|
262
|
-
return iq.send(**iqkwargs)
|