--- /srv/reproducible-results/rbuild-debian/r-b-build.cHX0vkvS/b1/slidge_0.1.0-1_armhf.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.cHX0vkvS/b2/slidge_0.1.0-1_armhf.changes ├── Files │ @@ -1,3 +1,3 @@ │ │ - 96f4513caa28f983a15d735bcc75979e 2112696 python optional python-slidge-doc_0.1.0-1_all.deb │ + 3c76d11c6b3f0421251226d21fd33055 2110796 python optional python-slidge-doc_0.1.0-1_all.deb │ 7eda4aa03806b6edc9aeeda7a0406c27 109436 python optional python3-slidge_0.1.0-1_all.deb ├── python-slidge-doc_0.1.0-1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2024-04-09 06:27:33.000000 debian-binary │ │ --rw-r--r-- 0 0 0 5752 2024-04-09 06:27:33.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 2106752 2024-04-09 06:27:33.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 5764 2024-04-09 06:27:33.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 2104840 2024-04-09 06:27:33.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: python-slidge-doc │ │ │ │ Source: slidge │ │ │ │ Version: 0.1.0-1 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Debian XMPP Maintainers │ │ │ │ -Installed-Size: 6720 │ │ │ │ +Installed-Size: 6578 │ │ │ │ Depends: libjs-sphinxdoc (>= 7.2.2) │ │ │ │ Section: python │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://slidge.im/ │ │ │ │ Description: XMPP puppeteer gateway library in Python (documentation) │ │ │ │ Slidge makes writing gateways to other chat networks (legacy modules) │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -43,16 +43,16 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6295 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/index.rst.txt │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/register/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1654 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/register/index.rst.txt │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/user/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8159 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/user/index.rst.txt │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/contact/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15583 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/contact/index.rst.txt │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18405 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/index.rst.txt │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6247 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/contact/index.rst.txt │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9069 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/index.rst.txt │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/roster/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3273 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/roster/index.rst.txt │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/cache/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 293 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/cache/index.rst.txt │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/config/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 105 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/config/index.rst.txt │ │ │ │ @@ -221,16 +221,16 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 61549 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/register/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 26585 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/register/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/user/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 65296 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/user/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/contact/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 89249 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/contact/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 99409 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36508 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/contact/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 47360 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/roster/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 29300 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/roster/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/cache/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17584 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/cache/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/config/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15828 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/config/index.html │ │ │ │ @@ -280,26 +280,26 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/mixins/presence/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16017 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/mixins/presence/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/mixins/recipient/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16024 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/mixins/recipient/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/pubsub/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15828 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/pubsub/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/session/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 81486 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/session/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 81334 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/session/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/archive/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18348 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/archive/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/bookmarks/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23050 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/bookmarks/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 69337 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/participant/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23288 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/participant/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/room/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 53571 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/room/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 160027 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 159881 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/migration/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15688 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/migration/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/slixfix/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18418 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/slixfix/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/slixfix/link_preview/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15891 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/slixfix/link_preview/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/slixfix/link_preview/link_preview/ │ │ │ │ @@ -322,38 +322,38 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 200952 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/util/test/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/util/types/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 69813 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/util/types/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/util/util/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 48331 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/util/util/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/contact/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 97797 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/contact/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 97435 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/contact/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/gateway/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 76788 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/gateway/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 117648 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 117286 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18059 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/legacy_client/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15738 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/legacy_client/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 82001 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 81842 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/util/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15675 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/util/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 21932 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/contributing.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24720 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/design.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16277 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/howto.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18679 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32866 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/tutorial.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 214435 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/genindex.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 207271 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/genindex.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20735 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/glossary.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 100665 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11227 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/objects.inv │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 95146 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10991 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/objects.inv │ │ │ │ -rw-r--r-- 0 root (0) root (0) 31403 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/py-modindex.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15250 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/search.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 248762 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/searchindex.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 241092 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/searchindex.js │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20135 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/commands.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17984 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/contacts.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20204 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17322 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/low_profile.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16204 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/note.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20373 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/register.html │ │ │ ├── ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/contact/index.rst.txt │ │ │ │ @@ -55,34 +55,14 @@ │ │ │ │ This will use :xep:`0363` to impersonate the XMPP user in order. │ │ │ │ │ │ │ │ .. py:property:: name │ │ │ │ │ │ │ │ Friendly name of the contact, as it should appear in the user's roster │ │ │ │ │ │ │ │ │ │ │ │ - .. py:property:: avatar_id │ │ │ │ - :type: Optional[slidge.util.types.AvatarIdType] │ │ │ │ - │ │ │ │ - The unique ID of this entity's avatar. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:property:: avatar │ │ │ │ - :type: Optional[slidge.util.types.AvatarIdType] │ │ │ │ - │ │ │ │ - This property can be used to set the avatar, but │ │ │ │ - :py:meth:`~.AvatarMixin.set_avatar()` should be preferred because you can │ │ │ │ - provide a unique ID for the avatar for efficient caching. │ │ │ │ - Setting this is OKish in case the avatar type is a URL or a local path │ │ │ │ - that can act as a legacy ID. │ │ │ │ - │ │ │ │ - Python's ``property`` is abused here to maintain backwards │ │ │ │ - compatibility, but when getting it you actually get the avatar legacy │ │ │ │ - ID. │ │ │ │ - │ │ │ │ - │ │ │ │ .. py:attribute:: RESOURCE │ │ │ │ :type: str │ │ │ │ :value: 'slidge' │ │ │ │ │ │ │ │ A full JID, including a resource part is required for chat states (and maybe other stuff) │ │ │ │ to work properly. This is the name of the resource the contacts will use. │ │ │ │ │ │ │ │ @@ -207,226 +187,8 @@ │ │ │ │ │ │ │ │ It the legacy network doesn't like that you fetch too many profiles on startup, │ │ │ │ it's also possible to fetch it here, which will be called when XMPP clients │ │ │ │ of the user request the vcard, if it hasn't been fetched before │ │ │ │ :return: │ │ │ │ │ │ │ │ │ │ │ │ - .. py:method:: set_avatar(a, avatar_unique_id = None, blocking=False, cancel=True) │ │ │ │ - :async: │ │ │ │ - │ │ │ │ - Set an avatar for this entity │ │ │ │ - │ │ │ │ - :param a: │ │ │ │ - :param avatar_unique_id: │ │ │ │ - :param blocking: │ │ │ │ - :param cancel: │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: invite_to(muc, reason = None, password = None, **send_kwargs) │ │ │ │ - │ │ │ │ - Send an invitation to join a group (:xep:`0249`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param muc: the muc the user is invited to │ │ │ │ - :param reason: a text explaining why the user should join this muc │ │ │ │ - :param password: maybe this will make sense later? not sure │ │ │ │ - :param send_kwargs: additional kwargs to be passed to _send() │ │ │ │ - (internal use by slidge) │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: active(**kwargs) │ │ │ │ - │ │ │ │ - Send an "active" chat state (:xep:`0085`) from this │ │ │ │ - :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: composing(**kwargs) │ │ │ │ - │ │ │ │ - Send a "composing" (ie "typing notification") chat state (:xep:`0085`) │ │ │ │ - from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: paused(**kwargs) │ │ │ │ - │ │ │ │ - Send a "paused" (ie "typing paused notification") chat state │ │ │ │ - (:xep:`0085`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: inactive(**kwargs) │ │ │ │ - │ │ │ │ - Send an "inactive" (ie "contact has not interacted with the chat session │ │ │ │ - interface for an intermediate period of time") chat state (:xep:`0085`) │ │ │ │ - from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: gone(**kwargs) │ │ │ │ - │ │ │ │ - Send a "gone" (ie "contact has not interacted with the chat session interface, │ │ │ │ - system, or device for a relatively long period of time") chat state │ │ │ │ - (:xep:`0085`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: send_text(body, legacy_msg_id = None, *, when = None, reply_to = None, thread = None, hints = None, carbon=False, archive_only=False, correction=False, correction_event_id = None, link_previews = None, **send_kwargs) │ │ │ │ - │ │ │ │ - Send a text message from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param body: Content of the message │ │ │ │ - :param legacy_msg_id: If you want to be able to transport read markers from the gateway │ │ │ │ - user to the legacy network, specify this │ │ │ │ - :param when: when the message was sent, for a "delay" tag (:xep:`0203`) │ │ │ │ - :param reply_to: Quote another message (:xep:`0461`) │ │ │ │ - :param hints: │ │ │ │ - :param thread: │ │ │ │ - :param carbon: (only used if called on a :class:`LegacyContact`) │ │ │ │ - Set this to ``True`` if this is actually a message sent **to** the │ │ │ │ - :class:`LegacyContact` by the :term:`User`. │ │ │ │ - Use this to synchronize outgoing history for legacy official apps. │ │ │ │ - :param correction: whether this message is a correction or not │ │ │ │ - :param correction_event_id: in the case where an ID is associated with the legacy │ │ │ │ - 'correction event', specify it here to use it on the XMPP side. If not specified, │ │ │ │ - a random ID will be used. │ │ │ │ - :param link_previews: A little of sender (or server, or gateway)-generated │ │ │ │ - previews of URLs linked in the body. │ │ │ │ - :param archive_only: (only in groups) Do not send this message to user, │ │ │ │ - but store it in the archive. Meant to be used during ``MUC.backfill()`` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: correct(legacy_msg_id, new_text, *, when = None, reply_to = None, thread = None, hints = None, carbon=False, archive_only=False, correction_event_id = None, link_previews = None, **send_kwargs) │ │ │ │ - │ │ │ │ - Modify a message that was previously sent by this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - Uses last message correction (:xep:`0308`) │ │ │ │ - │ │ │ │ - :param new_text: New content of the message │ │ │ │ - :param legacy_msg_id: The legacy message ID of the message to correct │ │ │ │ - :param when: when the message was sent, for a "delay" tag (:xep:`0203`) │ │ │ │ - :param reply_to: Quote another message (:xep:`0461`) │ │ │ │ - :param hints: │ │ │ │ - :param thread: │ │ │ │ - :param carbon: (only in 1:1) Reflect a message sent to this ``Contact`` by the user. │ │ │ │ - Use this to synchronize outgoing history for legacy official apps. │ │ │ │ - :param archive_only: (only in groups) Do not send this message to user, │ │ │ │ - but store it in the archive. Meant to be used during ``MUC.backfill()`` │ │ │ │ - :param correction_event_id: in the case where an ID is associated with the legacy │ │ │ │ - 'correction event', specify it here to use it on the XMPP side. If not specified, │ │ │ │ - a random ID will be used. │ │ │ │ - :param link_previews: A little of sender (or server, or gateway)-generated │ │ │ │ - previews of URLs linked in the body. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: react(legacy_msg_id, emojis = (), thread = None, **kwargs) │ │ │ │ - │ │ │ │ - Send a reaction (:xep:`0444`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param legacy_msg_id: The message which the reaction refers to. │ │ │ │ - :param emojis: An iterable of emojis used as reactions │ │ │ │ - :param thread: │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: retract(legacy_msg_id, thread = None, **kwargs) │ │ │ │ - │ │ │ │ - Send a message retraction (:XEP:`0424`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param legacy_msg_id: Legacy ID of the message to delete │ │ │ │ - :param thread: │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: send_file(file_path = None, legacy_msg_id = None, *, data_stream = None, data = None, file_url = None, file_name = None, content_type = None, reply_to = None, when = None, caption = None, legacy_file_id = None, thread = None, **kwargs) │ │ │ │ - :async: │ │ │ │ - │ │ │ │ - Send a single file from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param file_path: Path to the attachment │ │ │ │ - :param data_stream: Alternatively, a stream of bytes (such as a File object) │ │ │ │ - :param data: Alternatively, a bytes object │ │ │ │ - :param file_url: Alternatively, a URL │ │ │ │ - :param file_name: How the file should be named. │ │ │ │ - :param content_type: MIME type, inferred from filename if not given │ │ │ │ - :param legacy_msg_id: If you want to be able to transport read markers from the gateway │ │ │ │ - user to the legacy network, specify this │ │ │ │ - :param reply_to: Quote another message (:xep:`0461`) │ │ │ │ - :param when: when the file was sent, for a "delay" tag (:xep:`0203`) │ │ │ │ - :param caption: an optional text that is linked to the file │ │ │ │ - :param legacy_file_id: A unique identifier for the file on the legacy network. │ │ │ │ - Plugins should try their best to provide it, to avoid duplicates. │ │ │ │ - :param thread: │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: ack(legacy_msg_id, **kwargs) │ │ │ │ - │ │ │ │ - Send an "acknowledged" message marker (:xep:`0333`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param legacy_msg_id: The message this marker refers to │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: received(legacy_msg_id, **kwargs) │ │ │ │ - │ │ │ │ - Send a "received" message marker (:xep:`0333`) from this :term:`XMPP Entity`. │ │ │ │ - If called on a :class:`LegacyContact`, also send a delivery receipt │ │ │ │ - marker (:xep:`0184`). │ │ │ │ - │ │ │ │ - :param legacy_msg_id: The message this marker refers to │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: displayed(legacy_msg_id, **kwargs) │ │ │ │ - │ │ │ │ - Send a "displayed" message marker (:xep:`0333`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param legacy_msg_id: The message this marker refers to │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: online(status = None, last_seen = None) │ │ │ │ - │ │ │ │ - Send an "online" presence from this contact to the user. │ │ │ │ - │ │ │ │ - :param status: Arbitrary text, details of the status, eg: "Listening to Britney Spears" │ │ │ │ - :param last_seen: For :xep:`0319` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: away(status = None, last_seen = None) │ │ │ │ - │ │ │ │ - Send an "away" presence from this contact to the user. │ │ │ │ - │ │ │ │ - This is a global status, as opposed to :meth:`.LegacyContact.inactive` │ │ │ │ - which concerns a specific conversation, ie a specific "chat window" │ │ │ │ - │ │ │ │ - :param status: Arbitrary text, details of the status, eg: "Gone to fight capitalism" │ │ │ │ - :param last_seen: For :xep:`0319` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: extended_away(status = None, last_seen = None) │ │ │ │ - │ │ │ │ - Send an "extended away" presence from this contact to the user. │ │ │ │ - │ │ │ │ - This is a global status, as opposed to :meth:`.LegacyContact.inactive` │ │ │ │ - which concerns a specific conversation, ie a specific "chat window" │ │ │ │ - │ │ │ │ - :param status: Arbitrary text, details of the status, eg: "Gone to fight capitalism" │ │ │ │ - :param last_seen: For :xep:`0319` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: busy(status = None, last_seen = None) │ │ │ │ - │ │ │ │ - Send a "busy" (ie, "dnd") presence from this contact to the user, │ │ │ │ - │ │ │ │ - :param status: eg: "Trying to make sense of XEP-0100" │ │ │ │ - :param last_seen: For :xep:`0319` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: offline(status = None, last_seen = None) │ │ │ │ - │ │ │ │ - Send an "offline" presence from this contact to the user. │ │ │ │ - │ │ │ │ - :param status: eg: "Trying to make sense of XEP-0100" │ │ │ │ - :param last_seen: For :xep:`0319` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: available_emojis(legacy_msg_id = None) │ │ │ │ - :async: │ │ │ │ - │ │ │ │ - Override this to restrict the subset of reactions this recipient │ │ │ │ - can handle. │ │ │ │ - │ │ │ │ - :return: A set of emojis or None if any emoji is allowed │ │ │ │ - │ │ │ │ - │ │ │ ├── ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/contact/index.rst.txt │ │ │ │ @@ -59,34 +59,14 @@ │ │ │ │ This will use :xep:`0363` to impersonate the XMPP user in order. │ │ │ │ │ │ │ │ .. py:property:: name │ │ │ │ │ │ │ │ Friendly name of the contact, as it should appear in the user's roster │ │ │ │ │ │ │ │ │ │ │ │ - .. py:property:: avatar_id │ │ │ │ - :type: Optional[slidge.util.types.AvatarIdType] │ │ │ │ - │ │ │ │ - The unique ID of this entity's avatar. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:property:: avatar │ │ │ │ - :type: Optional[slidge.util.types.AvatarIdType] │ │ │ │ - │ │ │ │ - This property can be used to set the avatar, but │ │ │ │ - :py:meth:`~.AvatarMixin.set_avatar()` should be preferred because you can │ │ │ │ - provide a unique ID for the avatar for efficient caching. │ │ │ │ - Setting this is OKish in case the avatar type is a URL or a local path │ │ │ │ - that can act as a legacy ID. │ │ │ │ - │ │ │ │ - Python's ``property`` is abused here to maintain backwards │ │ │ │ - compatibility, but when getting it you actually get the avatar legacy │ │ │ │ - ID. │ │ │ │ - │ │ │ │ - │ │ │ │ .. py:attribute:: RESOURCE │ │ │ │ :type: str │ │ │ │ :value: 'slidge' │ │ │ │ │ │ │ │ A full JID, including a resource part is required for chat states (and maybe other stuff) │ │ │ │ to work properly. This is the name of the resource the contacts will use. │ │ │ │ │ │ │ │ @@ -211,232 +191,14 @@ │ │ │ │ │ │ │ │ It the legacy network doesn't like that you fetch too many profiles on startup, │ │ │ │ it's also possible to fetch it here, which will be called when XMPP clients │ │ │ │ of the user request the vcard, if it hasn't been fetched before │ │ │ │ :return: │ │ │ │ │ │ │ │ │ │ │ │ - .. py:method:: set_avatar(a, avatar_unique_id = None, blocking=False, cancel=True) │ │ │ │ - :async: │ │ │ │ - │ │ │ │ - Set an avatar for this entity │ │ │ │ - │ │ │ │ - :param a: │ │ │ │ - :param avatar_unique_id: │ │ │ │ - :param blocking: │ │ │ │ - :param cancel: │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: invite_to(muc, reason = None, password = None, **send_kwargs) │ │ │ │ - │ │ │ │ - Send an invitation to join a group (:xep:`0249`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param muc: the muc the user is invited to │ │ │ │ - :param reason: a text explaining why the user should join this muc │ │ │ │ - :param password: maybe this will make sense later? not sure │ │ │ │ - :param send_kwargs: additional kwargs to be passed to _send() │ │ │ │ - (internal use by slidge) │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: active(**kwargs) │ │ │ │ - │ │ │ │ - Send an "active" chat state (:xep:`0085`) from this │ │ │ │ - :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: composing(**kwargs) │ │ │ │ - │ │ │ │ - Send a "composing" (ie "typing notification") chat state (:xep:`0085`) │ │ │ │ - from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: paused(**kwargs) │ │ │ │ - │ │ │ │ - Send a "paused" (ie "typing paused notification") chat state │ │ │ │ - (:xep:`0085`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: inactive(**kwargs) │ │ │ │ - │ │ │ │ - Send an "inactive" (ie "contact has not interacted with the chat session │ │ │ │ - interface for an intermediate period of time") chat state (:xep:`0085`) │ │ │ │ - from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: gone(**kwargs) │ │ │ │ - │ │ │ │ - Send a "gone" (ie "contact has not interacted with the chat session interface, │ │ │ │ - system, or device for a relatively long period of time") chat state │ │ │ │ - (:xep:`0085`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: send_text(body, legacy_msg_id = None, *, when = None, reply_to = None, thread = None, hints = None, carbon=False, archive_only=False, correction=False, correction_event_id = None, link_previews = None, **send_kwargs) │ │ │ │ - │ │ │ │ - Send a text message from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param body: Content of the message │ │ │ │ - :param legacy_msg_id: If you want to be able to transport read markers from the gateway │ │ │ │ - user to the legacy network, specify this │ │ │ │ - :param when: when the message was sent, for a "delay" tag (:xep:`0203`) │ │ │ │ - :param reply_to: Quote another message (:xep:`0461`) │ │ │ │ - :param hints: │ │ │ │ - :param thread: │ │ │ │ - :param carbon: (only used if called on a :class:`LegacyContact`) │ │ │ │ - Set this to ``True`` if this is actually a message sent **to** the │ │ │ │ - :class:`LegacyContact` by the :term:`User`. │ │ │ │ - Use this to synchronize outgoing history for legacy official apps. │ │ │ │ - :param correction: whether this message is a correction or not │ │ │ │ - :param correction_event_id: in the case where an ID is associated with the legacy │ │ │ │ - 'correction event', specify it here to use it on the XMPP side. If not specified, │ │ │ │ - a random ID will be used. │ │ │ │ - :param link_previews: A little of sender (or server, or gateway)-generated │ │ │ │ - previews of URLs linked in the body. │ │ │ │ - :param archive_only: (only in groups) Do not send this message to user, │ │ │ │ - but store it in the archive. Meant to be used during ``MUC.backfill()`` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: correct(legacy_msg_id, new_text, *, when = None, reply_to = None, thread = None, hints = None, carbon=False, archive_only=False, correction_event_id = None, link_previews = None, **send_kwargs) │ │ │ │ - │ │ │ │ - Modify a message that was previously sent by this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - Uses last message correction (:xep:`0308`) │ │ │ │ - │ │ │ │ - :param new_text: New content of the message │ │ │ │ - :param legacy_msg_id: The legacy message ID of the message to correct │ │ │ │ - :param when: when the message was sent, for a "delay" tag (:xep:`0203`) │ │ │ │ - :param reply_to: Quote another message (:xep:`0461`) │ │ │ │ - :param hints: │ │ │ │ - :param thread: │ │ │ │ - :param carbon: (only in 1:1) Reflect a message sent to this ``Contact`` by the user. │ │ │ │ - Use this to synchronize outgoing history for legacy official apps. │ │ │ │ - :param archive_only: (only in groups) Do not send this message to user, │ │ │ │ - but store it in the archive. Meant to be used during ``MUC.backfill()`` │ │ │ │ - :param correction_event_id: in the case where an ID is associated with the legacy │ │ │ │ - 'correction event', specify it here to use it on the XMPP side. If not specified, │ │ │ │ - a random ID will be used. │ │ │ │ - :param link_previews: A little of sender (or server, or gateway)-generated │ │ │ │ - previews of URLs linked in the body. │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: react(legacy_msg_id, emojis = (), thread = None, **kwargs) │ │ │ │ - │ │ │ │ - Send a reaction (:xep:`0444`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param legacy_msg_id: The message which the reaction refers to. │ │ │ │ - :param emojis: An iterable of emojis used as reactions │ │ │ │ - :param thread: │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: retract(legacy_msg_id, thread = None, **kwargs) │ │ │ │ - │ │ │ │ - Send a message retraction (:XEP:`0424`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param legacy_msg_id: Legacy ID of the message to delete │ │ │ │ - :param thread: │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: send_file(file_path = None, legacy_msg_id = None, *, data_stream = None, data = None, file_url = None, file_name = None, content_type = None, reply_to = None, when = None, caption = None, legacy_file_id = None, thread = None, **kwargs) │ │ │ │ - :async: │ │ │ │ - │ │ │ │ - Send a single file from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param file_path: Path to the attachment │ │ │ │ - :param data_stream: Alternatively, a stream of bytes (such as a File object) │ │ │ │ - :param data: Alternatively, a bytes object │ │ │ │ - :param file_url: Alternatively, a URL │ │ │ │ - :param file_name: How the file should be named. │ │ │ │ - :param content_type: MIME type, inferred from filename if not given │ │ │ │ - :param legacy_msg_id: If you want to be able to transport read markers from the gateway │ │ │ │ - user to the legacy network, specify this │ │ │ │ - :param reply_to: Quote another message (:xep:`0461`) │ │ │ │ - :param when: when the file was sent, for a "delay" tag (:xep:`0203`) │ │ │ │ - :param caption: an optional text that is linked to the file │ │ │ │ - :param legacy_file_id: A unique identifier for the file on the legacy network. │ │ │ │ - Plugins should try their best to provide it, to avoid duplicates. │ │ │ │ - :param thread: │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: ack(legacy_msg_id, **kwargs) │ │ │ │ - │ │ │ │ - Send an "acknowledged" message marker (:xep:`0333`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param legacy_msg_id: The message this marker refers to │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: received(legacy_msg_id, **kwargs) │ │ │ │ - │ │ │ │ - Send a "received" message marker (:xep:`0333`) from this :term:`XMPP Entity`. │ │ │ │ - If called on a :class:`LegacyContact`, also send a delivery receipt │ │ │ │ - marker (:xep:`0184`). │ │ │ │ - │ │ │ │ - :param legacy_msg_id: The message this marker refers to │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: displayed(legacy_msg_id, **kwargs) │ │ │ │ - │ │ │ │ - Send a "displayed" message marker (:xep:`0333`) from this :term:`XMPP Entity`. │ │ │ │ - │ │ │ │ - :param legacy_msg_id: The message this marker refers to │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: online(status = None, last_seen = None) │ │ │ │ - │ │ │ │ - Send an "online" presence from this contact to the user. │ │ │ │ - │ │ │ │ - :param status: Arbitrary text, details of the status, eg: "Listening to Britney Spears" │ │ │ │ - :param last_seen: For :xep:`0319` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: away(status = None, last_seen = None) │ │ │ │ - │ │ │ │ - Send an "away" presence from this contact to the user. │ │ │ │ - │ │ │ │ - This is a global status, as opposed to :meth:`.LegacyContact.inactive` │ │ │ │ - which concerns a specific conversation, ie a specific "chat window" │ │ │ │ - │ │ │ │ - :param status: Arbitrary text, details of the status, eg: "Gone to fight capitalism" │ │ │ │ - :param last_seen: For :xep:`0319` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: extended_away(status = None, last_seen = None) │ │ │ │ - │ │ │ │ - Send an "extended away" presence from this contact to the user. │ │ │ │ - │ │ │ │ - This is a global status, as opposed to :meth:`.LegacyContact.inactive` │ │ │ │ - which concerns a specific conversation, ie a specific "chat window" │ │ │ │ - │ │ │ │ - :param status: Arbitrary text, details of the status, eg: "Gone to fight capitalism" │ │ │ │ - :param last_seen: For :xep:`0319` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: busy(status = None, last_seen = None) │ │ │ │ - │ │ │ │ - Send a "busy" (ie, "dnd") presence from this contact to the user, │ │ │ │ - │ │ │ │ - :param status: eg: "Trying to make sense of XEP-0100" │ │ │ │ - :param last_seen: For :xep:`0319` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: offline(status = None, last_seen = None) │ │ │ │ - │ │ │ │ - Send an "offline" presence from this contact to the user. │ │ │ │ - │ │ │ │ - :param status: eg: "Trying to make sense of XEP-0100" │ │ │ │ - :param last_seen: For :xep:`0319` │ │ │ │ - │ │ │ │ - │ │ │ │ - .. py:method:: available_emojis(legacy_msg_id = None) │ │ │ │ - :async: │ │ │ │ - │ │ │ │ - Override this to restrict the subset of reactions this recipient │ │ │ │ - can handle. │ │ │ │ - │ │ │ │ - :return: A set of emojis or None if any emoji is allowed │ │ │ │ - │ │ │ │ - │ │ │ │ │ │ │ │ .. py:class:: LegacyRoster(session) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Virtual roster of a gateway user, that allows to represent all │ │ │ ├── ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/contact/contact/index.html │ │ │ │ @@ -271,43 +271,14 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ property name#
│ │ │ │

