slidge 0.3.0a0__tar.gz → 0.3.0a1__tar.gz

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 (209) hide show
  1. {slidge-0.3.0a0 → slidge-0.3.0a1}/.woodpecker/package.yaml +5 -1
  2. {slidge-0.3.0a0 → slidge-0.3.0a1}/PKG-INFO +1 -1
  3. slidge-0.3.0a1/slidge/db/alembic/versions/4dbd23a3f868_new_avatar_store.py +105 -0
  4. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge.egg-info/PKG-INFO +1 -1
  5. slidge-0.3.0a0/slidge/db/alembic/versions/4dbd23a3f868_new_avatar_store.py +0 -56
  6. {slidge-0.3.0a0 → slidge-0.3.0a1}/.gitignore +0 -0
  7. {slidge-0.3.0a0 → slidge-0.3.0a1}/.pre-commit-config.yaml +0 -0
  8. {slidge-0.3.0a0 → slidge-0.3.0a1}/.woodpecker/container-ci.yaml +0 -0
  9. {slidge-0.3.0a0 → slidge-0.3.0a1}/.woodpecker/docs.yaml +0 -0
  10. {slidge-0.3.0a0 → slidge-0.3.0a1}/.woodpecker/test.yaml +0 -0
  11. {slidge-0.3.0a0 → slidge-0.3.0a1}/Dockerfile +0 -0
  12. {slidge-0.3.0a0 → slidge-0.3.0a1}/LICENSE +0 -0
  13. {slidge-0.3.0a0 → slidge-0.3.0a1}/README.md +0 -0
  14. {slidge-0.3.0a0 → slidge-0.3.0a1}/commitlint.config.js +0 -0
  15. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/assets/5x5.png +0 -0
  16. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/assets/slidge-color-small.png +0 -0
  17. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/assets/slidge-color.png +0 -0
  18. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/assets/slidge-mono-black.png +0 -0
  19. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/assets/slidge-mono-white.png +0 -0
  20. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/assets/slidge.svg +0 -0
  21. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/confs/movim.env +0 -0
  22. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/confs/nginx.conf +0 -0
  23. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/confs/slidge-dev.ini +0 -0
  24. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/confs/slidge-example.ini +0 -0
  25. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/hot-reload.sh +0 -0
  26. {slidge-0.3.0a0 → slidge-0.3.0a1}/dev/prettify_tests.py +0 -0
  27. {slidge-0.3.0a0 → slidge-0.3.0a1}/doap.xml +0 -0
  28. {slidge-0.3.0a0 → slidge-0.3.0a1}/docker-compose.yml +0 -0
  29. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/Makefile +0 -0
  30. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/attachments.rst +0 -0
  31. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/component.rst +0 -0
  32. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/config/index.rst +0 -0
  33. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/daemon.rst +0 -0
  34. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/examples/ejabberd.yaml +0 -0
  35. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/examples/index.rst +0 -0
  36. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/examples/prosody.cfg.lua +0 -0
  37. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/index.rst +0 -0
  38. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/install.rst +0 -0
  39. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/note.rst +0 -0
  40. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/admin/privilege.rst +0 -0
  41. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/codeberg.svg +0 -0
  42. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/conf.py +0 -0
  43. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/dev/contributing.rst +0 -0
  44. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/dev/design.rst +0 -0
  45. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/dev/howto.rst +0 -0
  46. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/dev/index.rst +0 -0
  47. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/dev/tutorial.rst +0 -0
  48. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/glossary.rst +0 -0
  49. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/index.rst +0 -0
  50. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/user/commands.rst +0 -0
  51. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/user/contacts.rst +0 -0
  52. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/user/foxyproxy.png +0 -0
  53. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/user/gajim.png +0 -0
  54. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/user/index.rst +0 -0
  55. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/user/low_profile.rst +0 -0
  56. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/user/movim1.png +0 -0
  57. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/user/movim2.png +0 -0
  58. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/user/note.rst +0 -0
  59. {slidge-0.3.0a0 → slidge-0.3.0a1}/docs/source/user/register.rst +0 -0
  60. {slidge-0.3.0a0 → slidge-0.3.0a1}/pyproject.toml +0 -0
  61. {slidge-0.3.0a0 → slidge-0.3.0a1}/setup.cfg +0 -0
  62. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/__init__.py +0 -0
  63. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/__main__.py +0 -0
  64. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/command/__init__.py +0 -0
  65. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/command/adhoc.py +0 -0
  66. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/command/admin.py +0 -0
  67. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/command/base.py +0 -0
  68. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/command/categories.py +0 -0
  69. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/command/chat_command.py +0 -0
  70. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/command/register.py +0 -0
  71. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/command/user.py +0 -0
  72. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/contact/__init__.py +0 -0
  73. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/contact/contact.py +0 -0
  74. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/contact/roster.py +0 -0
  75. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/__init__.py +0 -0
  76. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/config.py +0 -0
  77. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/__init__.py +0 -0
  78. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/caps.py +0 -0
  79. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/disco.py +0 -0
  80. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/message/__init__.py +0 -0
  81. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/message/chat_state.py +0 -0
  82. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/message/marker.py +0 -0
  83. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/message/message.py +0 -0
  84. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/muc/__init__.py +0 -0
  85. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/muc/admin.py +0 -0
  86. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/muc/mam.py +0 -0
  87. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/muc/misc.py +0 -0
  88. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/muc/owner.py +0 -0
  89. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/muc/ping.py +0 -0
  90. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/presence.py +0 -0
  91. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/registration.py +0 -0
  92. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/search.py +0 -0
  93. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/session_dispatcher.py +0 -0
  94. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/util.py +0 -0
  95. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/dispatcher/vcard.py +0 -0
  96. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/gateway.py +0 -0
  97. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/__init__.py +0 -0
  98. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/attachment.py +0 -0
  99. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/avatar.py +0 -0
  100. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/base.py +0 -0
  101. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/db.py +0 -0
  102. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/disco.py +0 -0
  103. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/message.py +0 -0
  104. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/message_maker.py +0 -0
  105. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/message_text.py +0 -0
  106. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/presence.py +0 -0
  107. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/mixins/recipient.py +0 -0
  108. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/pubsub.py +0 -0
  109. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/core/session.py +0 -0
  110. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/__init__.py +0 -0
  111. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/__init__.py +0 -0
  112. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/env.py +0 -0
  113. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/script.py.mako +0 -0
  114. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/0337c90c0b96_unify_legacy_xmpp_id_mappings.py +0 -0
  115. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/04cf35e3cf85_add_participant_nickname_no_illegal.py +0 -0
  116. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/09f27f098baa_add_missing_attributes_in_room.py +0 -0
  117. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/15b0bd83407a_remove_bogus_unique_constraints_on_room_.py +0 -0
  118. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/2461390c0af2_store_contacts_caps_verstring_in_db.py +0 -0
  119. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/29f5280c61aa_store_subject_setter_in_room.py +0 -0
  120. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/2b1f45ab7379_store_room_subject_setter_by_nickname.py +0 -0
  121. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/3071e0fa69d4_add_contact_client_type.py +0 -0
  122. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/45c24cc73c91_add_bob.py +0 -0
  123. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/54ce3cde350c_use_hash_for_avatar_filenames.py +0 -0
  124. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/58b98dacf819_refactor.py +0 -0
  125. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/5bd48bfdffa2_lift_room_legacy_id_constraint.py +0 -0
  126. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/75a62b74b239_ditch_hats_table.py +0 -0
  127. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/82a4af84b679_add_muc_history_filled.py +0 -0
  128. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/8b993243a536_add_vcard_content_to_contact_table.py +0 -0
  129. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/8d2ced764698_rely_on_db_to_store_contacts_rooms_and_.py +0 -0
  130. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/aa9d82a7f6ef_db_creation.py +0 -0
  131. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/abba1ae0edb3_store_avatar_legacy_id_in_the_contact_.py +0 -0
  132. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/b33993e87db3_move_everything_to_persistent_db.py +0 -0
  133. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/b64b1a793483_add_source_and_legacy_id_for_archived_.py +0 -0
  134. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/c4a8ec35a0e8_per_room_user_nick.py +0 -0
  135. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/alembic/versions/e91195719c2c_store_users_avatars_persistently.py +0 -0
  136. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/avatar.py +0 -0
  137. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/meta.py +0 -0
  138. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/models.py +0 -0
  139. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/db/store.py +0 -0
  140. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/group/__init__.py +0 -0
  141. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/group/archive.py +0 -0
  142. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/group/bookmarks.py +0 -0
  143. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/group/participant.py +0 -0
  144. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/group/room.py +0 -0
  145. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/main.py +0 -0
  146. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/migration.py +0 -0
  147. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/py.typed +0 -0
  148. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/__init__.py +0 -0
  149. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/delivery_receipt.py +0 -0
  150. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/link_preview/__init__.py +0 -0
  151. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/link_preview/link_preview.py +0 -0
  152. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/link_preview/stanza.py +0 -0
  153. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/roster.py +0 -0
  154. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/xep_0077/__init__.py +0 -0
  155. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/xep_0077/register.py +0 -0
  156. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/xep_0077/stanza.py +0 -0
  157. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/xep_0100/__init__.py +0 -0
  158. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/xep_0100/gateway.py +0 -0
  159. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/xep_0100/stanza.py +0 -0
  160. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/xep_0153/__init__.py +0 -0
  161. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/xep_0153/vcard_avatar.py +0 -0
  162. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/xep_0292/__init__.py +0 -0
  163. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/slixfix/xep_0292/vcard4.py +0 -0
  164. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/util/__init__.py +0 -0
  165. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/util/archive_msg.py +0 -0
  166. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/util/conf.py +0 -0
  167. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/util/jid_escaping.py +0 -0
  168. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/util/lock.py +0 -0
  169. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/util/test.py +0 -0
  170. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/util/types.py +0 -0
  171. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge/util/util.py +0 -0
  172. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge.egg-info/SOURCES.txt +0 -0
  173. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge.egg-info/dependency_links.txt +0 -0
  174. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge.egg-info/entry_points.txt +0 -0
  175. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge.egg-info/requires.txt +0 -0
  176. {slidge-0.3.0a0 → slidge-0.3.0a1}/slidge.egg-info/top_level.txt +0 -0
  177. {slidge-0.3.0a0 → slidge-0.3.0a1}/superduper/__init__.py +0 -0
  178. {slidge-0.3.0a0 → slidge-0.3.0a1}/superduper/__main__.py +0 -0
  179. {slidge-0.3.0a0 → slidge-0.3.0a1}/superduper/contact.py +0 -0
  180. {slidge-0.3.0a0 → slidge-0.3.0a1}/superduper/gateway.py +0 -0
  181. {slidge-0.3.0a0 → slidge-0.3.0a1}/superduper/group.py +0 -0
  182. {slidge-0.3.0a0 → slidge-0.3.0a1}/superduper/legacy_client.py +0 -0
  183. {slidge-0.3.0a0 → slidge-0.3.0a1}/superduper/session.py +0 -0
  184. {slidge-0.3.0a0 → slidge-0.3.0a1}/superduper/util.py +0 -0
  185. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/conftest.py +0 -0
  186. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_adhoc/test_access.py +0 -0
  187. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_adhoc/test_confirmation.py +0 -0
  188. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_adhoc/test_form.py +0 -0
  189. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_adhoc/test_reported.py +0 -0
  190. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_attachment.py +0 -0
  191. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_avatar.py +0 -0
  192. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_backfill.py +0 -0
  193. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_chat_commands.py +0 -0
  194. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_config.py +0 -0
  195. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_db/test_store.py +0 -0
  196. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_db/test_user.py +0 -0
  197. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_feature_restriction.py +0 -0
  198. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_mam_archivable.py +0 -0
  199. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_mds.py +0 -0
  200. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_muc.py +0 -0
  201. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_resourceprep.py +0 -0
  202. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_session.py +0 -0
  203. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_session_2.py +0 -0
  204. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_set_name_before_fill.py +0 -0
  205. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_shakespeare.py +0 -0
  206. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_stanza_link_preview.py +0 -0
  207. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_util.py +0 -0
  208. {slidge-0.3.0a0 → slidge-0.3.0a1}/tests/test_vcard.py +0 -0
  209. {slidge-0.3.0a0 → slidge-0.3.0a1}/uv.lock +0 -0
