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.
Files changed (40) hide show
  1. slidge/__version__.py +1 -1
  2. slidge/command/register.py +1 -3
  3. slidge/contact/contact.py +1 -1
  4. slidge/core/dispatcher/muc/admin.py +3 -4
  5. slidge/core/dispatcher/presence.py +3 -3
  6. slidge/core/mixins/attachment.py +1 -1
  7. slidge/core/mixins/avatar.py +6 -0
  8. slidge/core/mixins/message.py +13 -2
  9. slidge/db/store.py +9 -3
  10. slidge/group/archive.py +3 -3
  11. slidge/group/participant.py +11 -5
  12. slidge/main.py +1 -1
  13. slidge/slixfix/__init__.py +5 -16
  14. slidge/slixfix/xep_0153/__init__.py +0 -1
  15. slidge/slixfix/xep_0153/vcard_avatar.py +1 -10
  16. slidge/util/test.py +9 -2
  17. slidge-0.2.3.post1.dist-info/METADATA +793 -0
  18. {slidge-0.2.2.dist-info → slidge-0.2.3.post1.dist-info}/RECORD +35 -51
  19. {slidge-0.2.2.dist-info → slidge-0.2.3.post1.dist-info}/WHEEL +2 -1
  20. slidge-0.2.3.post1.dist-info/entry_points.txt +2 -0
  21. slidge-0.2.3.post1.dist-info/top_level.txt +1 -0
  22. slidge/slixfix/xep_0153/stanza.py +0 -25
  23. slidge/slixfix/xep_0264/__init__.py +0 -5
  24. slidge/slixfix/xep_0264/stanza.py +0 -36
  25. slidge/slixfix/xep_0264/thumbnail.py +0 -23
  26. slidge/slixfix/xep_0313/__init__.py +0 -12
  27. slidge/slixfix/xep_0313/mam.py +0 -262
  28. slidge/slixfix/xep_0313/stanza.py +0 -359
  29. slidge/slixfix/xep_0317/__init__.py +0 -5
  30. slidge/slixfix/xep_0317/hats.py +0 -17
  31. slidge/slixfix/xep_0317/stanza.py +0 -28
  32. slidge/slixfix/xep_0424/__init__.py +0 -9
  33. slidge/slixfix/xep_0424/retraction.py +0 -77
  34. slidge/slixfix/xep_0424/stanza.py +0 -28
  35. slidge/slixfix/xep_0490/__init__.py +0 -8
  36. slidge/slixfix/xep_0490/mds.py +0 -47
  37. slidge/slixfix/xep_0490/stanza.py +0 -17
  38. slidge-0.2.2.dist-info/LICENSE +0 -661
  39. slidge-0.2.2.dist-info/METADATA +0 -116
  40. 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=7B4XHb2FWMm2Pq-Bo548FLUn87ezWnj1aoWxA4jTkZs,164
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=Zlh5PufPE8EeHLNrFgn3adSPsq-erMpW8uOVYRqFOy8,6756
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=fFWnjgf6HKi782htDyDNS_YVx_baHT24oqjBIruuRRQ,23109
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=s21V2LEqc0e_DIpipEhhQdpae762lW1lVqj4wjFhX8M,3364
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=LLZ_BFJfYIFtmzX4N2rhBARppyHz5AMLGkspMixkxmg,20128
39
- slidge/core/mixins/avatar.py,sha256=kGIIZzLSNuxF9bIvt5Bv03_uT_pU5QV1kS7cRu6-GUA,7874
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=z_uyWkQXXya4yjpPzFmbyTQMIBM1SpUJfcIuysC8NFY,7532
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=xGPkdSk8-BT6t6lNVo1FEwiFVAttoxCma8Tsyk5r8Kg,5279
81
+ slidge/group/archive.py,sha256=IPqklzo0UN3lPHckfsKW9c4nl3m_9XGY4u0eehrhe8k,5281
79
82
  slidge/group/bookmarks.py,sha256=AvFL34bEX6n3OP1Np309T5hrLK9GnjkjdyLJ3uiLZyc,6616
80
- slidge/group/participant.py,sha256=Wtq03Ix55AxlK4pvYVIalLwmKklJiIAsZdeLADJNJgU,17138
83
+ slidge/group/participant.py,sha256=epxXqJ545ALkEYxziiobH149nlBeSZlxsNCYeI8LFhM,17357
81
84
  slidge/group/room.py,sha256=kPy-5bWT8215I1MPJnCCPcaDfSRMiqXx6Fta9BRpLVk,46043
82
- slidge/main.py,sha256=30cxsolnw-CjCp94jhSjKotCem9rZHCQBpGMP5Ttoos,6237
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=wZCTLaVsXQn_wYEHA8YXdGCsspvj2rvq92iyi16W0xA,319
98
- slidge/slixfix/xep_0153/stanza.py,sha256=qhVfxlJEKuYDuWnd_I_VT4TtJbpX2opN6kG8oxYrc3o,735
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=xnGXK0wvua49ncQm4linIfH24Ux6oCkm5A71k2V80zI,14007
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.2.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
128
- slidge-0.2.2.dist-info/METADATA,sha256=RtbebnKhLTIHGQxNMCKlDIL0xGE37uiDZoAswMjRA6k,5003
129
- slidge-0.2.2.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
130
- slidge-0.2.2.dist-info/entry_points.txt,sha256=btz6mbzx1X6fjFWAS_Bo5qNi8PtxUsDgunt-6r4JDHw,43
131
- slidge-0.2.2.dist-info/RECORD,,
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,,
@@ -1,4 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.5.2
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ slidge = slidge.main:main
@@ -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,5 +0,0 @@
1
- from slixmpp.plugins.base import register_plugin
2
-
3
- from .thumbnail import XEP_0264
4
-
5
- register_plugin(XEP_0264)
@@ -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"]
@@ -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)