Friendly name of the contact, as it should appear in the user’s roster

│ │ │ │
│ │ │ │ │ │ │ │ -
│ │ │ │ -
│ │ │ │ -property avatar_id: slidge.util.types.AvatarIdType | None#
│ │ │ │ -

The unique ID of this entity’s avatar.

│ │ │ │ -
│ │ │ │ -
Return type:
│ │ │ │ -

Optional[slidge.util.types.AvatarIdType]

│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -property avatar: slidge.util.types.AvatarIdType | None#
│ │ │ │ -

This property can be used to set the avatar, but │ │ │ │ -set_avatar() should be preferred because you can │ │ │ │ -provide a unique ID for the avatar for efficient caching. │ │ │ │ -Setting this is OKish in case the avatar type is a URL or a local path │ │ │ │ -that can act as a legacy ID.

│ │ │ │ -

Python’s property is abused here to maintain backwards │ │ │ │ -compatibility, but when getting it you actually get the avatar legacy │ │ │ │ -ID.

│ │ │ │ -
│ │ │ │ -
Return type:
│ │ │ │ -

Optional[slidge.util.types.AvatarIdType]

│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │
│ │ │ │
│ │ │ │ RESOURCE: str = 'slidge'#
│ │ │ │

A full JID, including a resource part is required for chat states (and maybe other stuff) │ │ │ │ to work properly. This is the name of the resource the contacts will use.