@@ -28,8 +28,12 @@ steps:
28
28
  environment:
29
29
  CODEBERG_TOKEN:
30
30
  from_secret: CODEBERG_TOKEN
31
+ # Here we don't want the whole workflow to fail if the file already exists.
32
+ # This happens when we push commits and a new tag at the same time, resulting
33
+ # in two packages with the same version identifier being produced by the "tag"
34
+ # and "push" workflow.
31
35
  commands:
32
- - uv publish --index codeberg --token $CODEBERG_TOKEN
36
+ - uv publish --index codeberg --token $CODEBERG_TOKEN || true
33
37
 
34
38
  pypi:
35
39
  when:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: slidge
3
- Version: 0.3.0a0
3
+ Version: 0.3.0a1
4
4
  Summary: XMPP bridging framework
5
5
  Author-email: Nicolas Cedilnik <nicoco@nicoco.fr>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -0,0 +1,105 @@
1
+ """New avatar store
2
+
3
+ Revision ID: 4dbd23a3f868
4
+ Revises: 04cf35e3cf85
5
+ Create Date: 2025-04-14 21:57:49.030430
6
+
7
+ """
8
+
9
+ from typing import Sequence, Union
10
+
11
+ import sqlalchemy as sa
12
+ from alembic import op
13
+
14
+ # revision identifiers, used by Alembic.
15
+ revision: str = "4dbd23a3f868"
16
+ down_revision: Union[str, None] = "04cf35e3cf85"
17
+ branch_labels: Union[str, Sequence[str], None] = None
18
+ depends_on: Union[str, Sequence[str], None] = None
19
+
20
+
21
+ def upgrade() -> None:
22
+ # a bug in slidge v0.3.0alpha0 lead to a crash during this migration which ended up with
23
+ # this temporary tables in here
24
+ op.execute("DROP TABLE IF EXISTS _alembic_tmp_avatar;")
25
+ op.execute("DROP TABLE IF EXISTS _alembic_tmp_contact;")
26
+
27
+ with op.batch_alter_table("avatar", schema=None) as batch_op:
28
+ batch_op.add_column(sa.Column("legacy_id", sa.String(), nullable=True))
29
+ batch_op.create_unique_constraint("avatar_unique_legacy_id", ["legacy_id"])
30
+
31
+ batch_op.execute("""
32
+ UPDATE avatar
33
+ SET legacy_id = contact.avatar_legacy_id
34
+ FROM contact
35
+ WHERE avatar.id = contact.avatar_id
36
+ """)
37
+
38
+ batch_op.execute("""
39
+ UPDATE avatar
40
+ SET legacy_id = room.avatar_legacy_id
41
+ FROM room
42
+ WHERE avatar.id = room.avatar_id
43
+ """)
44
+
45
+ # the following 4 OPs have been added manually because somewhere before, we messed up
46
+ # and the client_type server side default value was pc (no quote) instead of "pc"
47
+ op.execute(
48
+ """
49
+ CREATE TABLE contact_new (
50
+ id INTEGER NOT NULL,
51
+ user_account_id INTEGER NOT NULL,
52
+ legacy_id VARCHAR NOT NULL,
53
+ jid TEXT NOT NULL,
54
+ avatar_id INTEGER,
55
+ nick VARCHAR,
56
+ cached_presence BOOLEAN NOT NULL,
57
+ last_seen DATETIME,
58
+ ptype VARCHAR,
59
+ pstatus VARCHAR,
60
+ pshow VARCHAR,
61
+ is_friend BOOLEAN NOT NULL,
62
+ added_to_roster BOOLEAN NOT NULL,
63
+ extra_attributes VARCHAR,
64
+ updated BOOLEAN NOT NULL,
65
+ caps_ver VARCHAR,
66
+ vcard VARCHAR,
67
+ vcard_fetched BOOLEAN DEFAULT 1 NOT NULL,
68
+ avatar_legacy_id VARCHAR,
69
+ client_type VARCHAR(8) DEFAULT 'pc' NOT NULL,
70
+ PRIMARY KEY (id),
71
+ FOREIGN KEY(user_account_id) REFERENCES user_account (id),
72
+ FOREIGN KEY(avatar_id) REFERENCES avatar (id),
73
+ UNIQUE (user_account_id, legacy_id) CONSTRAINT uq_user_account_legacy_id,
74
+ UNIQUE (user_account_id, jid) CONSTRAINT uq_user_account_jid
75
+ );
76
+ """
77
+ )
78
+
79
+ op.execute(
80
+ """
81
+ INSERT INTO contact_new (id, user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, is_friend, added_to_roster, extra_attributes, updated, caps_ver, vcard, vcard_fetched, avatar_legacy_id, client_type)
82
+ SELECT id, user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, is_friend, added_to_roster, extra_attributes, updated, caps_ver, vcard, vcard_fetched, avatar_legacy_id, client_type
83
+ FROM contact;
84
+ """
85
+ )
86
+ op.execute("DROP TABLE contact;")
87
+ op.execute("ALTER TABLE contact_new RENAME TO contact;")
88
+
89
+ with op.batch_alter_table("contact", schema=None) as batch_op:
90
+ batch_op.drop_column("avatar_legacy_id")
91
+
92
+ with op.batch_alter_table("room", schema=None) as batch_op:
93
+ batch_op.drop_column("avatar_legacy_id")
94
+
95
+
96
+ def downgrade() -> None:
97
+ with op.batch_alter_table("room", schema=None) as batch_op:
98
+ batch_op.add_column(sa.Column("avatar_legacy_id", sa.VARCHAR(), nullable=True))
99
+
100
+ with op.batch_alter_table("contact", schema=None) as batch_op:
101
+ batch_op.add_column(sa.Column("avatar_legacy_id", sa.VARCHAR(), nullable=True))
102
+
103
+ with op.batch_alter_table("avatar", schema=None) as batch_op:
104
+ batch_op.drop_constraint("avatar_unique_legacy_id", type_="unique")
105
+ batch_op.drop_column("legacy_id")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: slidge
3
- Version: 0.3.0a0
3
+ Version: 0.3.0a1
4
4
  Summary: XMPP bridging framework
