slidge 0.2.1__py3-none-any.whl → 0.2.3.post1__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- slidge/__version__.py +1 -1
- slidge/command/base.py +1 -1
- slidge/command/chat_command.py +5 -2
- slidge/command/register.py +2 -4
- slidge/command/user.py +1 -1
- slidge/contact/contact.py +1 -1
- slidge/core/dispatcher/muc/admin.py +3 -4
- slidge/core/dispatcher/presence.py +3 -3
- slidge/core/gateway.py +3 -0
- slidge/core/mixins/attachment.py +13 -2
- slidge/core/mixins/avatar.py +6 -0
- slidge/core/mixins/message.py +13 -2
- slidge/db/models.py +4 -0
- 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.1.dist-info → slidge-0.2.3.post1.dist-info}/RECORD +38 -54
- {slidge-0.2.1.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.1.dist-info/LICENSE +0 -661
- slidge-0.2.1.dist-info/METADATA +0 -116
- slidge-0.2.1.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
|
-
slidge/command/base.py,sha256=
|
10
|
+
slidge/command/base.py,sha256=S-4WnxDuGE3sQTca5L6DjHVBsHqpNuf6zvXffYoP46c,13159
|
8
11
|
slidge/command/categories.py,sha256=vF0KGDV9sEn8TNkcMoDRw-u3gEyNHSXghOU2JRHQtKs,351
|
9
|
-
slidge/command/chat_command.py,sha256=
|
10
|
-
slidge/command/register.py,sha256=
|
11
|
-
slidge/command/user.py,sha256=
|
12
|
+
slidge/command/chat_command.py,sha256=z-4qp03rK7kCh3_kEozDViwkDg_hVjHvRCiYYJxedBQ,11153
|
13
|
+
slidge/command/register.py,sha256=BduDI31Kx8CbWWEdjybimTA5Wcfhn-Jkt8sSPsySCpo,6724
|
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=dVmJw8vv1RhjOSMofBGCW5K5ZnN7QWBbc1bzv6qsuJ8,36390
|
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=HL9pv0y2YQzdn4bkewhJmWEctOPleJ4pu8EyUzm3Fzc,13859
|
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)
|