│ │ │ │
│ │ │ │ │ │ │ │ @@ -437,331 +408,14 @@ │ │ │ │ async fetch_vcard()# │ │ │ │

It the legacy network doesn’t like that you fetch too many profiles on startup, │ │ │ │ it’s also possible to fetch it here, which will be called when XMPP clients │ │ │ │ of the user request the vcard, if it hasn’t been fetched before │ │ │ │ :return:

│ │ │ │
│ │ │ │ │ │ │ │ -
│ │ │ │ -
│ │ │ │ -async set_avatar(a, avatar_unique_id=None, blocking=False, cancel=True)#
│ │ │ │ -

Set an avatar for this entity

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • a (Optional[slidge.util.types.AvatarType]) –

  • │ │ │ │ -
  • avatar_unique_id (Optional[slidge.util.types.LegacyFileIdType]) –

  • │ │ │ │ -
  • blocking

  • │ │ │ │ -
  • cancel

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
Return type:
│ │ │ │ -

None

│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -invite_to(muc, reason=None, password=None, **send_kwargs)#
│ │ │ │ -

Send an invitation to join a group (XEP-0249) from this XMPP Entity.

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • muc (slidge.group.LegacyMUC) – the muc the user is invited to

  • │ │ │ │ -
  • reason (Optional[str]) – a text explaining why the user should join this muc

  • │ │ │ │ -
  • password (Optional[str]) – maybe this will make sense later? not sure

  • │ │ │ │ -
  • send_kwargs – additional kwargs to be passed to _send() │ │ │ │ -(internal use by slidge)

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -active(**kwargs)#
│ │ │ │ -