5
5
  Author-email: Nicolas Cedilnik <nicoco@nicoco.fr>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -1,56 +0,0 @@
1
- """New avatar store
2
-
3
- Revision ID: 4dbd23a3f868
4
- Revises: 04cf35e3cf85
5
- Create Date: 2025-04-14 21:57:49.030430
6
-
7
- """
8
-
9
- from typing import Sequence, Union
10
-
11
- import sqlalchemy as sa
12
- from alembic import op
13
-
14
- # revision identifiers, used by Alembic.
15
- revision: str = "4dbd23a3f868"
16
- down_revision: Union[str, None] = "04cf35e3cf85"
17
- branch_labels: Union[str, Sequence[str], None] = None
18
- depends_on: Union[str, Sequence[str], None] = None
19
-
20
-
21
- def upgrade() -> None:
22
- with op.batch_alter_table("avatar", schema=None) as batch_op:
23
- batch_op.add_column(sa.Column("legacy_id", sa.String(), nullable=True))
24
- batch_op.create_unique_constraint("avatar_unique_legacy_id", ["legacy_id"])
25
-
26
- batch_op.execute("""
27
- UPDATE avatar
28
- SET legacy_id = contact.avatar_legacy_id
29
- FROM contact
30
- WHERE avatar.id = contact.avatar_id
31
- """)
32
-
33
- batch_op.execute("""
34
- UPDATE avatar
35
- SET legacy_id = room.avatar_legacy_id
36
- FROM room
37
- WHERE avatar.id = room.avatar_id
38
- """)
39
-
40
- with op.batch_alter_table("contact", schema=None) as batch_op:
41
- batch_op.drop_column("avatar_legacy_id")
42
-
43
- with op.batch_alter_table("room", schema=None) as batch_op:
44
- batch_op.drop_column("avatar_legacy_id")
45
-
46
-
47
- def downgrade() -> None:
48
- with op.batch_alter_table("room", schema=None) as batch_op:
49
- batch_op.add_column(sa.Column("avatar_legacy_id", sa.VARCHAR(), nullable=True))
50
-
51
- with op.batch_alter_table("contact", schema=None) as batch_op:
52
- batch_op.add_column(sa.Column("avatar_legacy_id", sa.VARCHAR(), nullable=True))
53
-
54
- with op.batch_alter_table("avatar", schema=None) as batch_op:
55
- batch_op.drop_constraint("avatar_unique_legacy_id", type_="unique")
56
- batch_op.drop_column("legacy_id")
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes