{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.mmwxBbIU/b1/slidge_0.1.0-1_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.mmwxBbIU/b2/slidge_0.1.0-1_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,3 +1,3 @@\n \n- 83e56df65076af1548e48f10d065a4e0 2115660 python optional python-slidge-doc_0.1.0-1_all.deb\n+ 899c41f07f2f3aa08bf13690589e6920 2113136 python optional python-slidge-doc_0.1.0-1_all.deb\n 7eda4aa03806b6edc9aeeda7a0406c27 109436 python optional python3-slidge_0.1.0-1_all.deb\n"}, {"source1": "python-slidge-doc_0.1.0-1_all.deb", "source2": "python-slidge-doc_0.1.0-1_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2024-04-09 06:27:33.000000 debian-binary\n--rw-r--r-- 0 0 0 5776 2024-04-09 06:27:33.000000 control.tar.xz\n--rw-r--r-- 0 0 0 2109692 2024-04-09 06:27:33.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 5768 2024-04-09 06:27:33.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 2107176 2024-04-09 06:27:33.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./control", "source2": "./control", "unified_diff": "@@ -1,13 +1,13 @@\n Package: python-slidge-doc\n Source: slidge\n Version: 0.1.0-1\n Architecture: all\n Maintainer: Debian XMPP Maintainers \n-Installed-Size: 7180\n+Installed-Size: 6951\n Depends: libjs-sphinxdoc (>= 7.2.2)\n Section: python\n Priority: optional\n Multi-Arch: foreign\n Homepage: https://slidge.im/\n Description: XMPP puppeteer gateway library in Python (documentation)\n Slidge makes writing gateways to other chat networks (legacy modules)\n"}, {"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -29,15 +29,15 @@\n 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/\n 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/__main__/\n -rw-r--r-- 0 root (0) root (0) 1075 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/__main__/index.rst.txt\n 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/\n 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/adhoc/\n -rw-r--r-- 0 root (0) root (0) 900 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/adhoc/index.rst.txt\n 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/admin/\n--rw-r--r-- 0 root (0) root (0) 111 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/admin/index.rst.txt\n+-rw-r--r-- 0 root (0) root (0) 6583 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/admin/index.rst.txt\n 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/base/\n -rw-r--r-- 0 root (0) root (0) 7474 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/base/index.rst.txt\n 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/categories/\n -rw-r--r-- 0 root (0) root (0) 126 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/categories/index.rst.txt\n 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/chat_command/\n -rw-r--r-- 0 root (0) root (0) 132 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/chat_command/index.rst.txt\n -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\n@@ -54,22 +54,22 @@\n 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/\n 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/\n -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\n 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/\n -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\n 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/gateway/\n 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/gateway/base/\n--rw-r--r-- 0 root (0) root (0) 16580 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/base/index.rst.txt\n+-rw-r--r-- 0 root (0) root (0) 9925 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/base/index.rst.txt\n 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/gateway/caps/\n -rw-r--r-- 0 root (0) root (0) 123 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/caps/index.rst.txt\n 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/gateway/delivery_receipt/\n -rw-r--r-- 0 root (0) root (0) 348 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/delivery_receipt/index.rst.txt\n 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/gateway/disco/\n -rw-r--r-- 0 root (0) root (0) 126 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/disco/index.rst.txt\n--rw-r--r-- 0 root (0) root (0) 16575 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/index.rst.txt\n+-rw-r--r-- 0 root (0) root (0) 9920 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/index.rst.txt\n 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/gateway/mam/\n -rw-r--r-- 0 root (0) root (0) 120 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/mam/index.rst.txt\n 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/gateway/muc_admin/\n -rw-r--r-- 0 root (0) root (0) 138 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/muc_admin/index.rst.txt\n 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/gateway/ping/\n -rw-r--r-- 0 root (0) root (0) 123 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/ping/index.rst.txt\n 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/gateway/presence/\n@@ -108,20 +108,20 @@\n 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/session/\n -rw-r--r-- 0 root (0) root (0) 13578 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/session/index.rst.txt\n 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/group/\n 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/group/archive/\n -rw-r--r-- 0 root (0) root (0) 372 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/archive/index.rst.txt\n 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/group/bookmarks/\n -rw-r--r-- 0 root (0) root (0) 1181 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/bookmarks/index.rst.txt\n--rw-r--r-- 0 root (0) root (0) 21516 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt\n+-rw-r--r-- 0 root (0) root (0) 12180 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt\n 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/group/participant/\n--rw-r--r-- 0 root (0) root (0) 9383 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/participant/index.rst.txt\n+-rw-r--r-- 0 root (0) root (0) 1184 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/participant/index.rst.txt\n 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/group/room/\n--rw-r--r-- 0 root (0) root (0) 10865 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/room/index.rst.txt\n--rw-r--r-- 0 root (0) root (0) 30373 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/index.rst.txt\n+-rw-r--r-- 0 root (0) root (0) 9728 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/room/index.rst.txt\n+-rw-r--r-- 0 root (0) root (0) 23718 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/index.rst.txt\n 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/migration/\n -rw-r--r-- 0 root (0) root (0) 99 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/migration/index.rst.txt\n 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/slixfix/\n -rw-r--r-- 0 root (0) root (0) 528 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/slixfix/index.rst.txt\n 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/slixfix/link_preview/\n -rw-r--r-- 0 root (0) root (0) 132 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/slixfix/link_preview/index.rst.txt\n 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/slixfix/link_preview/link_preview/\n@@ -207,15 +207,15 @@\n 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/\n 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/__main__/\n -rw-r--r-- 0 root (0) root (0) 23617 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/__main__/index.html\n 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/\n 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/adhoc/\n -rw-r--r-- 0 root (0) root (0) 26218 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/adhoc/index.html\n 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/admin/\n--rw-r--r-- 0 root (0) root (0) 19934 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/admin/index.html\n+-rw-r--r-- 0 root (0) root (0) 59272 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/admin/index.html\n 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/base/\n -rw-r--r-- 0 root (0) root (0) 71395 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/base/index.html\n 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/categories/\n -rw-r--r-- 0 root (0) root (0) 19974 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/categories/index.html\n 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/chat_command/\n -rw-r--r-- 0 root (0) root (0) 19990 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/chat_command/index.html\n -rw-r--r-- 0 root (0) root (0) 65697 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/index.html\n@@ -232,22 +232,22 @@\n 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/\n 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/\n -rw-r--r-- 0 root (0) root (0) 21698 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/cache/index.html\n 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/\n -rw-r--r-- 0 root (0) root (0) 19940 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/config/index.html\n 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/gateway/\n 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/gateway/base/\n--rw-r--r-- 0 root (0) root (0) 99916 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/gateway/base/index.html\n+-rw-r--r-- 0 root (0) root (0) 64178 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/gateway/base/index.html\n 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/gateway/caps/\n -rw-r--r-- 0 root (0) root (0) 20117 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/gateway/caps/index.html\n 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/gateway/delivery_receipt/\n -rw-r--r-- 0 root (0) root (0) 20387 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/gateway/delivery_receipt/index.html\n 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/gateway/disco/\n -rw-r--r-- 0 root (0) root (0) 20125 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/gateway/disco/index.html\n--rw-r--r-- 0 root (0) root (0) 99471 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/gateway/index.html\n+-rw-r--r-- 0 root (0) root (0) 64024 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/gateway/index.html\n 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/gateway/mam/\n -rw-r--r-- 0 root (0) root (0) 20109 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/gateway/mam/index.html\n 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/gateway/muc_admin/\n -rw-r--r-- 0 root (0) root (0) 20157 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/gateway/muc_admin/index.html\n 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/gateway/ping/\n -rw-r--r-- 0 root (0) root (0) 20117 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/gateway/ping/index.html\n 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/gateway/presence/\n@@ -280,26 +280,26 @@\n 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/\n -rw-r--r-- 0 root (0) root (0) 20141 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/mixins/presence/index.html\n 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/\n -rw-r--r-- 0 root (0) root (0) 20149 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/mixins/recipient/index.html\n 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/\n -rw-r--r-- 0 root (0) root (0) 19940 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/pubsub/index.html\n 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/\n--rw-r--r-- 0 root (0) root (0) 85784 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/session/index.html\n+-rw-r--r-- 0 root (0) root (0) 85630 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/core/session/index.html\n 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/\n 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/\n -rw-r--r-- 0 root (0) root (0) 22465 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/archive/index.html\n 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/\n -rw-r--r-- 0 root (0) root (0) 27172 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/bookmarks/index.html\n--rw-r--r-- 0 root (0) root (0) 125658 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/index.html\n+-rw-r--r-- 0 root (0) root (0) 73476 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/index.html\n 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/\n--rw-r--r-- 0 root (0) root (0) 73378 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/participant/index.html\n+-rw-r--r-- 0 root (0) root (0) 27413 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/participant/index.html\n 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/\n--rw-r--r-- 0 root (0) root (0) 64737 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/room/index.html\n--rw-r--r-- 0 root (0) root (0) 164339 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html\n+-rw-r--r-- 0 root (0) root (0) 57705 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/group/room/index.html\n+-rw-r--r-- 0 root (0) root (0) 129470 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/index.html\n 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/\n -rw-r--r-- 0 root (0) root (0) 19795 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/migration/index.html\n 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/\n -rw-r--r-- 0 root (0) root (0) 22526 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/slixfix/index.html\n 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/\n -rw-r--r-- 0 root (0) root (0) 20012 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/slixfix/link_preview/index.html\n 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/\n@@ -324,36 +324,36 @@\n -rw-r--r-- 0 root (0) root (0) 73993 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/util/types/index.html\n 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/\n -rw-r--r-- 0 root (0) root (0) 52489 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/slidge/util/util/index.html\n 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/\n 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/\n -rw-r--r-- 0 root (0) root (0) 101950 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/contact/index.html\n 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/\n--rw-r--r-- 0 root (0) root (0) 80927 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/gateway/index.html\n+-rw-r--r-- 0 root (0) root (0) 80742 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/gateway/index.html\n 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/\n--rw-r--r-- 0 root (0) root (0) 122119 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html\n+-rw-r--r-- 0 root (0) root (0) 121810 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/group/index.html\n -rw-r--r-- 0 root (0) root (0) 22158 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/index.html\n 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/\n -rw-r--r-- 0 root (0) root (0) 19853 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/legacy_client/index.html\n 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/\n--rw-r--r-- 0 root (0) root (0) 86302 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html\n+-rw-r--r-- 0 root (0) root (0) 86141 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/session/index.html\n 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/\n -rw-r--r-- 0 root (0) root (0) 19781 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/api/superduper/util/index.html\n -rw-r--r-- 0 root (0) root (0) 26021 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/contributing.html\n -rw-r--r-- 0 root (0) root (0) 28801 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/design.html\n -rw-r--r-- 0 root (0) root (0) 20354 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/howto.html\n -rw-r--r-- 0 root (0) root (0) 22756 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/index.html\n -rw-r--r-- 0 root (0) root (0) 36954 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/dev/tutorial.html\n--rw-r--r-- 0 root (0) root (0) 220583 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/genindex.html\n+-rw-r--r-- 0 root (0) root (0) 212150 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/genindex.html\n -rw-r--r-- 0 root (0) root (0) 24821 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/glossary.html\n--rw-r--r-- 0 root (0) root (0) 110283 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/index.html\n--rw-r--r-- 0 root (0) root (0) 11260 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/objects.inv\n+-rw-r--r-- 0 root (0) root (0) 101668 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/index.html\n+-rw-r--r-- 0 root (0) root (0) 11033 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/objects.inv\n -rw-r--r-- 0 root (0) root (0) 35253 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/py-modindex.html\n -rw-r--r-- 0 root (0) root (0) 19143 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/search.html\n--rw-r--r-- 0 root (0) root (0) 251642 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/searchindex.js\n+-rw-r--r-- 0 root (0) root (0) 242149 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/searchindex.js\n drwxr-xr-x 0 root (0) root (0) 0 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/\n -rw-r--r-- 0 root (0) root (0) 24221 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/commands.html\n -rw-r--r-- 0 root (0) root (0) 22065 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/contacts.html\n -rw-r--r-- 0 root (0) root (0) 24282 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/index.html\n -rw-r--r-- 0 root (0) root (0) 21406 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/low_profile.html\n -rw-r--r-- 0 root (0) root (0) 20280 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/note.html\n -rw-r--r-- 0 root (0) root (0) 24458 2024-04-09 06:27:33.000000 ./usr/share/doc/python-slidge-doc/html/user/register.html\n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/admin/index.rst.txt", "source2": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/command/admin/index.rst.txt", "unified_diff": "@@ -2,7 +2,283 @@\n \n :py:mod:`slidge.command.admin`\n ==============================\n \n .. py:module:: slidge.command.admin\n \n \n+Module Contents\n+---------------\n+\n+Classes\n+~~~~~~~\n+\n+.. autoapisummary::\n+\n+ slidge.command.admin.AdminCommand\n+ slidge.command.admin.ListUsers\n+ slidge.command.admin.SlidgeInfo\n+ slidge.command.admin.DeleteUser\n+ slidge.command.admin.ChangeLoglevel\n+ slidge.command.admin.Exec\n+\n+\n+\n+\n+.. py:class:: AdminCommand(xmpp)\n+\n+\n+\n+\n+ Abstract base class to implement gateway commands (chatbot and ad-hoc)\n+\n+ .. py:attribute:: NAME\n+ :type: str\n+\n+ Friendly name of the command, eg: \"do something with stuff\"\n+\n+\n+ .. py:attribute:: HELP\n+ :type: str\n+\n+ Long description of what the command does\n+\n+\n+ .. py:attribute:: NODE\n+ :type: str\n+\n+ Name of the node used for ad-hoc commands\n+\n+\n+ .. py:attribute:: CHAT_COMMAND\n+ :type: str\n+\n+ Text to send to the gateway to trigger the command via a message\n+\n+\n+ .. py:method:: run(session, ifrom, *args)\n+ :async:\n+\n+ Entry point of the command\n+\n+ :param session: If triggered by a registered user, its slidge Session\n+ :param ifrom: JID of the command-triggering entity\n+ :param args: When triggered via chatbot type message, additional words\n+ after the CHAT_COMMAND string was passed\n+\n+ :return: Either a TableResult, a Form, a Confirmation, a text, or None\n+\n+\n+ .. py:method:: raise_if_not_authorized(jid)\n+\n+ Raise an appropriate error is jid is not authorized to use the command\n+\n+ :param jid: jid of the entity trying to access the command\n+ :return:session of JID if it exists\n+\n+\n+\n+.. py:class:: ListUsers(xmpp)\n+\n+\n+\n+\n+ Abstract base class to implement gateway commands (chatbot and ad-hoc)\n+\n+ .. py:attribute:: NODE\n+ :type: str\n+\n+ Name of the node used for ad-hoc commands\n+\n+\n+ .. py:attribute:: CHAT_COMMAND\n+ :type: str\n+\n+ Text to send to the gateway to trigger the command via a message\n+\n+\n+ .. py:method:: run(_session, _ifrom, *_)\n+ :async:\n+\n+ Entry point of the command\n+\n+ :param session: If triggered by a registered user, its slidge Session\n+ :param ifrom: JID of the command-triggering entity\n+ :param args: When triggered via chatbot type message, additional words\n+ after the CHAT_COMMAND string was passed\n+\n+ :return: Either a TableResult, a Form, a Confirmation, a text, or None\n+\n+\n+ .. py:method:: raise_if_not_authorized(jid)\n+\n+ Raise an appropriate error is jid is not authorized to use the command\n+\n+ :param jid: jid of the entity trying to access the command\n+ :return:session of JID if it exists\n+\n+\n+\n+.. py:class:: SlidgeInfo(xmpp)\n+\n+\n+\n+\n+ Abstract base class to implement gateway commands (chatbot and ad-hoc)\n+\n+ .. py:attribute:: NODE\n+ :type: str\n+\n+ Name of the node used for ad-hoc commands\n+\n+\n+ .. py:attribute:: CHAT_COMMAND\n+ :type: str\n+\n+ Text to send to the gateway to trigger the command via a message\n+\n+\n+ .. py:method:: run(_session, _ifrom, *_)\n+ :async:\n+\n+ Entry point of the command\n+\n+ :param session: If triggered by a registered user, its slidge Session\n+ :param ifrom: JID of the command-triggering entity\n+ :param args: When triggered via chatbot type message, additional words\n+ after the CHAT_COMMAND string was passed\n+\n+ :return: Either a TableResult, a Form, a Confirmation, a text, or None\n+\n+\n+ .. py:method:: raise_if_not_authorized(jid)\n+\n+ Raise an appropriate error is jid is not authorized to use the command\n+\n+ :param jid: jid of the entity trying to access the command\n+ :return:session of JID if it exists\n+\n+\n+\n+.. py:class:: DeleteUser(xmpp)\n+\n+\n+\n+\n+ Abstract base class to implement gateway commands (chatbot and ad-hoc)\n+\n+ .. py:attribute:: NODE\n+ :type: str\n+\n+ Name of the node used for ad-hoc commands\n+\n+\n+ .. py:attribute:: CHAT_COMMAND\n+ :type: str\n+\n+ Text to send to the gateway to trigger the command via a message\n+\n+\n+ .. py:method:: run(_session, _ifrom, *_)\n+ :async:\n+\n+ Entry point of the command\n+\n+ :param session: If triggered by a registered user, its slidge Session\n+ :param ifrom: JID of the command-triggering entity\n+ :param args: When triggered via chatbot type message, additional words\n+ after the CHAT_COMMAND string was passed\n+\n+ :return: Either a TableResult, a Form, a Confirmation, a text, or None\n+\n+\n+ .. py:method:: raise_if_not_authorized(jid)\n+\n+ Raise an appropriate error is jid is not authorized to use the command\n+\n+ :param jid: jid of the entity trying to access the command\n+ :return:session of JID if it exists\n+\n+\n+\n+.. py:class:: ChangeLoglevel(xmpp)\n+\n+\n+\n+\n+ Abstract base class to implement gateway commands (chatbot and ad-hoc)\n+\n+ .. py:attribute:: NODE\n+ :type: str\n+\n+ Name of the node used for ad-hoc commands\n+\n+\n+ .. py:attribute:: CHAT_COMMAND\n+ :type: str\n+\n+ Text to send to the gateway to trigger the command via a message\n+\n+\n+ .. py:method:: run(_session, _ifrom, *_)\n+ :async:\n+\n+ Entry point of the command\n+\n+ :param session: If triggered by a registered user, its slidge Session\n+ :param ifrom: JID of the command-triggering entity\n+ :param args: When triggered via chatbot type message, additional words\n+ after the CHAT_COMMAND string was passed\n+\n+ :return: Either a TableResult, a Form, a Confirmation, a text, or None\n+\n+\n+ .. py:method:: raise_if_not_authorized(jid)\n+\n+ Raise an appropriate error is jid is not authorized to use the command\n+\n+ :param jid: jid of the entity trying to access the command\n+ :return:session of JID if it exists\n+\n+\n+\n+.. py:class:: Exec(xmpp)\n+\n+\n+\n+\n+ Abstract base class to implement gateway commands (chatbot and ad-hoc)\n+\n+ .. py:attribute:: NAME\n+ :type: str\n+\n+ Friendly name of the command, eg: \"do something with stuff\"\n+\n+\n+ .. py:attribute:: HELP\n+ :type: str\n+\n+ Long description of what the command does\n+\n+\n+ .. py:method:: run(session, ifrom, *args)\n+ :async:\n+\n+ Entry point of the command\n+\n+ :param session: If triggered by a registered user, its slidge Session\n+ :param ifrom: JID of the command-triggering entity\n+ :param args: When triggered via chatbot type message, additional words\n+ after the CHAT_COMMAND string was passed\n+\n+ :return: Either a TableResult, a Form, a Confirmation, a text, or None\n+\n+\n+ .. py:method:: raise_if_not_authorized(jid)\n+\n+ Raise an appropriate error is jid is not authorized to use the command\n+\n+ :param jid: jid of the entity trying to access the command\n+ :return:session of JID if it exists\n+\n+\n+\n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/base/index.rst.txt", "source2": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/base/index.rst.txt", "unified_diff": "@@ -289,160 +289,8 @@\n \n :param text: The text that will be converted to a QR Code\n :param msg_kwargs: Optional additional arguments to pass to\n :meth:`.BaseGateway.send_file`, such as the recipient of the QR,\n code\n \n \n- .. py:method:: invite_to(muc, reason = None, password = None, **send_kwargs)\n-\n- Send an invitation to join a group (:xep:`0249`) from this :term:`XMPP Entity`.\n-\n- :param muc: the muc the user is invited to\n- :param reason: a text explaining why the user should join this muc\n- :param password: maybe this will make sense later? not sure\n- :param send_kwargs: additional kwargs to be passed to _send()\n- (internal use by slidge)\n-\n-\n- .. py:method:: active(**kwargs)\n-\n- Send an \"active\" chat state (:xep:`0085`) from this\n- :term:`XMPP Entity`.\n-\n-\n- .. py:method:: composing(**kwargs)\n-\n- Send a \"composing\" (ie \"typing notification\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: paused(**kwargs)\n-\n- Send a \"paused\" (ie \"typing paused notification\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: inactive(**kwargs)\n-\n- Send an \"inactive\" (ie \"contact has not interacted with the chat session\n- interface for an intermediate period of time\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: gone(**kwargs)\n-\n- Send a \"gone\" (ie \"contact has not interacted with the chat session interface,\n- system, or device for a relatively long period of time\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: ack(legacy_msg_id, **kwargs)\n-\n- Send an \"acknowledged\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. py:method:: received(legacy_msg_id, **kwargs)\n-\n- Send a \"received\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n- If called on a :class:`LegacyContact`, also send a delivery receipt\n- marker (:xep:`0184`).\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. py:method:: displayed(legacy_msg_id, **kwargs)\n-\n- Send a \"displayed\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. 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)\n-\n- Send a text message from this :term:`XMPP Entity`.\n-\n- :param body: Content of the message\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only used if called on a :class:`LegacyContact`)\n- Set this to ``True`` if this is actually a message sent **to** the\n- :class:`LegacyContact` by the :term:`User`.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param correction: whether this message is a correction or not\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n-\n-\n- .. 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)\n-\n- Modify a message that was previously sent by this :term:`XMPP Entity`.\n-\n- Uses last message correction (:xep:`0308`)\n-\n- :param new_text: New content of the message\n- :param legacy_msg_id: The legacy message ID of the message to correct\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only in 1:1) Reflect a message sent to this ``Contact`` by the user.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n-\n-\n- .. py:method:: react(legacy_msg_id, emojis = (), thread = None, **kwargs)\n-\n- Send a reaction (:xep:`0444`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message which the reaction refers to.\n- :param emojis: An iterable of emojis used as reactions\n- :param thread:\n-\n-\n- .. py:method:: retract(legacy_msg_id, thread = None, **kwargs)\n-\n- Send a message retraction (:XEP:`0424`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: Legacy ID of the message to delete\n- :param thread:\n-\n-\n- .. 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)\n- :async:\n-\n- Send a single file from this :term:`XMPP Entity`.\n-\n- :param file_path: Path to the attachment\n- :param data_stream: Alternatively, a stream of bytes (such as a File object)\n- :param data: Alternatively, a bytes object\n- :param file_url: Alternatively, a URL\n- :param file_name: How the file should be named.\n- :param content_type: MIME type, inferred from filename if not given\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param when: when the file was sent, for a \"delay\" tag (:xep:`0203`)\n- :param caption: an optional text that is linked to the file\n- :param legacy_file_id: A unique identifier for the file on the legacy network.\n- Plugins should try their best to provide it, to avoid duplicates.\n- :param thread:\n-\n-\n \n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/index.rst.txt", "source2": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/core/gateway/index.rst.txt", "unified_diff": "@@ -296,160 +296,8 @@\n \n :param text: The text that will be converted to a QR Code\n :param msg_kwargs: Optional additional arguments to pass to\n :meth:`.BaseGateway.send_file`, such as the recipient of the QR,\n code\n \n \n- .. py:method:: invite_to(muc, reason = None, password = None, **send_kwargs)\n-\n- Send an invitation to join a group (:xep:`0249`) from this :term:`XMPP Entity`.\n-\n- :param muc: the muc the user is invited to\n- :param reason: a text explaining why the user should join this muc\n- :param password: maybe this will make sense later? not sure\n- :param send_kwargs: additional kwargs to be passed to _send()\n- (internal use by slidge)\n-\n-\n- .. py:method:: active(**kwargs)\n-\n- Send an \"active\" chat state (:xep:`0085`) from this\n- :term:`XMPP Entity`.\n-\n-\n- .. py:method:: composing(**kwargs)\n-\n- Send a \"composing\" (ie \"typing notification\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: paused(**kwargs)\n-\n- Send a \"paused\" (ie \"typing paused notification\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: inactive(**kwargs)\n-\n- Send an \"inactive\" (ie \"contact has not interacted with the chat session\n- interface for an intermediate period of time\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: gone(**kwargs)\n-\n- Send a \"gone\" (ie \"contact has not interacted with the chat session interface,\n- system, or device for a relatively long period of time\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: ack(legacy_msg_id, **kwargs)\n-\n- Send an \"acknowledged\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. py:method:: received(legacy_msg_id, **kwargs)\n-\n- Send a \"received\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n- If called on a :class:`LegacyContact`, also send a delivery receipt\n- marker (:xep:`0184`).\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. py:method:: displayed(legacy_msg_id, **kwargs)\n-\n- Send a \"displayed\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. 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)\n-\n- Send a text message from this :term:`XMPP Entity`.\n-\n- :param body: Content of the message\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only used if called on a :class:`LegacyContact`)\n- Set this to ``True`` if this is actually a message sent **to** the\n- :class:`LegacyContact` by the :term:`User`.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param correction: whether this message is a correction or not\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n-\n-\n- .. 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)\n-\n- Modify a message that was previously sent by this :term:`XMPP Entity`.\n-\n- Uses last message correction (:xep:`0308`)\n-\n- :param new_text: New content of the message\n- :param legacy_msg_id: The legacy message ID of the message to correct\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only in 1:1) Reflect a message sent to this ``Contact`` by the user.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n-\n-\n- .. py:method:: react(legacy_msg_id, emojis = (), thread = None, **kwargs)\n-\n- Send a reaction (:xep:`0444`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message which the reaction refers to.\n- :param emojis: An iterable of emojis used as reactions\n- :param thread:\n-\n-\n- .. py:method:: retract(legacy_msg_id, thread = None, **kwargs)\n-\n- Send a message retraction (:XEP:`0424`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: Legacy ID of the message to delete\n- :param thread:\n-\n-\n- .. 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)\n- :async:\n-\n- Send a single file from this :term:`XMPP Entity`.\n-\n- :param file_path: Path to the attachment\n- :param data_stream: Alternatively, a stream of bytes (such as a File object)\n- :param data: Alternatively, a bytes object\n- :param file_url: Alternatively, a URL\n- :param file_name: How the file should be named.\n- :param content_type: MIME type, inferred from filename if not given\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param when: when the file was sent, for a \"delay\" tag (:xep:`0203`)\n- :param caption: an optional text that is linked to the file\n- :param legacy_file_id: A unique identifier for the file on the legacy network.\n- Plugins should try their best to provide it, to avoid duplicates.\n- :param thread:\n-\n-\n \n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt", "source2": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/index.rst.txt", "unified_diff": "@@ -123,243 +123,25 @@\n \n \n .. py:method:: ban()\n \n Call this when the participant is banned from the room\n \n \n- .. py:method:: online(status = None, last_seen = None)\n-\n- Send an \"online\" presence from this contact to the user.\n-\n- :param status: Arbitrary text, details of the status, eg: \"Listening to Britney Spears\"\n- :param last_seen: For :xep:`0319`\n-\n-\n- .. py:method:: away(status = None, last_seen = None)\n-\n- Send an \"away\" presence from this contact to the user.\n-\n- This is a global status, as opposed to :meth:`.LegacyContact.inactive`\n- which concerns a specific conversation, ie a specific \"chat window\"\n-\n- :param status: Arbitrary text, details of the status, eg: \"Gone to fight capitalism\"\n- :param last_seen: For :xep:`0319`\n-\n-\n- .. py:method:: extended_away(status = None, last_seen = None)\n-\n- Send an \"extended away\" presence from this contact to the user.\n-\n- This is a global status, as opposed to :meth:`.LegacyContact.inactive`\n- which concerns a specific conversation, ie a specific \"chat window\"\n-\n- :param status: Arbitrary text, details of the status, eg: \"Gone to fight capitalism\"\n- :param last_seen: For :xep:`0319`\n-\n-\n- .. py:method:: busy(status = None, last_seen = None)\n-\n- Send a \"busy\" (ie, \"dnd\") presence from this contact to the user,\n-\n- :param status: eg: \"Trying to make sense of XEP-0100\"\n- :param last_seen: For :xep:`0319`\n-\n-\n- .. py:method:: offline(status = None, last_seen = None)\n-\n- Send an \"offline\" presence from this contact to the user.\n-\n- :param status: eg: \"Trying to make sense of XEP-0100\"\n- :param last_seen: For :xep:`0319`\n-\n-\n- .. py:method:: invite_to(muc, reason = None, password = None, **send_kwargs)\n-\n- Send an invitation to join a group (:xep:`0249`) from this :term:`XMPP Entity`.\n-\n- :param muc: the muc the user is invited to\n- :param reason: a text explaining why the user should join this muc\n- :param password: maybe this will make sense later? not sure\n- :param send_kwargs: additional kwargs to be passed to _send()\n- (internal use by slidge)\n-\n-\n- .. py:method:: active(**kwargs)\n-\n- Send an \"active\" chat state (:xep:`0085`) from this\n- :term:`XMPP Entity`.\n-\n-\n- .. py:method:: composing(**kwargs)\n-\n- Send a \"composing\" (ie \"typing notification\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: paused(**kwargs)\n-\n- Send a \"paused\" (ie \"typing paused notification\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: inactive(**kwargs)\n-\n- Send an \"inactive\" (ie \"contact has not interacted with the chat session\n- interface for an intermediate period of time\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: gone(**kwargs)\n-\n- Send a \"gone\" (ie \"contact has not interacted with the chat session interface,\n- system, or device for a relatively long period of time\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: ack(legacy_msg_id, **kwargs)\n-\n- Send an \"acknowledged\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. py:method:: received(legacy_msg_id, **kwargs)\n-\n- Send a \"received\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n- If called on a :class:`LegacyContact`, also send a delivery receipt\n- marker (:xep:`0184`).\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. py:method:: displayed(legacy_msg_id, **kwargs)\n-\n- Send a \"displayed\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. 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)\n-\n- Send a text message from this :term:`XMPP Entity`.\n-\n- :param body: Content of the message\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only used if called on a :class:`LegacyContact`)\n- Set this to ``True`` if this is actually a message sent **to** the\n- :class:`LegacyContact` by the :term:`User`.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param correction: whether this message is a correction or not\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n-\n-\n- .. 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)\n-\n- Modify a message that was previously sent by this :term:`XMPP Entity`.\n-\n- Uses last message correction (:xep:`0308`)\n-\n- :param new_text: New content of the message\n- :param legacy_msg_id: The legacy message ID of the message to correct\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only in 1:1) Reflect a message sent to this ``Contact`` by the user.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n-\n-\n- .. py:method:: react(legacy_msg_id, emojis = (), thread = None, **kwargs)\n-\n- Send a reaction (:xep:`0444`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message which the reaction refers to.\n- :param emojis: An iterable of emojis used as reactions\n- :param thread:\n-\n-\n- .. py:method:: retract(legacy_msg_id, thread = None, **kwargs)\n-\n- Send a message retraction (:XEP:`0424`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: Legacy ID of the message to delete\n- :param thread:\n-\n-\n- .. 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)\n- :async:\n-\n- Send a single file from this :term:`XMPP Entity`.\n-\n- :param file_path: Path to the attachment\n- :param data_stream: Alternatively, a stream of bytes (such as a File object)\n- :param data: Alternatively, a bytes object\n- :param file_url: Alternatively, a URL\n- :param file_name: How the file should be named.\n- :param content_type: MIME type, inferred from filename if not given\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param when: when the file was sent, for a \"delay\" tag (:xep:`0203`)\n- :param caption: an optional text that is linked to the file\n- :param legacy_file_id: A unique identifier for the file on the legacy network.\n- Plugins should try their best to provide it, to avoid duplicates.\n- :param thread:\n-\n-\n \n .. py:class:: LegacyMUC(session, legacy_id, jid)\n \n \n \n \n A room, a.k.a. a Multi-User Chat.\n \n MUC instances are obtained by calling :py:meth:`slidge.group.bookmarks.LegacyBookmarks`\n on the user's :py:class:`slidge.core.session.BaseSession`.\n \n- .. py:property:: avatar_id\n- :type: Optional[slidge.util.types.AvatarIdType]\n-\n- The unique ID of this entity's avatar.\n-\n-\n- .. py:property:: avatar\n- :type: Optional[slidge.util.types.AvatarIdType]\n-\n- This property can be used to set the avatar, but\n- :py:meth:`~.AvatarMixin.set_avatar()` should be preferred because you can\n- provide a unique ID for the avatar for efficient caching.\n- Setting this is OKish in case the avatar type is a URL or a local path\n- that can act as a legacy ID.\n-\n- Python's ``property`` is abused here to maintain backwards\n- compatibility, but when getting it you actually get the avatar legacy\n- ID.\n-\n-\n .. py:attribute:: STABLE_ARCHIVE\n :value: False\n \n Because legacy events like reactions, editions, etc. don't all map to a stanza\n with a proper legacy ID, slidge usually cannot guarantee the stability of the archive\n across restarts.\n \n@@ -615,28 +397,8 @@\n \n The legacy module is responsible for updating :attr:`.subject` of this\n instance.\n \n :param subject: The new subject for this room.\n \n \n- .. py:method:: set_avatar(a, avatar_unique_id = None, blocking=False, cancel=True)\n- :async:\n-\n- Set an avatar for this entity\n-\n- :param a:\n- :param avatar_unique_id:\n- :param blocking:\n- :param cancel:\n-\n-\n- .. py:method:: available_emojis(legacy_msg_id = None)\n- :async:\n-\n- Override this to restrict the subset of reactions this recipient\n- can handle.\n-\n- :return: A set of emojis or None if any emoji is allowed\n-\n-\n \n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/participant/index.rst.txt", "source2": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/participant/index.rst.txt", "unified_diff": "@@ -49,206 +49,8 @@\n \n \n .. py:method:: ban()\n \n Call this when the participant is banned from the room\n \n \n- .. py:method:: online(status = None, last_seen = None)\n-\n- Send an \"online\" presence from this contact to the user.\n-\n- :param status: Arbitrary text, details of the status, eg: \"Listening to Britney Spears\"\n- :param last_seen: For :xep:`0319`\n-\n-\n- .. py:method:: away(status = None, last_seen = None)\n-\n- Send an \"away\" presence from this contact to the user.\n-\n- This is a global status, as opposed to :meth:`.LegacyContact.inactive`\n- which concerns a specific conversation, ie a specific \"chat window\"\n-\n- :param status: Arbitrary text, details of the status, eg: \"Gone to fight capitalism\"\n- :param last_seen: For :xep:`0319`\n-\n-\n- .. py:method:: extended_away(status = None, last_seen = None)\n-\n- Send an \"extended away\" presence from this contact to the user.\n-\n- This is a global status, as opposed to :meth:`.LegacyContact.inactive`\n- which concerns a specific conversation, ie a specific \"chat window\"\n-\n- :param status: Arbitrary text, details of the status, eg: \"Gone to fight capitalism\"\n- :param last_seen: For :xep:`0319`\n-\n-\n- .. py:method:: busy(status = None, last_seen = None)\n-\n- Send a \"busy\" (ie, \"dnd\") presence from this contact to the user,\n-\n- :param status: eg: \"Trying to make sense of XEP-0100\"\n- :param last_seen: For :xep:`0319`\n-\n-\n- .. py:method:: offline(status = None, last_seen = None)\n-\n- Send an \"offline\" presence from this contact to the user.\n-\n- :param status: eg: \"Trying to make sense of XEP-0100\"\n- :param last_seen: For :xep:`0319`\n-\n-\n- .. py:method:: invite_to(muc, reason = None, password = None, **send_kwargs)\n-\n- Send an invitation to join a group (:xep:`0249`) from this :term:`XMPP Entity`.\n-\n- :param muc: the muc the user is invited to\n- :param reason: a text explaining why the user should join this muc\n- :param password: maybe this will make sense later? not sure\n- :param send_kwargs: additional kwargs to be passed to _send()\n- (internal use by slidge)\n-\n-\n- .. py:method:: active(**kwargs)\n-\n- Send an \"active\" chat state (:xep:`0085`) from this\n- :term:`XMPP Entity`.\n-\n-\n- .. py:method:: composing(**kwargs)\n-\n- Send a \"composing\" (ie \"typing notification\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: paused(**kwargs)\n-\n- Send a \"paused\" (ie \"typing paused notification\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: inactive(**kwargs)\n-\n- Send an \"inactive\" (ie \"contact has not interacted with the chat session\n- interface for an intermediate period of time\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: gone(**kwargs)\n-\n- Send a \"gone\" (ie \"contact has not interacted with the chat session interface,\n- system, or device for a relatively long period of time\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: ack(legacy_msg_id, **kwargs)\n-\n- Send an \"acknowledged\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. py:method:: received(legacy_msg_id, **kwargs)\n-\n- Send a \"received\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n- If called on a :class:`LegacyContact`, also send a delivery receipt\n- marker (:xep:`0184`).\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. py:method:: displayed(legacy_msg_id, **kwargs)\n-\n- Send a \"displayed\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. 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)\n-\n- Send a text message from this :term:`XMPP Entity`.\n-\n- :param body: Content of the message\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only used if called on a :class:`LegacyContact`)\n- Set this to ``True`` if this is actually a message sent **to** the\n- :class:`LegacyContact` by the :term:`User`.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param correction: whether this message is a correction or not\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n-\n-\n- .. 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)\n-\n- Modify a message that was previously sent by this :term:`XMPP Entity`.\n-\n- Uses last message correction (:xep:`0308`)\n-\n- :param new_text: New content of the message\n- :param legacy_msg_id: The legacy message ID of the message to correct\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only in 1:1) Reflect a message sent to this ``Contact`` by the user.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n-\n-\n- .. py:method:: react(legacy_msg_id, emojis = (), thread = None, **kwargs)\n-\n- Send a reaction (:xep:`0444`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message which the reaction refers to.\n- :param emojis: An iterable of emojis used as reactions\n- :param thread:\n-\n-\n- .. py:method:: retract(legacy_msg_id, thread = None, **kwargs)\n-\n- Send a message retraction (:XEP:`0424`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: Legacy ID of the message to delete\n- :param thread:\n-\n-\n- .. 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)\n- :async:\n-\n- Send a single file from this :term:`XMPP Entity`.\n-\n- :param file_path: Path to the attachment\n- :param data_stream: Alternatively, a stream of bytes (such as a File object)\n- :param data: Alternatively, a bytes object\n- :param file_url: Alternatively, a URL\n- :param file_name: How the file should be named.\n- :param content_type: MIME type, inferred from filename if not given\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param when: when the file was sent, for a \"delay\" tag (:xep:`0203`)\n- :param caption: an optional text that is linked to the file\n- :param legacy_file_id: A unique identifier for the file on the legacy network.\n- Plugins should try their best to provide it, to avoid duplicates.\n- :param thread:\n-\n-\n \n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/room/index.rst.txt", "source2": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/group/room/index.rst.txt", "unified_diff": "@@ -25,34 +25,14 @@\n \n \n A room, a.k.a. a Multi-User Chat.\n \n MUC instances are obtained by calling :py:meth:`slidge.group.bookmarks.LegacyBookmarks`\n on the user's :py:class:`slidge.core.session.BaseSession`.\n \n- .. py:property:: avatar_id\n- :type: Optional[slidge.util.types.AvatarIdType]\n-\n- The unique ID of this entity's avatar.\n-\n-\n- .. py:property:: avatar\n- :type: Optional[slidge.util.types.AvatarIdType]\n-\n- This property can be used to set the avatar, but\n- :py:meth:`~.AvatarMixin.set_avatar()` should be preferred because you can\n- provide a unique ID for the avatar for efficient caching.\n- Setting this is OKish in case the avatar type is a URL or a local path\n- that can act as a legacy ID.\n-\n- Python's ``property`` is abused here to maintain backwards\n- compatibility, but when getting it you actually get the avatar legacy\n- ID.\n-\n-\n .. py:attribute:: STABLE_ARCHIVE\n :value: False\n \n Because legacy events like reactions, editions, etc. don't all map to a stanza\n with a proper legacy ID, slidge usually cannot guarantee the stability of the archive\n across restarts.\n \n@@ -308,28 +288,8 @@\n \n The legacy module is responsible for updating :attr:`.subject` of this\n instance.\n \n :param subject: The new subject for this room.\n \n \n- .. py:method:: set_avatar(a, avatar_unique_id = None, blocking=False, cancel=True)\n- :async:\n-\n- Set an avatar for this entity\n-\n- :param a:\n- :param avatar_unique_id:\n- :param blocking:\n- :param cancel:\n-\n-\n- .. py:method:: available_emojis(legacy_msg_id = None)\n- :async:\n-\n- Override this to restrict the subset of reactions this recipient\n- can handle.\n-\n- :return: A set of emojis or None if any emoji is allowed\n-\n-\n \n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/index.rst.txt", "source2": "./usr/share/doc/python-slidge-doc/html/_sources/dev/api/slidge/index.rst.txt", "unified_diff": "@@ -319,166 +319,14 @@\n \n :param text: The text that will be converted to a QR Code\n :param msg_kwargs: Optional additional arguments to pass to\n :meth:`.BaseGateway.send_file`, such as the recipient of the QR,\n code\n \n \n- .. py:method:: invite_to(muc, reason = None, password = None, **send_kwargs)\n-\n- Send an invitation to join a group (:xep:`0249`) from this :term:`XMPP Entity`.\n-\n- :param muc: the muc the user is invited to\n- :param reason: a text explaining why the user should join this muc\n- :param password: maybe this will make sense later? not sure\n- :param send_kwargs: additional kwargs to be passed to _send()\n- (internal use by slidge)\n-\n-\n- .. py:method:: active(**kwargs)\n-\n- Send an \"active\" chat state (:xep:`0085`) from this\n- :term:`XMPP Entity`.\n-\n-\n- .. py:method:: composing(**kwargs)\n-\n- Send a \"composing\" (ie \"typing notification\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: paused(**kwargs)\n-\n- Send a \"paused\" (ie \"typing paused notification\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: inactive(**kwargs)\n-\n- Send an \"inactive\" (ie \"contact has not interacted with the chat session\n- interface for an intermediate period of time\") chat state (:xep:`0085`)\n- from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: gone(**kwargs)\n-\n- Send a \"gone\" (ie \"contact has not interacted with the chat session interface,\n- system, or device for a relatively long period of time\") chat state\n- (:xep:`0085`) from this :term:`XMPP Entity`.\n-\n-\n- .. py:method:: ack(legacy_msg_id, **kwargs)\n-\n- Send an \"acknowledged\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. py:method:: received(legacy_msg_id, **kwargs)\n-\n- Send a \"received\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n- If called on a :class:`LegacyContact`, also send a delivery receipt\n- marker (:xep:`0184`).\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. py:method:: displayed(legacy_msg_id, **kwargs)\n-\n- Send a \"displayed\" message marker (:xep:`0333`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message this marker refers to\n-\n-\n- .. 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)\n-\n- Send a text message from this :term:`XMPP Entity`.\n-\n- :param body: Content of the message\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only used if called on a :class:`LegacyContact`)\n- Set this to ``True`` if this is actually a message sent **to** the\n- :class:`LegacyContact` by the :term:`User`.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param correction: whether this message is a correction or not\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n-\n-\n- .. 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)\n-\n- Modify a message that was previously sent by this :term:`XMPP Entity`.\n-\n- Uses last message correction (:xep:`0308`)\n-\n- :param new_text: New content of the message\n- :param legacy_msg_id: The legacy message ID of the message to correct\n- :param when: when the message was sent, for a \"delay\" tag (:xep:`0203`)\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param hints:\n- :param thread:\n- :param carbon: (only in 1:1) Reflect a message sent to this ``Contact`` by the user.\n- Use this to synchronize outgoing history for legacy official apps.\n- :param archive_only: (only in groups) Do not send this message to user,\n- but store it in the archive. Meant to be used during ``MUC.backfill()``\n- :param correction_event_id: in the case where an ID is associated with the legacy\n- 'correction event', specify it here to use it on the XMPP side. If not specified,\n- a random ID will be used.\n- :param link_previews: A little of sender (or server, or gateway)-generated\n- previews of URLs linked in the body.\n-\n-\n- .. py:method:: react(legacy_msg_id, emojis = (), thread = None, **kwargs)\n-\n- Send a reaction (:xep:`0444`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: The message which the reaction refers to.\n- :param emojis: An iterable of emojis used as reactions\n- :param thread:\n-\n-\n- .. py:method:: retract(legacy_msg_id, thread = None, **kwargs)\n-\n- Send a message retraction (:XEP:`0424`) from this :term:`XMPP Entity`.\n-\n- :param legacy_msg_id: Legacy ID of the message to delete\n- :param thread:\n-\n-\n- .. 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)\n- :async:\n-\n- Send a single file from this :term:`XMPP Entity`.\n-\n- :param file_path: Path to the attachment\n- :param data_stream: Alternatively, a stream of bytes (such as a File object)\n- :param data: Alternatively, a bytes object\n- :param file_url: Alternatively, a URL\n- :param file_name: How the file should be named.\n- :param content_type: MIME type, inferred from filename if not given\n- :param legacy_msg_id: If you want to be able to transport read markers from the gateway\n- user to the legacy network, specify this\n- :param reply_to: Quote another message (:xep:`0461`)\n- :param when: when the file was sent, for a \"delay\" tag (:xep:`0203`)\n- :param caption: an optional text that is linked to the file\n- :param legacy_file_id: A unique identifier for the file on the legacy network.\n- Plugins should try their best to provide it, to avoid duplicates.\n- :param thread:\n-\n-\n \n .. py:class:: BaseSession(user)\n \n \n \n \n The session of a registered :term:`User`.\n"}, {"source1": "./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/admin/index.html", "source2": "./usr/share/doc/python-slidge-doc/html/dev/api/slidge/command/admin/index.html", "unified_diff": "@@ -188,15 +188,15 @@\n
Toggle Light / Dark / Auto color theme
\n \n \n \n \n \n \n-