Send an “active” chat state (XEP-0085) from this │ │ │ │ -XMPP Entity.

│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -composing(**kwargs)#
│ │ │ │ -

Send a “composing” (ie “typing notification”) chat state (XEP-0085) │ │ │ │ -from this XMPP Entity.

│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -paused(**kwargs)#
│ │ │ │ -

Send a “paused” (ie “typing paused notification”) chat state │ │ │ │ -(XEP-0085) from this XMPP Entity.

│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -inactive(**kwargs)#
│ │ │ │ -

Send an “inactive” (ie “contact has not interacted with the chat session │ │ │ │ -interface for an intermediate period of time”) chat state (XEP-0085) │ │ │ │ -from this XMPP Entity.

│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -gone(**kwargs)#
│ │ │ │ -

Send a “gone” (ie “contact has not interacted with the chat session interface, │ │ │ │ -system, or device for a relatively long period of time”) chat state │ │ │ │ -(XEP-0085) from this XMPP Entity.

│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -send_text(body, legacy_msg_id=None, *, when=None, reply_to=None, thread=None, hints=None, carbon=False, archive_only=False, correction=False, correction_event_id=None, link_previews=None, **send_kwargs)#
│ │ │ │ -

Send a text message from this XMPP Entity.

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • body (str) – Content of the message

  • │ │ │ │ -
  • legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) – If you want to be able to transport read markers from the gateway │ │ │ │ -user to the legacy network, specify this

  • │ │ │ │ -
  • when (Optional[datetime.datetime]) – when the message was sent, for a “delay” tag (XEP-0203)

  • │ │ │ │ -
  • reply_to (Optional[slidge.util.types.MessageReference]) – Quote another message (XEP-0461)

  • │ │ │ │ -
  • hints (Optional[Iterable[slidge.util.types.ProcessingHint]]) –

  • │ │ │ │ -
  • thread (Optional[slidge.util.types.LegacyThreadType]) –

  • │ │ │ │ -
  • carbon – (only used if called on a LegacyContact) │ │ │ │ -Set this to True if this is actually a message sent to the │ │ │ │ -LegacyContact by the User. │ │ │ │ -Use this to synchronize outgoing history for legacy official apps.

  • │ │ │ │ -
  • correction – whether this message is a correction or not

  • │ │ │ │ -
  • correction_event_id (Optional[slidge.util.types.LegacyMessageType]) – in the case where an ID is associated with the legacy │ │ │ │ -‘correction event’, specify it here to use it on the XMPP side. If not specified, │ │ │ │ -a random ID will be used.

  • │ │ │ │ -
  • link_previews (Optional[list[slidge.util.types.LinkPreview]]) – A little of sender (or server, or gateway)-generated │ │ │ │ -previews of URLs linked in the body.

  • │ │ │ │ -
  • archive_only – (only in groups) Do not send this message to user, │ │ │ │ -but store it in the archive. Meant to be used during MUC.backfill()

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -correct(legacy_msg_id, new_text, *, when=None, reply_to=None, thread=None, hints=None, carbon=False, archive_only=False, correction_event_id=None, link_previews=None, **send_kwargs)#
│ │ │ │ -

