slidge 0.2.0a4__tar.gz → 0.2.0a6__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. {slidge-0.2.0a4 → slidge-0.2.0a6}/PKG-INFO +1 -1
  2. {slidge-0.2.0a4 → slidge-0.2.0a6}/pyproject.toml +1 -1
  3. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/__version__.py +1 -1
  4. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/contact/contact.py +7 -3
  5. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/group/room.py +1 -0
  6. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/util/test.py +12 -3
  7. {slidge-0.2.0a4 → slidge-0.2.0a6}/LICENSE +0 -0
  8. {slidge-0.2.0a4 → slidge-0.2.0a6}/README.md +0 -0
  9. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/__init__.py +0 -0
  10. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/__main__.py +0 -0
  11. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/command/__init__.py +0 -0
  12. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/command/adhoc.py +0 -0
  13. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/command/admin.py +0 -0
  14. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/command/base.py +0 -0
  15. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/command/categories.py +0 -0
  16. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/command/chat_command.py +0 -0
  17. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/command/register.py +0 -0
  18. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/command/user.py +0 -0
  19. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/contact/__init__.py +0 -0
  20. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/contact/roster.py +0 -0
  21. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/__init__.py +0 -0
  22. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/config.py +0 -0
  23. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/__init__.py +0 -0
  24. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/base.py +0 -0
  25. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/caps.py +0 -0
  26. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/delivery_receipt.py +0 -0
  27. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/disco.py +0 -0
  28. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/mam.py +0 -0
  29. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/muc_admin.py +0 -0
  30. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/ping.py +0 -0
  31. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/presence.py +0 -0
  32. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/registration.py +0 -0
  33. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/search.py +0 -0
  34. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/session_dispatcher.py +0 -0
  35. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/gateway/vcard_temp.py +0 -0
  36. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/__init__.py +0 -0
  37. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/attachment.py +0 -0
  38. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/avatar.py +0 -0
  39. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/base.py +0 -0
  40. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/db.py +0 -0
  41. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/disco.py +0 -0
  42. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/lock.py +0 -0
  43. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/message.py +0 -0
  44. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/message_maker.py +0 -0
  45. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/presence.py +0 -0
  46. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/mixins/recipient.py +0 -0
  47. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/pubsub.py +0 -0
  48. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/core/session.py +0 -0
  49. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/__init__.py +0 -0
  50. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/__init__.py +0 -0
  51. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/env.py +0 -0
  52. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/old_user_store.py +0 -0
  53. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/script.py.mako +0 -0
  54. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/09f27f098baa_add_missing_attributes_in_room.py +0 -0
  55. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/2461390c0af2_store_contacts_caps_verstring_in_db.py +0 -0
  56. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/29f5280c61aa_store_subject_setter_in_room.py +0 -0
  57. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/2b1f45ab7379_store_room_subject_setter_by_nickname.py +0 -0
  58. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/5bd48bfdffa2_lift_room_legacy_id_constraint.py +0 -0
  59. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/82a4af84b679_add_muc_history_filled.py +0 -0
  60. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/8b993243a536_add_vcard_content_to_contact_table.py +0 -0
  61. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/8d2ced764698_rely_on_db_to_store_contacts_rooms_and_.py +0 -0
  62. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/aa9d82a7f6ef_db_creation.py +0 -0
  63. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/b33993e87db3_move_everything_to_persistent_db.py +0 -0
  64. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/b64b1a793483_add_source_and_legacy_id_for_archived_.py +0 -0
  65. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/c4a8ec35a0e8_per_room_user_nick.py +0 -0
  66. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/alembic/versions/e91195719c2c_store_users_avatars_persistently.py +0 -0
  67. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/avatar.py +0 -0
  68. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/meta.py +0 -0
  69. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/models.py +0 -0
  70. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/db/store.py +0 -0
  71. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/group/__init__.py +0 -0
  72. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/group/archive.py +0 -0
  73. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/group/bookmarks.py +0 -0
  74. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/group/participant.py +0 -0
  75. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/main.py +0 -0
  76. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/migration.py +0 -0
  77. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/py.typed +0 -0
  78. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/__init__.py +0 -0
  79. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/link_preview/__init__.py +0 -0
  80. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/link_preview/link_preview.py +0 -0
  81. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/link_preview/stanza.py +0 -0
  82. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/roster.py +0 -0
  83. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0077/__init__.py +0 -0
  84. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0077/register.py +0 -0
  85. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0077/stanza.py +0 -0
  86. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0100/__init__.py +0 -0
  87. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0100/gateway.py +0 -0
  88. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0100/stanza.py +0 -0
  89. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0153/__init__.py +0 -0
  90. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0153/stanza.py +0 -0
  91. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0153/vcard_avatar.py +0 -0
  92. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0264/__init__.py +0 -0
  93. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0264/stanza.py +0 -0
  94. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0264/thumbnail.py +0 -0
  95. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0292/__init__.py +0 -0
  96. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0292/vcard4.py +0 -0
  97. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0313/__init__.py +0 -0
  98. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0313/mam.py +0 -0
  99. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0313/stanza.py +0 -0
  100. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0317/__init__.py +0 -0
  101. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0317/hats.py +0 -0
  102. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0317/stanza.py +0 -0
  103. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0356_old/__init__.py +0 -0
  104. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0356_old/privilege.py +0 -0
  105. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0356_old/stanza.py +0 -0
  106. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0424/__init__.py +0 -0
  107. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0424/retraction.py +0 -0
  108. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0424/stanza.py +0 -0
  109. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0490/__init__.py +0 -0
  110. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0490/mds.py +0 -0
  111. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/slixfix/xep_0490/stanza.py +0 -0
  112. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/util/__init__.py +0 -0
  113. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/util/archive_msg.py +0 -0
  114. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/util/conf.py +0 -0
  115. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/util/db.py +0 -0
  116. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/util/types.py +0 -0
  117. {slidge-0.2.0a4 → slidge-0.2.0a6}/slidge/util/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: slidge
