I develop stuff and have opinions on things -
About me/Contact

Articles:

slixmpp v1.6

slixmpp est une bibliothèque python (3.7+) pour XMPP utilisant asyncio, qui a été forkée depuis les sources de SleekXMPP.

Nouveaux plugins

  • XEP-0353: Jingle Message Initiation
  • XEP-0359: Unique and stable stanza IDs (était déjà partiellement implémentée)
  • XEP-0369: MIX-Core
  • XEP-0377: Spam reporting
  • XEP-0403: MIX-Presence
  • XEP-0404: MIX-Anon
  • XEP-0405: MIX-PAM
  • XEP-0421: Anonymous unique occupant identifiers for MUCs (déjà présente en tant que "protoxep_occupantid" dans une version antérieure de la spécification)
  • XEP-0422: Message Fastening
  • XEP-0424: Message Retraction
  • XEP-0425: Message Moderation
  • XEP-0428: Fallback Indication
  • XEP-0437: Room Activity Indicators
  • XEP-0439: Quick response
  • XEP-0444: Message Reactions (déjà présente en tant que "protoxep_reactions" dans une version antérieure de la spécification)

Ces extensions sont pour la plupart expérimentales (au sens de la XSF), et sont donc sujettes à des changements plus ou moins lourds avant leur avancée dans le processus, ce qu’il faut garder en tête en les utilisant. Celles concernant MIX en particulier, car elles sont peu testées.

Note : Une nouvelle dépendance python, le package emoji est maintenant requis pour la validité de la XEP-0444 (vérification des emojis), et a été ajoutée à la liste extras_require du script d’installation, où aiohttp (seulement requis pour la XEP-0363) a été déplacé également.

Corrections et améliorations

  • XEP-0045:
    • Séparation du fichier unique en un package python, meilleure structure du code, nettoyage, élements dédiés pour les stanzas… (pep)
    • Réécriture des fonctions déjà cassées en coroutines, ajout d’autres éléments (mathieui)
  • XEP-0047: Correction du nombre maximal de séquence (mathieui)
  • XEP-0115: Ajout de l’attribut manquant "from" à la requête de disco pour les composants (aearil)
  • XEP-0333: Ajout de la "feature" manquante à la session (mathieui)
  • XEP-0352: Ajout de la "feature" seulement pour les composants (Link Mauve)
  • XEP-0363: Ajout de l’attribut "callback" manquant à la requête d’upload (cnngimenez)
  • Premiers tests d’intégration (mathieui)
  • Annulation des filtres sur le flux XML à la déconnexion (ehendrix23)
  • Tutoriels en anglais et polonais pour l’ajout d’un plugin personnalisé (Hoacyn)
  • Suppression de code tiers non utilisé désormais grâce à python 3.7 (Link Mauve)
  • Amélioration de la documentation et ajout des plugins à l’index (mathieui)

Avis de dépréciation

En passant de sleekxmpp vers slixmpp, beaucoup de fonctions ont été gardées telles quelles en renvoyant juste une future (le résultat de iq.send()). Désormais, beaucoup de ces fonctions seront plutôt des coroutines, au fur et à mesure de l’évolution du code. C’est nécessaire afin de nous permettre d’avoir de meilleures valeurs de retour et traitements des réponses, plutôt que laisser l’utilisateur de la bibliothèque récupérer ce dont il a besoin à la main en explorant la stanza. Beaucoup des nouvelles XEPs ajoutées fonctionnent de cette façon, et les fonctions réécrites de la XEP-0045 sont également des coroutines.

Cela signifie par exemple qu’appeler self.xmpp.plugin['xep_0045'].set_role() sans utiliser await dessus n’aura strictement aucun effet. (en dehors d’une erreur plus tard dans les logs selon le niveau de debug asyncio en cours)

tl;dr: il faut await les coroutines

Merci à tous les mainteneurs et contributeurs pour cette nouvelle version !

Si vous avez des remarques ou commentaires à propos de cet article, n’hésitez pas à me contacter.