Modify a message that was previously sent by this XMPP Entity.

│ │ │ │ -

Uses last message correction (XEP-0308)

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • new_text (str) – New content of the message

  • │ │ │ │ -
  • legacy_msg_id (slidge.util.types.LegacyMessageType) – The legacy message ID of the message to correct

  • │ │ │ │ -
  • when (Optional[datetime.datetime]) – when the message was sent, for a “delay” tag (XEP-0203)

  • │ │ │ │ -
  • reply_to (Optional[slidge.util.types.MessageReference]) – Quote another message (XEP-0461)

  • │ │ │ │ -
  • hints (Optional[Iterable[slidge.util.types.ProcessingHint]]) –

  • │ │ │ │ -
  • thread (Optional[slidge.util.types.LegacyThreadType]) –

  • │ │ │ │ -
  • carbon – (only in 1:1) Reflect a message sent to this Contact by the user. │ │ │ │ -Use this to synchronize outgoing history for legacy official apps.

  • │ │ │ │ -
  • archive_only – (only in groups) Do not send this message to user, │ │ │ │ -but store it in the archive. Meant to be used during MUC.backfill()

  • │ │ │ │ -
  • correction_event_id (Optional[slidge.util.types.LegacyMessageType]) – in the case where an ID is associated with the legacy │ │ │ │ -‘correction event’, specify it here to use it on the XMPP side. If not specified, │ │ │ │ -a random ID will be used.

  • │ │ │ │ -
  • link_previews (Optional[list[slidge.util.types.LinkPreview]]) – A little of sender (or server, or gateway)-generated │ │ │ │ -previews of URLs linked in the body.

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -react(legacy_msg_id, emojis=(), thread=None, **kwargs)#
│ │ │ │ -