3
- Version: 0.2.0a4
3
+ Version: 0.2.0a6
4
4
  Summary: XMPP bridging framework
5
5
  Home-page: https://sr.ht/~nicoco/slidge/
6
6
  License: AGPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "slidge"
3
- version = "0.2.0alpha4"
3
+ version = "0.2.0alpha6"
4
4
  description = "XMPP bridging framework"
5
5
  authors = ["Nicolas Cedilnik <nicoco@nicoco.fr>"]
6
6
  readme = "README.md"
@@ -2,4 +2,4 @@ from slidge.util.util import get_version # noqa: F401
2
2
 
3
3
  # this is modified before publish, but if someone cloned from the repo,
4
4
  # it can help
5
- __version__ = "0.2.0alpha4"
5
+ __version__ = "0.2.0alpha6"
@@ -196,15 +196,19 @@ class LegacyContact(
196
196
  def __ensure_pk(self):
197
197
  if self.contact_pk is not None:
198
198
  return
199
+ # This happens for legacy modules that don't follow the Roster.fill /
200
+ # populate contact attributes in Contact.update_info() method.
201
+ # This results in (even) less optimised SQL writes and read, but
202
+ # we allow it because it fits some legacy network libs better.
199
203
  with self.xmpp.store.session() as orm:
200
204
  orm.commit()
201
205
  stored = self.xmpp.store.contacts.get_by_legacy_id(
202
206
  self.user_pk, str(self.legacy_id)
203
207
  )
204
208
  if stored is None:
205
- self.log.error("Cannot find our primary key!", stack_info=True)
206
- raise RuntimeError("Cannot find our primary key!")
207
- self.contact_pk = stored.id
209
+ self.contact_pk = self.xmpp.store.contacts.update(self, commit=True)
210
+ else:
211
+ self.contact_pk = stored.id
208
212
  assert self.contact_pk is not None
209
213
 
210
214
  def __get_subscription_string(self):
@@ -758,6 +758,7 @@ class LegacyMUC(
758
758
  await self.session.contacts.ready
759
759
 
760
760
  if self.pk is not None:
761
+ c._LegacyContact__ensure_pk() # type: ignore
761
762
  assert c.contact_pk is not None
762
763
  with self.__store.session():
763
764
  stored = self.__participants_store.get_by_contact(self.pk, c.contact_pk)
@@ -218,7 +218,10 @@ class SlidgeTest(SlixTestPlus):
218
218
  engine = self.db_engine = create_engine("sqlite+pysqlite:///:memory:")
219
219
  Base.metadata.create_all(engine)
220
220
  BaseGateway.store = SlidgeStore(engine)
221
- self.xmpp = BaseGateway.get_self_or_unique_subclass()()
221
+ try:
222
+ self.xmpp = BaseGateway.get_self_or_unique_subclass()()
223
+ except Exception:
224
+ raise
222
225
  self.xmpp.TEST_MODE = True
223
226
  PepNick.contact_store = self.xmpp.store.contacts
224
227
  PepAvatar.store = self.xmpp.store
@@ -266,7 +269,7 @@ class SlidgeTest(SlixTestPlus):
266
269
  slidge.db.store._session = None
267
270
  Base.metadata.drop_all(self.xmpp.store._engine)
268
271
 
269
- def setup_logged_session(self):
272
+ def setup_logged_session(self, n_contacts=0):
270
273
  user = self.xmpp.store.users.new(
271
274
  JID("romeo@montague.lit/gajim"), {"username": "romeo", "city": ""}
272
275
  )
@@ -284,12 +287,18 @@ class SlidgeTest(SlixTestPlus):
284
287
  assert "logging in" in stanza["status"].lower(), stanza
285
288
  stanza = self.next_sent()
286
289
  assert "syncing contacts" in stanza["status"].lower(), stanza
290
+ if BaseGateway.get_self_or_unique_subclass().GROUPS:
291
+ stanza = self.next_sent()
292
+ assert "syncing groups" in stanza["status"].lower(), stanza
293
+ for _ in range(n_contacts):
294
+ probe = self.next_sent()
295
+ assert probe.get_type() == "probe"
287
296
  stanza = self.next_sent()
288
297
  assert "yup" in stanza["status"].lower(), stanza
289
-
290
298
  self.romeo: BaseSession = BaseSession.get_self_or_unique_subclass().from_jid(
291
299
  JID("romeo@montague.lit")
292
300
  )
301
+
293
302
  self.juliet: LegacyContact = self.run_coro(
294
303
  self.romeo.contacts.by_legacy_id("juliet")
295
304
  )
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