slidge 0.2.2__py3-none-any.whl → 0.2.4__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) 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/message/message.py +4 -1
  5. slidge/core/dispatcher/muc/admin.py +3 -4
  6. slidge/core/dispatcher/presence.py +3 -3
  7. slidge/core/gateway.py +2 -0
  8. slidge/core/mixins/attachment.py +1 -1
  9. slidge/core/mixins/avatar.py +6 -0
  10. slidge/core/mixins/message.py +13 -2
  11. slidge/core/mixins/recipient.py +2 -2
  12. slidge/db/store.py +9 -3
  13. slidge/group/archive.py +3 -3
  14. slidge/group/participant.py +11 -5
  15. slidge/group/room.py +21 -1
  16. slidge/main.py +1 -1
  17. slidge/slixfix/__init__.py +69 -13
  18. slidge/slixfix/xep_0153/__init__.py +0 -1
  19. slidge/slixfix/xep_0153/vcard_avatar.py +1 -10
  20. slidge/slixfix/xep_0492/__init__.py +8 -0
  21. slidge/slixfix/xep_0492/notify.py +16 -0
  22. slidge/slixfix/xep_0492/stanza.py +102 -0
  23. slidge/util/test.py +9 -2
  24. slidge-0.2.4.dist-info/METADATA +793 -0
  25. {slidge-0.2.2.dist-info → slidge-0.2.4.dist-info}/RECORD +41 -54
  26. {slidge-0.2.2.dist-info → slidge-0.2.4.dist-info}/WHEEL +2 -1
  27. slidge-0.2.4.dist-info/entry_points.txt +2 -0
  28. slidge-0.2.4.dist-info/top_level.txt +1 -0
  29. slidge/slixfix/xep_0153/stanza.py +0 -25
  30. slidge/slixfix/xep_0264/__init__.py +0 -5
  31. slidge/slixfix/xep_0264/stanza.py +0 -36
  32. slidge/slixfix/xep_0264/thumbnail.py +0 -23
  33. slidge/slixfix/xep_0313/__init__.py +0 -12
  34. slidge/slixfix/xep_0313/mam.py +0 -262
  35. slidge/slixfix/xep_0313/stanza.py +0 -359
  36. slidge/slixfix/xep_0317/__init__.py +0 -5
  37. slidge/slixfix/xep_0317/hats.py +0 -17
  38. slidge/slixfix/xep_0317/stanza.py +0 -28
  39. slidge/slixfix/xep_0424/__init__.py +0 -9
  40. slidge/slixfix/xep_0424/retraction.py +0 -77
  41. slidge/slixfix/xep_0424/stanza.py +0 -28
  42. slidge/slixfix/xep_0490/__init__.py +0 -8
  43. slidge/slixfix/xep_0490/mds.py +0 -47
  44. slidge/slixfix/xep_0490/stanza.py +0 -17
  45. slidge-0.2.2.dist-info/LICENSE +0 -661
  46. slidge-0.2.2.dist-info/METADATA +0 -116
  47. 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=ieOsYgM0aVfIKxAjpsbCrB7YTVXvXet9-wS_3Z87ito,165
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=Rid4Zc_IIV-3lMiiBirqiezkxC_Ed1HMlb9HLyxlnJc,36594
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
- slidge/core/dispatcher/message/message.py,sha256=HwauW2kGionLyDWG01OSa9a14gYzoovJuJvGbfB4nt4,15296
35
+ slidge/core/dispatcher/message/message.py,sha256=07h7OBbIh3OtSbi7DNwv5ANRTzWbwS9ICMHjS_6KpEM,15360
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
- 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
53
+ slidge/core/mixins/recipient.py,sha256=b0uFnpym-hOFgYxGjXT1xQcZ4YRbDSBftPcNWLzSwEI,1336
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,42 @@ 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
81
- 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
83
+ slidge/group/participant.py,sha256=epxXqJ545ALkEYxziiobH149nlBeSZlxsNCYeI8LFhM,17357
84
+ slidge/group/room.py,sha256=aJ-VIYACuEuoyKDsBFxsUZFoVpd265i0mzTOOHCNTPg,46849
85
+ slidge/slixfix/__init__.py,sha256=aEXtmxMgxQWsUoDV5NSxZKwb-Hml5XeR2FMJlnaDUng,4324
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
104
+ slidge/slixfix/xep_0492/__init__.py,sha256=kjWVeX3SG_2ohHx0fuMh1gmM2G57Bl6SRo7Mfv6sglA,161
105
+ slidge/slixfix/xep_0492/notify.py,sha256=8EPSdU3rTzWkHNm8oFr0tK2PmMJ6hBAIr88GoOmHTuQ,340
106
+ slidge/slixfix/xep_0492/stanza.py,sha256=gL0ixpV07Q9eqTXIOjdLVPtim45izuwaLk0iCoZ8e7c,2649
120
107
  slidge/util/__init__.py,sha256=BELovoTMPcPPGz3D48esBr8A4BRRHXTvavfgnArBgEc,301
121
108
  slidge/util/archive_msg.py,sha256=xXAR0BI5r3d6KKWjae9594izCOv6iI03z2WLuTecNw8,1724
122
109
  slidge/util/conf.py,sha256=1j2OnOsCBar1tOObErhXR5RC3Vl3faliOZ1U8J3My58,6613
123
110
  slidge/util/db.py,sha256=4LxZj8oBYgiSnyBUnF_ALjr0TblkfNQq_p28sCfkHMY,242
124
- slidge/util/test.py,sha256=xnGXK0wvua49ncQm4linIfH24Ux6oCkm5A71k2V80zI,14007
111
+ slidge/util/test.py,sha256=l1VHBsw5Uzk2t7wtkfb9kWvtehcYhw1t_d567JAJFKA,14135
125
112
  slidge/util/types.py,sha256=R_xfS5mRL0XUJIoDpnaAkZlTOoLPerduXBFftaVwIAI,5489
126
113
  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,,
114
+ slidge-0.2.4.dist-info/METADATA,sha256=pMPAZlzk25loszDWjC73w2dvufxfN4f9NxTxxQ7KcNA,44799
115
+ slidge-0.2.4.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
116
+ slidge-0.2.4.dist-info/entry_points.txt,sha256=py3_x834fFJ2TEzPd18Wt2DnysdAfuVqJ5zzBrXbAZs,44
117
+ slidge-0.2.4.dist-info/top_level.txt,sha256=2LRjDYHaGZ5ieCMF8xy58JIiabRMzX-MGMbCZwfE17c,7
118
+ slidge-0.2.4.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)