Send a reaction (XEP-0444) from this XMPP Entity.

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • legacy_msg_id (slidge.util.types.LegacyMessageType) – The message which the reaction refers to.

  • │ │ │ │ -
  • emojis (Iterable[str]) – An iterable of emojis used as reactions

  • │ │ │ │ -
  • thread (Optional[slidge.util.types.LegacyThreadType]) –

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -retract(legacy_msg_id, thread=None, **kwargs)#
│ │ │ │ -

Send a message retraction (XEP-0424) from this XMPP Entity.

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • legacy_msg_id (slidge.util.types.LegacyMessageType) – Legacy ID of the message to delete

  • │ │ │ │ -
  • thread (Optional[slidge.util.types.LegacyThreadType]) –

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -async send_file(file_path=None, legacy_msg_id=None, *, data_stream=None, data=None, file_url=None, file_name=None, content_type=None, reply_to=None, when=None, caption=None, legacy_file_id=None, thread=None, **kwargs)#
│ │ │ │ -

Send a single file from this XMPP Entity.

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • file_path (Optional[Union[pathlib.Path, str]]) – Path to the attachment

  • │ │ │ │ -
  • data_stream (Optional[IO[bytes]]) – Alternatively, a stream of bytes (such as a File object)

  • │ │ │ │ -
  • data (Optional[bytes]) – Alternatively, a bytes object

  • │ │ │ │ -
  • file_url (Optional[str]) – Alternatively, a URL

  • │ │ │ │ -
  • file_name (Optional[str]) – How the file should be named.

  • │ │ │ │ -
  • content_type (Optional[str]) – MIME type, inferred from filename if not given

  • │ │ │ │ -
  • legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) – If you want to be able to transport read markers from the gateway │ │ │ │ -user to the legacy network, specify this

  • │ │ │ │ -
  • reply_to (Optional[slidge.util.types.MessageReference]) – Quote another message (XEP-0461)

  • │ │ │ │ -
  • when (Optional[datetime.datetime]) – when the file was sent, for a “delay” tag (XEP-0203)

  • │ │ │ │ -
  • caption (Optional[str]) – an optional text that is linked to the file

  • │ │ │ │ -
  • legacy_file_id (Optional[Union[str, int]]) – A unique identifier for the file on the legacy network. │ │ │ │ -Plugins should try their best to provide it, to avoid duplicates.

  • │ │ │ │ -
  • thread (Optional[slidge.util.types.LegacyThreadType]) –

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
Return type:
│ │ │ │ -

tuple[Optional[str], list[slixmpp.Message]]

│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -ack(legacy_msg_id, **kwargs)#
│ │ │ │ -

Send an “acknowledged” message marker (XEP-0333) from this XMPP Entity.

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -

legacy_msg_id (slidge.util.types.LegacyMessageType) – The message this marker refers to

│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -received(legacy_msg_id, **kwargs)#
│ │ │ │ -

Send a “received” message marker (XEP-0333) from this XMPP Entity. │ │ │ │ -If called on a LegacyContact, also send a delivery receipt │ │ │ │ -marker (XEP-0184).

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -

legacy_msg_id (slidge.util.types.LegacyMessageType) – The message this marker refers to

│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -displayed(legacy_msg_id, **kwargs)#
│ │ │ │ -

Send a “displayed” message marker (XEP-0333) from this XMPP Entity.

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -

legacy_msg_id (slidge.util.types.LegacyMessageType) – The message this marker refers to

│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -online(status=None, last_seen=None)#
│ │ │ │ -

Send an “online” presence from this contact to the user.

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • status (Optional[str]) – Arbitrary text, details of the status, eg: “Listening to Britney Spears”

  • │ │ │ │ -
  • last_seen (Optional[datetime.datetime]) – For XEP-0319

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -away(status=None, last_seen=None)#
│ │ │ │ -

Send an “away” presence from this contact to the user.

│ │ │ │ -

This is a global status, as opposed to LegacyContact.inactive() │ │ │ │ -which concerns a specific conversation, ie a specific “chat window”

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • status (Optional[str]) – Arbitrary text, details of the status, eg: “Gone to fight capitalism”

  • │ │ │ │ -
  • last_seen (Optional[datetime.datetime]) – For XEP-0319

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -extended_away(status=None, last_seen=None)#
│ │ │ │ -

Send an “extended away” presence from this contact to the user.

│ │ │ │ -

This is a global status, as opposed to LegacyContact.inactive() │ │ │ │ -which concerns a specific conversation, ie a specific “chat window”

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • status (Optional[str]) – Arbitrary text, details of the status, eg: “Gone to fight capitalism”

  • │ │ │ │ -
  • last_seen (Optional[datetime.datetime]) – For XEP-0319

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -busy(status=None, last_seen=None)#
│ │ │ │ -

Send a “busy” (ie, “dnd”) presence from this contact to the user,

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • status (Optional[str]) – eg: “Trying to make sense of XEP-0100”

  • │ │ │ │ -
  • last_seen (Optional[datetime.datetime]) – For XEP-0319

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -offline(status=None, last_seen=None)#
│ │ │ │ -

Send an “offline” presence from this contact to the user.

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -
    │ │ │ │ -
  • status (Optional[str]) – eg: “Trying to make sense of XEP-0100”

  • │ │ │ │ -
  • last_seen (Optional[datetime.datetime]) – For XEP-0319

  • │ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
│ │ │ │ -async available_emojis(legacy_msg_id=None)#
│ │ │ │ -

Override this to restrict the subset of reactions this recipient │ │ │ │ -can handle.

│ │ │ │ -
│ │ │ │ -
Returns:
│ │ │ │ -

A set of emojis or None if any emoji is allowed

│ │ │ │ -
│ │ │ │ -
Parameters:
│ │ │ │ -

legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) –

│ │ │ │ -
│ │ │ │ -
Return type:
│ │ │ │ -

Optional[set[str]]

│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -802,49 +456,26 @@ │ │ │ │
│ │ │ │