Diff of the two buildlogs: -- --- b1/build.log 2025-11-29 07:14:23.587927413 +0000 +++ b2/build.log 2025-11-29 07:16:16.468053631 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Nov 28 19:11:10 -12 2025 -I: pbuilder-time-stamp: 1764400270 +I: Current time: Sat Jan 2 03:37:25 +14 2027 +I: pbuilder-time-stamp: 1798810645 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration @@ -27,53 +27,85 @@ dpkg-source: info: applying use-local-docs-for-intersphinx-links.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/3425042/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1375586/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Jan 1 13:37 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/1375586/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1375586/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='forky' - HOME='/root' - HOST_ARCH='arm64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 nocheck' + DIRSTACK=() + DISTRIBUTION=forky + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='a733811f9bda47ef8649f3cf48718a31' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='3425042' - PS1='# ' - PS2='> ' + INVOCATION_ID=cd2dc363f3224eee8034ef91941641f0 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=1375586 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.7MoezS9C/pbuilderrc_MTgj --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.7MoezS9C/b1 --logfile b1/build.log slidge_0.3.3-2.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.7MoezS9C/pbuilderrc_YweM --distribution forky --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.7MoezS9C/b2 --logfile b2/build.log slidge_0.3.3-2.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink04-arm64 6.12.57+deb13-cloud-arm64 #1 SMP Debian 6.12.57-1 (2025-11-05) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.57+deb13-cloud-arm64 #1 SMP Debian 6.12.57-1 (2025-11-05) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3425042/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1375586/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -354,7 +386,7 @@ Get: 195 http://deb.debian.org/debian forky/main arm64 python3-sphinx-autoapi all 3.3.3-1 [108 kB] Get: 196 http://deb.debian.org/debian forky/main arm64 python3-thumbhash all 0.1.2-3 [5408 B] Get: 197 http://deb.debian.org/debian forky/main arm64 xmldiff all 2.6.3-0.2 [109 kB] -Fetched 72.0 MB in 1s (116 MB/s) +Fetched 72.0 MB in 0s (160 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19968 files and directories currently installed.) @@ -991,8 +1023,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Nov 29 07:11:38 UTC 2025. -Universal Time is now: Sat Nov 29 07:11:38 UTC 2025. +Local time is now: Fri Jan 1 13:37:53 UTC 2027. +Universal Time is now: Fri Jan 1 13:37:53 UTC 2027. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20240727.1) ... @@ -1187,7 +1219,11 @@ Solving dependencies... 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/slidge-0.3.3/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../slidge_0.3.3-2_source.changes +I: user script /srv/workspace/pbuilder/1375586/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for forky +I: user script /srv/workspace/pbuilder/1375586/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/slidge-0.3.3/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../slidge_0.3.3-2_source.changes dpkg-buildpackage: info: source package slidge dpkg-buildpackage: info: source version 0.3.3-2 dpkg-buildpackage: info: source distribution unstable @@ -1214,8 +1250,8 @@ ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). - By 2026-Feb-18, you need to update your project and remove deprecated calls - or your builds will no longer be supported. + This deprecation is overdue, please update your project and remove deprecated + calls to avoid build errors in the future. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** @@ -1458,7 +1494,7 @@ Copying slidge.egg-info to build/bdist.linux-aarch64/wheel/./slidge-0.0.0.egg-info running install_scripts creating build/bdist.linux-aarch64/wheel/slidge-0.0.0.dist-info/WHEEL -creating '/build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/.tmp-2c_eg6hb/slidge-0.0.0-py3-none-any.whl' and adding 'build/bdist.linux-aarch64/wheel' to it +creating '/build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/.tmp-_43vhw1y/slidge-0.0.0-py3-none-any.whl' and adding 'build/bdist.linux-aarch64/wheel' to it adding 'slidge/__init__.py' adding 'slidge/__main__.py' adding 'slidge/main.py' @@ -1915,9163 +1951,7 @@ The HTML pages are in build/html. make[1]: Leaving directory '/build/reproducible-path/slidge-0.3.3' - dh_auto_test -O--buildsystem=pybuild -I: pybuild base:311: cd /build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build; python3.13 -m pytest tests -============================= test session starts ============================== -platform linux -- Python 3.13.9, pytest-8.4.2, pluggy-1.6.0 -rootdir: /build/reproducible-path/slidge-0.3.3 -configfile: pyproject.toml -plugins: asyncio-1.2.0, typeguard-4.4.4 -asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function - ------------------------------ live log collection ------------------------------ -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -DEBUG slidge.util.util:util.py:90 Setting as subclass for -collected 273 items - -tests/test_adhoc/test_access.py::TestCommandsDisco::test_category --------------------------------- live log call --------------------------------- -DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, CommandCategory(name='category', node='category')) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - category -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - - - command3 - - - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, , Form(title='category', instructions='', fields=[FormField(var='command', label='Command', required=False, private=False, type='list-single', value='', options=[{'label': 'Command number three', 'value': 'command3'}, {'label': 'Command number four', 'value': 'command4'}], image_url=None)], handler=functools.partial(>, {'command3': , 'command4': }), handler_args=[], handler_kwargs={})) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Confirm?1 -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 0%] -tests/test_adhoc/test_access.py::TestCommandsDisco::test_disco_admin --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:758 Received disco items query from to . -DEBUG slidge.command.adhoc:adhoc.py:257 Static items: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:758 Received disco items query from to . -DEBUG slidge.command.adhoc:adhoc.py:257 Static items: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 0%] -tests/test_adhoc/test_access.py::TestCommandsDisco::test_non_existing_command --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:214 Command not found: ('slidge.whatever.ass', 'non-existing'), {('slidge.whatever.ass', 'command1'): ('Command number one', functools.partial(>, ), None, 0), ('slidge.whatever.ass', 'command2'): ('Command number two', functools.partial(>, ), None, 0), ('slidge.whatever.ass', 'category'): ('category', functools.partial(>, CommandCategory(name='category', node='category')), None, 0)} -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 1%] -tests/test_adhoc/test_confirmation.py::TestCommandsConfirmation::test_confirmation_cancel --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, ) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Confirm?1 -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_cancel -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 1%] -tests/test_adhoc/test_confirmation.py::TestCommandsConfirmation::test_confirmation_do_it --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, ) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Confirm?1 -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - - - 1 - - - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_next -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, , Confirmation(prompt='Confirm?', handler=>, success='It worked!', handler_args=[], handler_kwargs={})) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - It worked! -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 1%] -tests/test_adhoc/test_confirmation.py::TestCommandsConfirmation::test_confirmation_fail --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, ) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Confirm?1 -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - - - 1 - - - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_complete -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, , Confirmation(prompt='Confirm?', handler=>, success='It worked!', handler_args=[], handler_kwargs={})) is async -DEBUG slidge.command.adhoc:adhoc.py:148 Exception in > -Traceback (most recent call last): - File "/build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build/slidge/command/adhoc.py", line 142, in __wrap_handler - return await f(*a, **k) - ^^^^^^^^^^^^^^^^ - File "/build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build/tests/test_adhoc/test_confirmation.py", line 62, in finish - raise RuntimeError("Ploup") -RuntimeError: Ploup -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Ploup -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 2%] -tests/test_adhoc/test_form.py::TestCommandsResults::test_form_bad_jid --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, ) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - A titleSome instructionsuser@host -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - - - bad@bad@bad - - - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, , Form(title='A title', instructions='Some instructions', fields=[FormField(var='jid', label='Enter a JID', required=True, private=False, type='jid-single', value='user@host', options=None, image_url=None), FormField(var='option', label=None, required=False, private=False, type='list-single', value='', options=[{'label': 'Option 1', 'value': 'option1'}, {'label': 'Option 2', 'value': 'option2'}], image_url=None)], handler=, handler_args=[], handler_kwargs={'arg1': 'argument 1'})) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Not a valid JID: 'bad@bad@bad' -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 2%] -tests/test_adhoc/test_form.py::TestCommandsResults::test_form_bad_option --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, ) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - A titleSome instructionsuser@host -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - - - value@value - - - option3 - - - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, , Form(title='A title', instructions='Some instructions', fields=[FormField(var='jid', label='Enter a JID', required=True, private=False, type='jid-single', value='user@host', options=None, image_url=None), FormField(var='option', label=None, required=False, private=False, type='list-single', value='', options=[{'label': 'Option 1', 'value': 'option1'}, {'label': 'Option 2', 'value': 'option2'}], image_url=None)], handler=, handler_args=[], handler_kwargs={'arg1': 'argument 1'})) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Not a valid option: 'option3' -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 2%] -tests/test_adhoc/test_form.py::TestCommandsResults::test_form_exc --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, ) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - A titleSome instructionsuser@host -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - - - bad@bad - - - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, , Form(title='A title', instructions='Some instructions', fields=[FormField(var='jid', label='Enter a JID', required=True, private=False, type='jid-single', value='user@host', options=None, image_url=None), FormField(var='option', label=None, required=False, private=False, type='list-single', value='', options=[{'label': 'Option 1', 'value': 'option1'}, {'label': 'Option 2', 'value': 'option2'}], image_url=None)], handler=, handler_args=[], handler_kwargs={'arg1': 'argument 1'})) is async -DEBUG slidge.command.adhoc:adhoc.py:148 Exception in -Traceback (most recent call last): - File "/build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build/slidge/command/adhoc.py", line 142, in __wrap_handler - return await f(*a, **k) - ^^^^^^^^^^^^^^^^ - File "/build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build/tests/test_adhoc/test_form.py", line 65, in finish - raise RuntimeError("IT'S BAD, WE'RE FUCKED") -RuntimeError: IT'S BAD, WE'RE FUCKED -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - IT'S BAD, WE'RE FUCKED -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 3%] -tests/test_adhoc/test_form.py::TestCommandsResults::test_form_ok --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, ) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - A titleSome instructionsuser@host -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - - - value@value - - - option1 - - - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, , Form(title='A title', instructions='Some instructions', fields=[FormField(var='jid', label='Enter a JID', required=True, private=False, type='jid-single', value='user@host', options=None, image_url=None), FormField(var='option', label=None, required=False, private=False, type='list-single', value='', options=[{'label': 'Option 1', 'value': 'option1'}, {'label': 'Option 2', 'value': 'option2'}], image_url=None)], handler=, handler_args=[], handler_kwargs={'arg1': 'argument 1'})) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - all good mate, argument 1 -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 3%] -tests/test_adhoc/test_form.py::TestCommandsResults::test_multi --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, ) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - A titleSome instructions -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - - - option1 - option2 - - - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, , Form(title='A title', instructions='Some instructions', fields=[FormField(var='str', label=None, required=False, private=False, type='list-multi', value='', options=[{'label': 'Option 1', 'value': 'option1'}, {'label': 'Option 2', 'value': 'option2'}], image_url=None)], handler=, handler_args=[], handler_kwargs={'arg1': 'argument 1'})) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - all good mate, argument 1 -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 4%] -tests/test_adhoc/test_reported.py::TestCommandsResults::test_table_result --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: command_execute -DEBUG slixmpp.plugins.xep_0050.adhoc:adhoc.py:682 functools.partial(>, ) is async -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - A descriptionSome dudetest@testSome dude2test2@test -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 4%] -tests/test_attachment.py::TestBodyOnly::test_just_body --------------------------------- live log setup -------------------------------- -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00627s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00254s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00054s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: body -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01076s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.core.gateway:gateway.py:702 SEND: body -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01565s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00027s] (1, '12') -DEBUG slidge.db.store:store.py:111 Resetting legacy ID 12 -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM direct_msg WHERE direct_msg.id IN (SELECT 1 FROM (SELECT 1) WHERE 1!=1) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] () -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO direct_msg (foreign_key, legacy_id, xmpp_id) VALUES (?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1, '12', '12') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: body -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 4%] -tests/test_attachment.py::TestBodyOnly::test_no_file_no_body --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00044s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 5%] ------------------------------- live log teardown ------------------------------- -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of - -tests/test_attachment.py::TestAttachmentUpload::test_bytes --------------------------------- live log setup -------------------------------- -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00054s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1, None, 'http://url', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=http://urlhttp://url -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 5%] -tests/test_attachment.py::TestAttachmentUpload::test_bytes_and_id --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00053s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT attachment.id AS attachment_id, attachment.user_account_id AS attachment_user_account_id, attachment.legacy_file_id AS attachment_legacy_file_id, attachment.url AS attachment_url, attachment.sims AS attachment_sims, attachment.sfs AS attachment_sfs -FROM attachment -WHERE attachment.legacy_file_id = ? AND attachment.user_account_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] ('123', 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] (1, '123', 'http://url', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=http://urlhttp://url -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03946s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT attachment.id AS attachment_id, attachment.user_account_id AS attachment_user_account_id, attachment.legacy_file_id AS attachment_legacy_file_id, attachment.url AS attachment_url, attachment.sims AS attachment_sims, attachment.sfs AS attachment_sfs -FROM attachment -WHERE attachment.legacy_file_id = ? AND attachment.user_account_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03461s ago] ('123', 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=http://urlhttp://url -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 5%] -tests/test_attachment.py::TestAttachmentUpload::test_path --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00527s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00527s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00537s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] (1, None, 'http://url', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=http://urlhttp://url -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 6%] -tests/test_attachment.py::TestAttachmentUpload::test_path_and_id --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT attachment.id AS attachment_id, attachment.user_account_id AS attachment_user_account_id, attachment.legacy_file_id AS attachment_legacy_file_id, attachment.url AS attachment_url, attachment.sims AS attachment_sims, attachment.sfs AS attachment_sfs -FROM attachment -WHERE attachment.legacy_file_id = ? AND attachment.user_account_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] ('1235', 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00024s] (1, '1235', 'http://url', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=http://urlhttp://url -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01836s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT attachment.id AS attachment_id, attachment.user_account_id AS attachment_user_account_id, attachment.legacy_file_id AS attachment_legacy_file_id, attachment.url AS attachment_url, attachment.sims AS attachment_sims, attachment.sfs AS attachment_sfs -FROM attachment -WHERE attachment.legacy_file_id = ? AND attachment.user_account_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01467s ago] ('1235', 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=http://urlhttp://url -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 6%] -tests/test_attachment.py::TestAttachmentUpload::test_path_attachment --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] (1, None, 'http://url', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=http://urlhttp://url -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 6%] -tests/test_attachment.py::TestAttachmentUpload::test_race_condition --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00031s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00047s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.005589s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT attachment.id AS attachment_id, attachment.user_account_id AS attachment_user_account_id, attachment.legacy_file_id AS attachment_legacy_file_id, attachment.url AS attachment_url, attachment.sims AS attachment_sims, attachment.sfs AS attachment_sfs -FROM attachment -WHERE attachment.legacy_file_id = ? AND attachment.user_account_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] ('123', 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1, '123', 'http://url', 'CpyTt1XX2Fs/RIbG6sLPAOJf9fdSJivlvaIIXhhApwU=', 'CpyTt1XX2Fs/RIbG6sLPAOJf9fdSJivlvaIIXhhApwU=') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT attachment.id AS attachment_id, attachment.user_account_id AS attachment_user_account_id, attachment.legacy_file_id AS attachment_legacy_file_id, attachment.url AS attachment_url, attachment.sims AS attachment_sims, attachment.sfs AS attachment_sfs -FROM attachment -WHERE attachment.legacy_file_id = ? AND attachment.user_account_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1101s ago] ('123', 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: uuid102025-11-28T19:12:55.192243CpyTt1XX2Fs/RIbG6sLPAOJf9fdSJivlvaIIXhhApwU=uuid102025-11-28T19:12:55.192243CpyTt1XX2Fs/RIbG6sLPAOJf9fdSJivlvaIIXhhApwU=http://urlhttp://url -DEBUG slidge.core.gateway:gateway.py:702 SEND: uuid102025-11-28T19:12:55.192243CpyTt1XX2Fs/RIbG6sLPAOJf9fdSJivlvaIIXhhApwU=uuid102025-11-28T19:12:55.192243CpyTt1XX2Fs/RIbG6sLPAOJf9fdSJivlvaIIXhhApwU=http://urlhttp://url -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 7%] -tests/test_attachment.py::TestAttachmentUpload::test_thumbhash --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00690s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00050s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] (1, None, 'http://url', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=http://urlhttp://url -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 7%] ------------------------------- live log teardown ------------------------------- -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:112 No subclass were registered for - -tests/test_attachment.py::TestAttachmentNoUpload::test_multi --------------------------------- live log setup -------------------------------- -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00049s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.mixins.attachment:attachment.py:112 Did not find a file in: /tmp/tmpi4nw6ehd/uuid -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00024s] (1, None, 'https://url/uuid/uuid/5x5.png', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.mixins.attachment:attachment.py:89 Dest dir exists: /tmp/tmpi4nw6ehd/uuid -DEBUG slidge.core.mixins.attachment:attachment.py:92 Found the legacy attachment 'None' at '/tmp/tmpi4nw6ehd/uuid/uuid/5x5.png' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01357s ago] (1, None, 'https://url/uuid/uuid/5x5.png', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, '6666') -DEBUG slidge.db.store:store.py:111 Resetting legacy ID 6666 -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM direct_msg WHERE direct_msg.id IN (SELECT 1 FROM (SELECT 1) WHERE 1!=1) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] () -INFO sqlalchemy.engine.Engine:base.py:1844 INSERT INTO direct_msg (foreign_key, legacy_id, xmpp_id) VALUES (?, ?, ?) RETURNING id -INFO sqlalchemy.engine.Engine:base.py:1844 [generated in 0.00013s (insertmanyvalues) 1/4 (ordered; batch not supported)] (1, '6666', '1') -INFO sqlalchemy.engine.Engine:base.py:1844 INSERT INTO direct_msg (foreign_key, legacy_id, xmpp_id) VALUES (?, ?, ?) RETURNING id -INFO sqlalchemy.engine.Engine:base.py:1844 [insertmanyvalues 2/4 (ordered; batch not supported)] (1, '6666', '2') -INFO sqlalchemy.engine.Engine:base.py:1844 INSERT INTO direct_msg (foreign_key, legacy_id, xmpp_id) VALUES (?, ?, ?) RETURNING id -INFO sqlalchemy.engine.Engine:base.py:1844 [insertmanyvalues 3/4 (ordered; batch not supported)] (1, '6666', '3') -INFO sqlalchemy.engine.Engine:base.py:1844 INSERT INTO direct_msg (foreign_key, legacy_id, xmpp_id) VALUES (?, ?, ?) RETURNING id -INFO sqlalchemy.engine.Engine:base.py:1844 [insertmanyvalues 4/4 (ordered; batch not supported)] (1, '6666', '6666') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=https://url/uuid/uuid/5x5.pnghttps://url/uuid/uuid/5x5.png -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/pngCAPTION5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/pngCAPTION5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=https://url/uuid/uuid/5x5.pnghttps://url/uuid/uuid/5x5.png -DEBUG slidge.core.gateway:gateway.py:702 SEND: CAPTION -DEBUG slidge.core.gateway:gateway.py:702 SEND: BODY -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1037s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.xmpp_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1, '6666') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - - - - -DEBUG slixmpp.plugins.xep_0356.privilege:privilege.py:88 Privileges: defaultdict(, {montague.lit: Permissions()}) -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: privileges_advertised -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - 👋 - 🐢 - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: reactions -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1269s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.legacy_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.xmpp_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1, '1') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.xmpp_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00665s] (1, 6666) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1436s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - 👋 - 🐢 - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: reactions -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1526s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.legacy_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.xmpp_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02918s ago] (1, '2') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.xmpp_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02869s ago] (1, 6666) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1697s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - 👋 - 🐢 - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: reactions -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1778s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.legacy_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.xmpp_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.05442s ago] (1, '3') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.xmpp_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.05863s ago] (1, 6666) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2023s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - 👋 - 🐢 - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: reactions -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2067s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.legacy_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.xmpp_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.07933s ago] (1, '6666') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.xmpp_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.08312s ago] (1, 6666) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG slidge.core.gateway:gateway.py:702 SEND: 🐢👋 -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2237s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 8%] -tests/test_attachment.py::TestAttachmentNoUpload::test_multi_moderation --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00620s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET user_resources=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] ('["gajim"]', 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.mixins.attachment:attachment.py:112 Did not find a file in: /tmp/tmpekvu7ftg/uuid -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1, None, 'https://url/uuid/uuid/5x5.png', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1, 'e12e9186-8c8e-4288-9103-fb1177db2485') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 'e12e9186-8c8e-4288-9103-fb1177db2485', '2025-11-29 07:12:55.982461', 'room@aim.shakespeare.lit', 'LIVE', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.mixins.attachment:attachment.py:89 Dest dir exists: /tmp/tmpekvu7ftg/uuid -DEBUG slidge.core.mixins.attachment:attachment.py:92 Found the legacy attachment 'None' at '/tmp/tmpekvu7ftg/uuid/uuid/5x5.png' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02069s ago] (1, None, 'https://url/uuid/uuid/5x5.png', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01402s ago] (1, '4bb9cab4-8624-4e8f-9000-9624a7d3d3fd') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01318s ago] (1, '4bb9cab4-8624-4e8f-9000-9624a7d3d3fd', '2025-11-29 07:12:56.002148', 'room@aim.shakespeare.lit', 'LIVE', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01733s ago] (1, '84be482d-73bf-4058-8f19-c1211a52d6a5') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01637s ago] (1, '84be482d-73bf-4058-8f19-c1211a52d6a5', '2025-11-29 07:12:56.005553', 'room@aim.shakespeare.lit', 'LIVE', None, 'CAPTION') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02033s ago] (1, 'the-real-msg-id') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00031s] (1, 'the-real-msg-id') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02098s ago] (1, 'the-real-msg-id', '2025-11-29 07:12:56.008585', 'room@aim.shakespeare.lit', 'LIVE', 'the-real-msg-id', 'BODY') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT group_msg.id -FROM group_msg -WHERE group_msg.foreign_key = ? AND group_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00024s] (1, 'the-real-msg-id') -DEBUG slidge.db.store:store.py:111 Resetting legacy ID the-real-msg-id -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM group_msg WHERE group_msg.id IN (SELECT 1 FROM (SELECT 1) WHERE 1!=1) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] () -INFO sqlalchemy.engine.Engine:base.py:1844 INSERT INTO group_msg (foreign_key, legacy_id, xmpp_id) VALUES (?, ?, ?) RETURNING id -INFO sqlalchemy.engine.Engine:base.py:1844 [generated in 0.00012s (insertmanyvalues) 1/4 (ordered; batch not supported)] (1, 'the-real-msg-id', 'e12e9186-8c8e-4288-9103-fb1177db2485') -INFO sqlalchemy.engine.Engine:base.py:1844 INSERT INTO group_msg (foreign_key, legacy_id, xmpp_id) VALUES (?, ?, ?) RETURNING id -INFO sqlalchemy.engine.Engine:base.py:1844 [insertmanyvalues 2/4 (ordered; batch not supported)] (1, 'the-real-msg-id', '4bb9cab4-8624-4e8f-9000-9624a7d3d3fd') -INFO sqlalchemy.engine.Engine:base.py:1844 INSERT INTO group_msg (foreign_key, legacy_id, xmpp_id) VALUES (?, ?, ?) RETURNING id -INFO sqlalchemy.engine.Engine:base.py:1844 [insertmanyvalues 3/4 (ordered; batch not supported)] (1, 'the-real-msg-id', '84be482d-73bf-4058-8f19-c1211a52d6a5') -INFO sqlalchemy.engine.Engine:base.py:1844 INSERT INTO group_msg (foreign_key, legacy_id, xmpp_id) VALUES (?, ?, ?) RETURNING id -INFO sqlalchemy.engine.Engine:base.py:1844 [insertmanyvalues 4/4 (ordered; batch not supported)] (1, 'the-real-msg-id', 'the-real-msg-id') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=https://url/uuid/uuid/5x5.pnghttps://url/uuid/uuid/5x5.png -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/pngCAPTION5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/pngCAPTION5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=https://url/uuid/uuid/5x5.pnghttps://url/uuid/uuid/5x5.png -DEBUG slidge.core.gateway:gateway.py:702 SEND: CAPTION -DEBUG slidge.core.gateway:gateway.py:702 SEND: BODY -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.xmpp_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1, 'the-real-msg-id') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT group_msg.xmpp_id -FROM group_msg -WHERE group_msg.foreign_key = ? AND group_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] (1, 'the-real-msg-id') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.09646s ago] (1, 'fd1ebb2e-52f4-4a81-91e5-0ca4293ce3a2') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.09554s ago] (1, 'fd1ebb2e-52f4-4a81-91e5-0ca4293ce3a2', '2025-11-29 07:12:56.084605', 'room@aim.shakespeare.lit', 'LIVE', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1034s ago] (1, '4342c1b3-39d7-475b-a4d7-cd3eedc8e0e4') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1024s ago] (1, '4342c1b3-39d7-475b-a4d7-cd3eedc8e0e4', '2025-11-29 07:12:56.087949', 'room@aim.shakespeare.lit', 'LIVE', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1114s ago] (1, '2ffbab8f-35d9-4042-b39b-a01ece023e67') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1105s ago] (1, '2ffbab8f-35d9-4042-b39b-a01ece023e67', '2025-11-29 07:12:56.094699', 'room@aim.shakespeare.lit', 'LIVE', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1147s ago] (1, 'd0fc0cd1-3880-409c-b866-175be7d94e80') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.117s ago] (1, 'd0fc0cd1-3880-409c-b866-175be7d94e80', '2025-11-29 07:12:56.102862', 'room@aim.shakespeare.lit', 'LIVE', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 8%] -tests/test_attachment.py::TestAttachmentNoUpload::test_path --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00443s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00513s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00687s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00045s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.mixins.attachment:attachment.py:112 Did not find a file in: /tmp/tmpz7jp6pby/uuid -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, None, 'https://url/uuid/uuid/5x5.png', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=https://url/uuid/uuid/5x5.pnghttps://url/uuid/uuid/5x5.png -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 8%] -tests/test_attachment.py::TestAttachmentNoUpload::test_path_and_id --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00512s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00057s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00547s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT attachment.id AS attachment_id, attachment.user_account_id AS attachment_user_account_id, attachment.legacy_file_id AS attachment_legacy_file_id, attachment.url AS attachment_url, attachment.sims AS attachment_sims, attachment.sfs AS attachment_sfs -FROM attachment -WHERE attachment.legacy_file_id = ? AND attachment.user_account_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] ('1234', 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.core.mixins.attachment:attachment.py:112 Did not find a file in: /tmp/tmp7fa11pt0/1234 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] (1, '1234', 'https://url/1234/uuid/5x5.png', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=https://url/1234/uuid/5x5.pnghttps://url/1234/uuid/5x5.png -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.04172s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT attachment.id AS attachment_id, attachment.user_account_id AS attachment_user_account_id, attachment.legacy_file_id AS attachment_legacy_file_id, attachment.url AS attachment_url, attachment.sims AS attachment_sims, attachment.sfs AS attachment_sfs -FROM attachment -WHERE attachment.legacy_file_id = ? AND attachment.user_account_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03209s ago] ('1234', 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=https://url/1234/uuid/5x5.pnghttps://url/1234/uuid/5x5.png -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 9%] -tests/test_attachment.py::TestAttachmentNoUpload::test_reply_with_attachment --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00598s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00499s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT direct_msg.xmpp_id -FROM direct_msg -WHERE direct_msg.foreign_key = ? AND direct_msg.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1, 'some_msg_id') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.core.mixins.attachment:attachment.py:112 Did not find a file in: /tmp/tmp2rj3yykd/uuid -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] (1, None, 'https://url/uuid/uuid/5x5.png', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-20T10:50:34NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=https://url/uuid/uuid/5x5.pnghttps://url/uuid/uuid/5x5.png -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 9%] -tests/test_attachment.py::TestAttachmentNoUpload::test_url --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00056s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.mixins.attachment:attachment.py:112 Did not find a file in: /tmp/tmpt7d51kwp/uuid -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1, None, 'https://url/uuid/uuid/5x5.png', '', '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.png5472025-11-28T19:12:56.876255NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=image/png5x5.png5472025-11-28T19:12:56.876255NdpqDQuHlshve2c0iU25l2KI4cjpoyzaTk3a/CdbjPQ=https://url/uuid/uuid/5x5.pnghttps://url/uuid/uuid/5x5.png -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 9%] ------------------------------- live log teardown ------------------------------- -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:112 No subclass were registered for - -tests/test_attachment.py::TestAttachmentOriginalUrl::test_no_metadata --------------------------------- live log setup -------------------------------- -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00054s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00031s] (1, None, 'prout', None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: proutprout -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 10%] -tests/test_attachment.py::TestAttachmentOriginalUrl::test_url_original --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00055s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00057s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] (1, None, 'prout', None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.pngimage/png5x5.pngproutprout -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03912s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02284s ago] (1, None, 'prout', None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: GNAGNA5x5.pngGNAGNA5x5.pngproutprout -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.06s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.04379s ago] (1, None, 'prout', None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: proutprout -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.07597s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.06417s ago] (1, None, 'prout', None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/png5x5.pngimage/png5x5.pngproutprout -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.0951s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO attachment (user_account_id, legacy_file_id, url, sims, sfs) VALUES (?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.07868s ago] (1, None, 'prout.png', None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: image/pngimage/pngprout.pngprout.png -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 10%] ------------------------------- live log teardown ------------------------------- -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:112 No subclass were registered for - -tests/test_avatar.py::TestContactAvatar::test_avatar_path_no_id --------------------------------- live log setup -------------------------------- -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00053s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET is_friend=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.008795s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET added_to_roster=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00031s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01369s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.07206s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - - - - - -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.08009s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.core.gateway:gateway.py:702 SEND: - -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00104s] ('e6f9170123620949a6821e25ea2861d22b0dff66',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] ('e6f9170123620949a6821e25ea2861d22b0dff66', 5, 5, None, None, None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.00672s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00044s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01396s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00052s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2918s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2716s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2912s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.3038s ago] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2947s ago] (None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.308s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2882s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -WARNING slidge.db.avatar:avatar.py:210 Overwriting /tmp/tmpb3uwu7km/e6f9170123620949a6821e25ea2861d22b0dff66.png -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.4318s ago] ('e6f9170123620949a6821e25ea2861d22b0dff66',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.4261s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.4095s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.4294s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.4392s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.4325s ago] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.4314s ago] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.4518s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.4326s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.5129s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.4926s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.5171s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.5229s ago] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.5199s ago] (None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.5336s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.5138s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 10%] -tests/test_avatar.py::TestContactAvatar::test_avatar_path_with_id --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00588s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00055s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00045s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET is_friend=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00332s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02325s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET added_to_roster=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.0286s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] ('123',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] ('e6f9170123620949a6821e25ea2861d22b0dff66',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] ('e6f9170123620949a6821e25ea2861d22b0dff66', 5, 5, 123, None, None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00699s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00050s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01896s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE avatar SET legacy_id=? WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (123, 1) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03318s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE avatar SET legacy_id=? WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.0117s ago] (123, 1) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00050s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.211s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1692s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2033s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2201s ago] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1978s ago] (None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2276s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1861s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 11%] -tests/test_avatar.py::TestContactAvatar::test_avatar_with_url --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00047s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00057s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00050s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET is_friend=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03765s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET added_to_roster=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.05128s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.url = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] ('AVATAR_URL',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC Profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 442 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1', 5, 5, None, 'AVATAR_URL', 'etag', 'last') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00052s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00629s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01345s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00710s] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02703s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00056s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.url = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1132s ago] ('AVATAR_URL',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 11%] -tests/test_avatar.py::TestContactAvatar::test_avatar_with_url_and_unique_id --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00056s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET is_friend=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.009135s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET added_to_roster=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01482s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] ('someid',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.002379s ago] ('someid',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC Profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 442 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1', 5, 5, 'someid', 'AVATAR_URL', 'etag', 'last') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00047s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.006633s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01362s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00051s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 12%] -tests/test_avatar.py::TestContactAvatar::test_same_avatar_with_different_legacy_ids --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00049s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00053s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET is_friend=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.009544s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET added_to_roster=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01404s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] ('123',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00031s] ('e6f9170123620949a6821e25ea2861d22b0dff66',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] ('e6f9170123620949a6821e25ea2861d22b0dff66', 5, 5, '123', None, None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00045s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.006825s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01328s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1064s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1141s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1169s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1088s ago] ('456',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -WARNING slidge.db.avatar:avatar.py:210 Overwriting /tmp/tmp2leg_z3u/e6f9170123620949a6821e25ea2861d22b0dff66.png -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1081s ago] ('e6f9170123620949a6821e25ea2861d22b0dff66',) -WARNING slidge.db.avatar:avatar.py:220 Updating the 'unique' ID of an avatar, was '123', is now '456' -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE avatar SET legacy_id=? WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] ('456', 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1105s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1083s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1141s ago] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1236s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1061s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2104s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2186s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 12%] ------------------------------- live log teardown ------------------------------- -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:112 No subclass were registered for - -tests/test_avatar.py::TestParticipantAvatar::test_avatar_forbidden_emoji_in_participant_nickname --------------------------------- live log setup -------------------------------- -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00047s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence_available -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: got_online -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: changed_status -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: groupchat_join -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00057s] (1, 'room@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET user_resources=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00045s] ('["gajim"]', 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:muc::room.py:625 Resource gajim of romeo@montague.lit wants to join room room with nickname romeo -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.participants_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00047s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET participants_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00049s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00048s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00064s] (1, 'romeo', 'romeo') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00051s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00054s] (1, None, 1, 'member', 'participant', 0, 'romeo', 'romeo', 'romeo', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00057s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03881s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::room.py:669 Old school history fill -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.timestamp >= ? ORDER BY mam.timestamp ASC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1, '2025-11-28 07:12:59.843763') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::util.py:310 join took 69 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1016s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00060s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET nick=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00044s] ('juliet🎉', 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00049s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET legacy_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00047s] (123, 1) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00059s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.url = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00048s] ('AVATAR_URL',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC Profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 442 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1', 5, 5, None, 'AVATAR_URL', 'etag', 'last') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.0215s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01592s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00049s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03006s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00044s] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03678s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03107s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1592s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1618s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1036s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.contact_id AND ? = participant.room_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00067s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id -FROM participant -WHERE ? = participant.room_id AND participant.nickname = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00048s] (1, 'juliet🎉') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet-1934e:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1203s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.06432s ago] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet-1934e:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet-1934e:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00054s] (1, 1, 0, 'member', 'participant', 0, 'juliet-1934e', 'juliet🎉', 'juliet🎉', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET cached_presence=?, last_seen=?, ptype=?, pstatus=?, pshow=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, None, None, None, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet-1934e:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1177s ago] (2,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet-1934e:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet-1934e:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET cached_presence=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00047s] (0, 1) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE participant SET presence_sent=? WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, 2) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: 630e98ce280a370dd1c7933289ce7a0338b8b3f1juliet🎉 -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.09946s ago] (1, 'room@aim.shakespeare.lit/juliet-1934e') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE ? = room.user_account_id AND room.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00061s] (1, 'room@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.participants_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1831s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1615s ago] (1, 'juliet-1934e', 'juliet-1934e') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.core.gateway:gateway.py:702 SEND: - [STRIPPED]image/png -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2764s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2788s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2239s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.contact_id AND ? = participant.room_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1188s ago] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00408s] (1, 'uuid4') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00049s] (1, 'uuid4', '2025-11-29 07:13:00.046457', 'room@aim.shakespeare.lit/juliet-1934e', 'LIVE', None, 'prout') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slidge.core.gateway:gateway.py:702 SEND: proutjuliet🎉 -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 12%] -tests/test_avatar.py::TestParticipantAvatar::test_romeo_join_empty_room_then_juliet_joins_then_set_avatar --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00634s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence_available -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: got_online -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: changed_status -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: groupchat_join -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00723s] (1, 'room@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET user_resources=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00031s] ('["gajim"]', 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:muc::room.py:625 Resource gajim of romeo@montague.lit wants to join room room with nickname romeo -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.participants_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET participants_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00031s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00653s] (1, 'romeo', 'romeo') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, None, 1, 'member', 'participant', 0, 'romeo', 'romeo', 'romeo', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00539s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00268s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.08782s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::room.py:669 Old school history fill -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00494s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.timestamp >= ? ORDER BY mam.timestamp ASC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00330s] (1, '2025-11-28 07:13:00.363522') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::util.py:310 join took 132 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1754s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1829s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1849s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00564s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.09938s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.contact_id AND ? = participant.room_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00065s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id -FROM participant -WHERE ? = participant.room_id AND participant.nickname = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 'juliet') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1269s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00514s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET legacy_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00102s] (123, 1) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] (1, 1, 0, 'member', 'participant', 0, 'juliet', 'juliet', 'juliet', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET cached_presence=?, last_seen=?, ptype=?, pstatus=?, pshow=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] (1, None, None, None, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01908s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1334s ago] (2,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET legacy_id=?, cached_presence=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] (123, 0, 1) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE participant SET presence_sent=? WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00023s] (1, 2) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1352s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] ('e6f9170123620949a6821e25ea2861d22b0dff66',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00020s] ('e6f9170123620949a6821e25ea2861d22b0dff66', 5, 5, None, None, None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1057s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1147s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.124s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] (1,) -DEBUG romeo@montague.lit:contact::contact.py:307 Propagating new avatar to -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET cached_presence=?, last_seen=?, ptype=?, pstatus=?, pshow=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1409s ago] (1, None, None, None, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: e6f9170123620949a6821e25ea2861d22b0dff66 -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2589s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.3151s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2725s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1697s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2795s ago] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1627s ago] (None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2867s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1502s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1473s ago] (1,) -DEBUG romeo@montague.lit:contact::contact.py:307 Propagating new avatar to -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 13%] -tests/test_avatar.py::TestParticipantAvatar::test_romeo_join_empty_room_then_juliet_joins_then_set_avatar_with_url --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00648s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence_available -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: got_online -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: changed_status -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: groupchat_join -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, 'room@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET user_resources=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] ('["gajim"]', 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:muc::room.py:625 Resource gajim of romeo@montague.lit wants to join room room with nickname romeo -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.participants_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET participants_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00051s] (1, 'romeo', 'romeo') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1, None, 1, 'member', 'participant', 0, 'romeo', 'romeo', 'romeo', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00055s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2548s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::room.py:669 Old school history fill -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00031s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.timestamp >= ? ORDER BY mam.timestamp ASC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00020s] (1, '2025-11-28 07:13:01.230387') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::util.py:310 join took 280 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2975s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00052s] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] (1, 123, 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.3082s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.3104s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2724s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.contact_id AND ? = participant.room_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00066s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id -FROM participant -WHERE ? = participant.room_id AND participant.nickname = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00047s] (1, 'juliet') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.287s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00047s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET legacy_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (123, 1) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00045s] (1, 1, 0, 'member', 'participant', 0, 'juliet', 'juliet', 'juliet', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET cached_presence=?, last_seen=?, ptype=?, pstatus=?, pshow=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, None, None, None, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01018s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.06902s ago] (2,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/juliet:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET legacy_id=?, cached_presence=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (123, 0, 1) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE participant SET presence_sent=? WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 2) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: juliet -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1057s ago] (1, 'juliet@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.url = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] ('AVATAR_URL',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC Profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 442 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00342s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1', 5, 5, None, 'AVATAR_URL', 'etag', 'last') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1008s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.113s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1248s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00472s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1,) -DEBUG romeo@montague.lit:contact::contact.py:307 Propagating new avatar to -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET cached_presence=?, last_seen=?, ptype=?, pstatus=?, pshow=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1412s ago] (1, None, None, None, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: 630e98ce280a370dd1c7933289ce7a0338b8b3f1 -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.url = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1313s ago] ('AVATAR_URL',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2685s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1447s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id, contact.user_account_id, contact.legacy_id, contact.jid, contact.avatar_id, contact.nick, contact.cached_presence, contact.last_seen, contact.ptype, contact.pstatus, contact.pshow, contact.caps_ver, contact.is_friend, contact.added_to_roster, contact.extra_attributes, contact.updated, contact.vcard, contact.vcard_fetched, contact.client_type, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1737s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2792s ago] (1,) -DEBUG romeo@montague.lit:contact::db.py:27 Merged -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE contact SET avatar_id=? WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1706s ago] (None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.2893s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id -WHERE ? = participant.contact_id -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1602s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE contact.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1469s ago] (1,) -DEBUG romeo@montague.lit:contact::contact.py:307 Propagating new avatar to -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 13%] ------------------------------- live log teardown ------------------------------- -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:112 No subclass were registered for - -tests/test_avatar.py::TestRoomAvatar::test_room_avatar_change_after_join --------------------------------- live log setup -------------------------------- -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00699s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence_available -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: got_online -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: changed_status -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: groupchat_join -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] (1, 'room@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET user_resources=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] ('["gajim"]', 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:muc::room.py:625 Resource gajim of romeo@montague.lit wants to join room room with nickname romeo -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.participants_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET participants_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00465s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00474s] (1, 'romeo', 'romeo') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00394s] (1, None, 1, 'member', 'participant', 0, 'romeo', 'romeo', 'romeo', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.06528s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::room.py:669 Old school history fill -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00024s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.timestamp >= ? ORDER BY mam.timestamp ASC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00027s] (1, '2025-11-28 07:13:01.905340') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::util.py:310 join took 104 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1325s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1353s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1372s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] ('e6f9170123620949a6821e25ea2861d22b0dff66',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] ('e6f9170123620949a6821e25ea2861d22b0dff66', 5, 5, None, None, None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.0603s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.1094s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.06329s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1,) -DEBUG romeo@montague.lit:muc::db.py:27 Merged -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET avatar_id=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: e6f9170123620949a6821e25ea2861d22b0dff66 -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 13%] -tests/test_avatar.py::TestRoomAvatar::test_room_avatar_on_join --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.009232s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'pHYs' 442 9 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tIME' 463 7 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:783 b'tIME' 463 7 (unknown) -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'tEXt' 482 25 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 519 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] ('e6f9170123620949a6821e25ea2861d22b0dff66',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00536s] ('e6f9170123620949a6821e25ea2861d22b0dff66', 5, 5, None, None, None, None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00469s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01698s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1,) -DEBUG romeo@montague.lit:muc::db.py:27 Merged -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET avatar_id=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence_available -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: got_online -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: changed_status -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: groupchat_join -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, 'room@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET user_resources=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] ('["gajim"]', 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:muc::room.py:625 Resource gajim of romeo@montague.lit wants to join room room with nickname romeo -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.participants_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.04229s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET participants_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00516s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00457s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00527s] (1, 'romeo', 'romeo') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.08897s ago] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] (1, None, 1, 'member', 'participant', 0, 'romeo', 'romeo', 'romeo', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00484s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00134s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.06347s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::room.py:669 Old school history fill -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.timestamp >= ? ORDER BY mam.timestamp ASC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, '2025-11-28 07:13:02.272289') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::util.py:310 join took 98 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: e6f9170123620949a6821e25ea2861d22b0dff66 -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 14%] -tests/test_avatar.py::TestRoomAvatar::test_room_avatar_with_url --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00397s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.0157s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:avatar.py:63 Setting avatar with property -DEBUG romeo@montague.lit:session.py:139 Creating task > -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.url = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00590s] ('AVATAR_URL',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC Profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 442 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00027s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00024s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1', 5, 5, None, 'AVATAR_URL', 'etag', 'last') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.006188s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1,) -DEBUG romeo@montague.lit:muc::db.py:27 Merged -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET avatar_id=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:session.py:133 Removing fut result=None> -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence_available -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: got_online -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: changed_status -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: groupchat_join -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, 'room@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET user_resources=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] ('["gajim"]', 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:muc::room.py:625 Resource gajim of romeo@montague.lit wants to join room room with nickname romeo -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.participants_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00023s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01938s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET participants_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00050s] (1, 'romeo', 'romeo') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.04123s ago] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, None, 1, 'member', 'participant', 0, 'romeo', 'romeo', 'romeo', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00027s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.0372s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::room.py:669 Old school history fill -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00023s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.timestamp >= ? ORDER BY mam.timestamp ASC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1, '2025-11-28 07:13:02.533578') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::util.py:310 join took 59 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: 630e98ce280a370dd1c7933289ce7a0338b8b3f1 -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 14%] -tests/test_avatar.py::TestRoomAvatar::test_room_avatar_with_url_and_unique_id --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.005395s ago] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] ('id',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.001807s ago] ('id',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IHDR' 16 13 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'iCCP' 41 389 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:433 iCCP profile name b'ICC Profile' -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:435 Compression method 0 -DEBUG PIL.PngImagePlugin:PngImagePlugin.py:203 STREAM b'IDAT' 442 12 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id, avatar.hash, avatar.height, avatar.width, avatar.legacy_id, avatar.url, avatar.etag, avatar.last_modified -FROM avatar -WHERE avatar.hash = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO avatar (hash, height, width, legacy_id, url, etag, last_modified) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00023s] ('630e98ce280a370dd1c7933289ce7a0338b8b3f1', 5, 5, 'id', 'AVATAR_URL', 'etag', 'last') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.005614s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT avatar.id AS avatar_id, avatar.hash AS avatar_hash, avatar.height AS avatar_height, avatar.width AS avatar_width, avatar.legacy_id AS avatar_legacy_id, avatar.url AS avatar_url, avatar.etag AS avatar_etag, avatar.last_modified AS avatar_last_modified -FROM avatar -WHERE avatar.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] (1,) -DEBUG romeo@montague.lit:muc::db.py:27 Merged -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET avatar_id=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: presence_available -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: got_online -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: changed_status -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: groupchat_join -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, 'room@aim.shakespeare.lit') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET user_resources=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] ('["gajim"]', 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:muc::room.py:625 Resource gajim of romeo@montague.lit wants to join room room with nickname romeo -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.participants_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00022s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id, room.user_account_id, room.legacy_id, room.jid, room.avatar_id, room.name, room.description, room.subject, room.subject_date, room.subject_setter, room.n_participants, room.muc_type, room.user_nick, room.user_resources, room.participants_filled, room.history_filled, room.extra_attributes, room.updated, avatar_1.id AS id_1, avatar_1.hash, avatar_1.height, avatar_1.width, avatar_1.legacy_id AS legacy_id_1, avatar_1.url, avatar_1.etag, avatar_1.last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01854s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET participants_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00048s] (1, 'romeo', 'romeo') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.04001s ago] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] (1, None, 1, 'member', 'participant', 0, 'romeo', 'romeo', 'romeo', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE participant.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00045s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/romeo:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact_1.avatar_id -WHERE participant.room_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02753s ago] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::room.py:669 Old school history fill -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00023s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00027s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.timestamp >= ? ORDER BY mam.timestamp ASC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1, '2025-11-28 07:13:02.741854') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::util.py:310 join took 48 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG test_shakespeare:test_shakespeare.py:129 Requested JID to legacy: room -DEBUG slidge.core.gateway:gateway.py:702 SEND: 630e98ce280a370dd1c7933289ce7a0338b8b3f1 -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:113 Cannot set nick through the MUCPresence plugin. -WARNING slixmpp.plugins.xep_0045.stanza:stanza.py:120 Cannot set room through the MUCPresence plugin. -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 15%] ------------------------------- live log teardown ------------------------------- -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:112 No subclass were registered for - -tests/test_backfill.py::TestBackfill::test_empty_archive --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00049s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM contact -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] () -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO slidge.core.gateway:gateway.py:616 Login success for romeo@montague.lit -DEBUG romeo@montague.lit:roster:util.py:310 _fill took 0 ms -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG slidge.core.gateway:util.py:310 login_wrap took 2 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: Thank you for registering. Type 'help' to list the available commands, or just start messaging away! -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndLogging in… -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndSyncing contacts… -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: chatYUP -DEBUG slidge.core.gateway:gateway.py:702 SEND: -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00061s] (1, 'juliet') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00045s] (1, 'juliet', 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:roster:util.py:310 by_legacy_id took 10 ms -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00055s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00044s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00070s] (1, 'firstwitch', 'firstwitch') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00053s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, None, 0, 'member', 'participant', 0, 'firstwitch', 'firstwitch', 'firstwitch', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01407s ago] (1,) -DEBUG romeo@montague.lit:muc::db.py:27 Merged -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET history_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM mam -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] () -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 15%] -tests/test_backfill.py::TestBackfill::test_live_no_id_before_backfill --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM contact -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00024s] () -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO slidge.core.gateway:gateway.py:616 Login success for romeo@montague.lit -DEBUG romeo@montague.lit:roster:util.py:310 _fill took 0 ms -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG slidge.core.gateway:util.py:310 login_wrap took 1 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: Thank you for registering. Type 'help' to list the available commands, or just start messaging away! -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndLogging in… -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndSyncing contacts… -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: chatYUP -DEBUG slidge.core.gateway:gateway.py:702 SEND: -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00051s] (1, 'juliet') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] (1, 'juliet', 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:roster:util.py:310 by_legacy_id took 8 ms -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00045s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00055s] (1, 'firstwitch', 'firstwitch') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00045s] (1, None, 0, 'member', 'participant', 0, 'firstwitch', 'firstwitch', 'firstwitch', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, '8f5caa0e-3289-457b-8354-8b9adf638362') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] (1, '8f5caa0e-3289-457b-8354-8b9adf638362', '2025-11-29 07:13:03.112730', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', None, 'BODY 1') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.004862s ago] (1, '81b23d06-a250-4479-a455-27d82cea0038') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.003886s ago] (1, '81b23d06-a250-4479-a455-27d82cea0038', '2025-11-29 07:13:03.117974', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', None, 'BODY 2') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.008187s ago] (1, '243f0bb9-ccd5-45d1-bb19-f65eb8620be4') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.007161s ago] (1, '243f0bb9-ccd5-45d1-bb19-f65eb8620be4', '2025-11-29 07:13:03.120831', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', None, 'BODY 3') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02482s ago] (1,) -DEBUG romeo@montague.lit:muc::db.py:27 Merged -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET history_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM mam -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] () -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 15%] -tests/test_backfill.py::TestBackfill::test_live_with_id_before_backfill --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM contact -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] () -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00031s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO slidge.core.gateway:gateway.py:616 Login success for romeo@montague.lit -DEBUG romeo@montague.lit:roster:util.py:310 _fill took 0 ms -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG slidge.core.gateway:util.py:310 login_wrap took 1 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: Thank you for registering. Type 'help' to list the available commands, or just start messaging away! -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndLogging in… -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndSyncing contacts… -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: chatYUP -DEBUG slidge.core.gateway:gateway.py:702 SEND: -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00052s] (1, 'juliet') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, 'juliet', 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:roster:util.py:310 by_legacy_id took 8 ms -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00044s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00059s] (1, 'firstwitch', 'firstwitch') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00047s] (1, None, 0, 'member', 'participant', 0, 'firstwitch', 'firstwitch', 'firstwitch', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, '222') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, '222') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00040s] (1, '222', '2025-11-29 07:13:03.250463', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', '222', 'BODY 2') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.006113s ago] (1, '111') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.00536s ago] (1, '111') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.00484s ago] (1, '111', '2025-11-29 06:13:03.250463', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', '111', 'BODY 1') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01031s ago] (1, '333') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.009554s ago] (1, '333') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.009017s ago] (1, '333', '2025-11-29 08:13:03.250463', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', '333', 'BODY 3') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00030s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL AND mam.source = ? ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, 'BACKFILL') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp ASC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00025s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.03081s ago] (1,) -DEBUG romeo@montague.lit:muc::db.py:27 Merged -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET history_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM mam -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00023s] () -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 16%] -tests/test_backfill.py::TestBackfill::test_pre_backfilled_no_id --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM contact -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00024s] () -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO slidge.core.gateway:gateway.py:616 Login success for romeo@montague.lit -DEBUG romeo@montague.lit:roster:util.py:310 _fill took 0 ms -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG slidge.core.gateway:util.py:310 login_wrap took 1 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: Thank you for registering. Type 'help' to list the available commands, or just start messaging away! -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndLogging in… -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndSyncing contacts… -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: chatYUP -DEBUG slidge.core.gateway:gateway.py:702 SEND: -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00340s] (1, 'juliet') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, 'juliet', 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:roster:util.py:310 by_legacy_id took 34 ms -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00052s] (1, 'firstwitch', 'firstwitch') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1, None, 0, 'member', 'participant', 0, 'firstwitch', 'firstwitch', 'firstwitch', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1, '1e8c077f33e54c1f8ad70d5bbc5ae1aa') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, '1e8c077f33e54c1f8ad70d5bbc5ae1aa', '2025-11-29 07:13:03.492879', '', 'BACKFILL', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00027s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01582s ago] (1,) -DEBUG romeo@montague.lit:muc::db.py:27 Merged -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET history_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM mam -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00020s] () -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 16%] -tests/test_backfill.py::TestBackfill::test_pre_backfilled_with_id --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM contact -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00015s] () -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO slidge.core.gateway:gateway.py:616 Login success for romeo@montague.lit -DEBUG romeo@montague.lit:roster:util.py:310 _fill took 0 ms -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG slidge.core.gateway:util.py:310 login_wrap took 1 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: Thank you for registering. Type 'help' to list the available commands, or just start messaging away! -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndLogging in… -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndSyncing contacts… -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: chatYUP -DEBUG slidge.core.gateway:gateway.py:702 SEND: -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00055s] (1, 'juliet') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00048s] (1, 'juliet', 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:roster:util.py:310 by_legacy_id took 8 ms -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00051s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00041s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00062s] (1, 'firstwitch', 'firstwitch') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00046s] (1, None, 0, 'member', 'participant', 0, 'firstwitch', 'firstwitch', 'firstwitch', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1, '5cf3fffbe7304d1e9238dda559e3bccd') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00042s] (1, '5cf3fffbe7304d1e9238dda559e3bccd', '2025-11-29 07:13:03.624224', '', 'BACKFILL', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.004029s ago] (1, 'a6b61c137f4744c89effbbf634cd22b2') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00044s] (1, 111) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.005776s ago] (1, 'a6b61c137f4744c89effbbf634cd22b2', '2025-11-29 07:13:03.628660', '', 'BACKFILL', 111, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.00932s ago] (1, 'a1bf076529fa43f7bff8d9242833befe') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.005081s ago] (1, 222) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.009747s ago] (1, 'a1bf076529fa43f7bff8d9242833befe', '2025-11-29 07:13:03.633950', '', 'BACKFILL', 222, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01326s ago] (1, 'f18b3d44c3374b9d8569abb6f44fafc6') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01269s ago] (1, 'f18b3d44c3374b9d8569abb6f44fafc6', '2025-11-29 07:13:03.637906', '', 'BACKFILL', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02993s ago] (1,) -DEBUG romeo@montague.lit:muc::db.py:27 Merged -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET history_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM mam -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] () -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 16%] -tests/test_backfill.py::TestBackfill::test_pre_backfilled_with_id_and_live --------------------------------- live log call --------------------------------- -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Sender-generated link previews -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0128: Service Discovery Extensions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0115: Entity Capabilities -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0082: XMPP Date and Time Profiles -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0131: Stanza Headers and Internet Metadata -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0060: Publish-Subscribe -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0163: Personal Eventing Protocol (PEP) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0172: User Nickname -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0203: Delayed Delivery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0045: Multi-User Chat -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0054: vcard-temp -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0055: Jabber search -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0059: Result Set Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0066: Out of Band Data -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0071: XHTML-IM -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0077: In-Band Registration (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0084: User Avatar -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0085: Chat State Notifications -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0297: Stanza Forwarding -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0356: Privileged Entity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0100: Gateway interaction (slidge) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0106: JID Escaping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0122: Data Forms Validation -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0153: vCard-Based Avatars (slidge, just for MUCs) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0184: Message Delivery Receipts -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0199: XMPP Ping -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0221: Data Forms Media Element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0231: Bits of Binary -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0249: Direct MUC Invitations -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0300: Use of Cryptographic Hash Functions in XMPP -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0234: Jingle File Transfer -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0264: Jingle Content Thumbnails -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0280: Message Carbons -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: VCard4 Provider -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0308: Last Message Correction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0313: Message Archive Management -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0317: Hats -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0012: Last Activity -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0319: Last User Interaction in Presence -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0333: Chat Markers -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0334: Message Processing Hints -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0363: HTTP File Upload -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0372: References -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0385: Stateless Inline Media Sharing (SIMS) -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0402: PEP Native bookmarks -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0421: Anonymous unique occupant identifiers for MUCs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0359: Unique and Stable Stanza IDs -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0422: Message Fastening -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0428: Fallback Indication -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0424: Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0425: Moderated Message Retraction -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0444: Message Reactions -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0446: File metadata element -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0447: Stateless File Sharing -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0461: Message Replies -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0469: Bookmark Pinning -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0223: Persistent Storage of Private Data via PubSub -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0490: Message Displayed Synchronization -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0492: Chat notification settings -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: Pubsub component -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:434 Registering -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.core.gateway:gateway.py:426 Not adding command '' because it looks abstract -DEBUG slidge.db.avatar:avatar.py:80 Checking avatar files -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.plugins.xep_0030.disco:disco.py:394 Looking up local disco#info data for None, node None. -DEBUG slidge.core.gateway:gateway.py:702 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO user_account (jid, legacy_module_data, preferences, avatar_hash) VALUES (?, ?, ?, ?) RETURNING id, registration_date -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] ('romeo@montague.lit', '{"username": "romeo", "city": ""}', '{"sync_avatar": true, "sync_presence": true}', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM contact -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00016s] () -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT user_account.id AS user_account_id, user_account.jid AS user_account_jid, user_account.registration_date AS user_account_registration_date, user_account.legacy_module_data AS user_account_legacy_module_data, user_account.preferences AS user_account_preferences, user_account.avatar_hash AS user_account_avatar_hash -FROM user_account -WHERE user_account.jid = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] ('romeo@montague.lit',) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -INFO slidge.core.gateway:gateway.py:616 Login success for romeo@montague.lit -DEBUG romeo@montague.lit:roster:util.py:310 _fill took 0 ms -DEBUG romeo@montague.lit:session.py:139 Creating task > -DEBUG slidge.core.gateway:util.py:310 login_wrap took 1 ms -DEBUG slidge.core.gateway:gateway.py:702 SEND: Thank you for registering. Type 'help' to list the available commands, or just start messaging away! -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: sent_presence -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndLogging in… -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: dndSyncing contacts… -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slidge.core.dispatcher.caps:caps.py:64 Ver: AuL8MdHJviOT17Bh1mfkW7IM7NU= -DEBUG slidge.core.gateway:gateway.py:702 SEND: chatYUP -DEBUG slidge.core.gateway:gateway.py:702 SEND: -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT contact.id AS contact_id, contact.user_account_id AS contact_user_account_id, contact.legacy_id AS contact_legacy_id, contact.jid AS contact_jid, contact.avatar_id AS contact_avatar_id, contact.nick AS contact_nick, contact.cached_presence AS contact_cached_presence, contact.last_seen AS contact_last_seen, contact.ptype AS contact_ptype, contact.pstatus AS contact_pstatus, contact.pshow AS contact_pshow, contact.caps_ver AS contact_caps_ver, contact.is_friend AS contact_is_friend, contact.added_to_roster AS contact_added_to_roster, contact.extra_attributes AS contact_extra_attributes, contact.updated AS contact_updated, contact.vcard AS contact_vcard, contact.vcard_fetched AS contact_vcard_fetched, contact.client_type AS contact_client_type, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM contact LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = contact.avatar_id -WHERE ? = contact.user_account_id AND contact.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00043s] (1, 'juliet') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:contact::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO contact (user_account_id, legacy_id, jid, avatar_id, nick, cached_presence, last_seen, ptype, pstatus, pshow, caps_ver, is_friend, added_to_roster, extra_attributes, updated, vcard, vcard_fetched, client_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 'juliet', 'juliet@aim.shakespeare.lit', None, None, 0, None, None, None, None, None, 0, 0, None, 1, None, 0, 'pc') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -DEBUG romeo@montague.lit:roster:util.py:310 by_legacy_id took 8 ms -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.user_account_id = ? AND room.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00036s] (1, 'room') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO room (user_account_id, legacy_id, jid, avatar_id, name, description, subject, subject_date, subject_setter, n_participants, muc_type, user_nick, user_resources, participants_filled, history_filled, extra_attributes, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] (1, 'room', 'room@aim.shakespeare.lit', None, None, None, None, None, None, None, 'CHANNEL', None, None, 0, 0, None, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT participant.id AS participant_id, participant.room_id AS participant_room_id, participant.contact_id AS participant_contact_id, participant.is_user AS participant_is_user, participant.affiliation AS participant_affiliation, participant.role AS participant_role, participant.presence_sent AS participant_presence_sent, participant.resource AS participant_resource, participant.nickname AS participant_nickname, participant.nickname_no_illegal AS participant_nickname_no_illegal, participant.hats AS participant_hats, participant.extra_attributes AS participant_extra_attributes, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified, room_1.id AS room_1_id, room_1.user_account_id AS room_1_user_account_id, room_1.legacy_id AS room_1_legacy_id, room_1.jid AS room_1_jid, room_1.avatar_id AS room_1_avatar_id, room_1.name AS room_1_name, room_1.description AS room_1_description, room_1.subject AS room_1_subject, room_1.subject_date AS room_1_subject_date, room_1.subject_setter AS room_1_subject_setter, room_1.n_participants AS room_1_n_participants, room_1.muc_type AS room_1_muc_type, room_1.user_nick AS room_1_user_nick, room_1.user_resources AS room_1_user_resources, room_1.participants_filled AS room_1_participants_filled, room_1.history_filled AS room_1_history_filled, room_1.extra_attributes AS room_1_extra_attributes, room_1.updated AS room_1_updated, avatar_2.id AS avatar_2_id, avatar_2.hash AS avatar_2_hash, avatar_2.height AS avatar_2_height, avatar_2.width AS avatar_2_width, avatar_2.legacy_id AS avatar_2_legacy_id, avatar_2.url AS avatar_2_url, avatar_2.etag AS avatar_2_etag, avatar_2.last_modified AS avatar_2_last_modified, contact_1.id AS contact_1_id, contact_1.user_account_id AS contact_1_user_account_id, contact_1.legacy_id AS contact_1_legacy_id, contact_1.jid AS contact_1_jid, contact_1.avatar_id AS contact_1_avatar_id, contact_1.nick AS contact_1_nick, contact_1.cached_presence AS contact_1_cached_presence, contact_1.last_seen AS contact_1_last_seen, contact_1.ptype AS contact_1_ptype, contact_1.pstatus AS contact_1_pstatus, contact_1.pshow AS contact_1_pshow, contact_1.caps_ver AS contact_1_caps_ver, contact_1.is_friend AS contact_1_is_friend, contact_1.added_to_roster AS contact_1_added_to_roster, contact_1.extra_attributes AS contact_1_extra_attributes, contact_1.updated AS contact_1_updated, contact_1.vcard AS contact_1_vcard, contact_1.vcard_fetched AS contact_1_vcard_fetched, contact_1.client_type AS contact_1_client_type -FROM participant LEFT OUTER JOIN room AS room_1 ON room_1.id = participant.room_id LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room_1.avatar_id LEFT OUTER JOIN contact AS contact_1 ON contact_1.id = participant.contact_id LEFT OUTER JOIN avatar AS avatar_2 ON avatar_2.id = contact_1.avatar_id -WHERE ? = participant.room_id AND (participant.nickname = ? OR participant.resource = ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00049s] (1, 'firstwitch', 'firstwitch') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00037s] (1,) -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:27 Merged -DEBUG romeo@montague.lit:room@aim.shakespeare.lit/firstwitch:db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO participant (room_id, contact_id, is_user, affiliation, role, presence_sent, resource, nickname, nickname_no_illegal, hats, extra_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00039s] (1, None, 0, 'member', 'participant', 0, 'firstwitch', 'firstwitch', 'firstwitch', '[]', None) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00032s] (1, '20cc31865e3e4393b6b37f77c6d8a43a') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] (1, '20cc31865e3e4393b6b37f77c6d8a43a', '2025-11-24 07:13:03.826655', '', 'BACKFILL', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.003522s ago] (1, 'c8982e0b878c4cfc8e23fcab7afc440e') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00029s] (1, 111) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.004429s ago] (1, 'c8982e0b878c4cfc8e23fcab7afc440e', '2025-11-25 07:13:03.826655', '', 'BACKFILL', 111, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.007404s ago] (1, '3a7c888ae62f461e8a78ddd6dfb21586') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.00363s ago] (1, 222) -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.007549s ago] (1, '3a7c888ae62f461e8a78ddd6dfb21586', '2025-11-26 07:13:03.826655', '', 'BACKFILL', 222, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01051s ago] (1, 'c5d52a6d437c4fb5a7cf5d45c881ab53') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.009905s ago] (1, 'c5d52a6d437c4fb5a7cf5d45c881ab53', '2025-11-27 07:13:03.826655', '', 'BACKFILL', None, '') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01322s ago] (1, '1eb3cdef-e725-46e1-b111-951fae58e155') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01273s ago] (1, '1eb3cdef-e725-46e1-b111-951fae58e155', '2025-11-29 07:13:03.840554', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', None, 'BODY1') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01618s ago] (1, '555') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00028s] (1, '555') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01707s ago] (1, '555', '2025-11-29 07:13:03.843461', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', '555', 'BODY2') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02049s ago] (1, 'efc2c587-9a52-401c-8d61-7981c05bbf9f') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.01993s ago] (1, 'efc2c587-9a52-401c-8d61-7981c05bbf9f', '2025-11-29 07:13:03.847788', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', None, 'BODY3') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02325s ago] (1, '666') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.006793s ago] (1, '666') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02344s ago] (1, '666', '2025-11-29 07:13:03.850582', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', '666', 'BODY5') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02674s ago] (1, '2eb32467-0016-401e-bb0f-2fd4833a2078') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02622s ago] (1, '2eb32467-0016-401e-bb0f-2fd4833a2078', '2025-11-29 07:13:03.854067', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', None, 'BODY6') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.stanza_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02974s ago] (1, '83814005-c321-44f3-94bc-d0558b25f293') -INFO sqlalchemy.engine.Engine:base.py:1846 INSERT INTO mam (room_id, stanza_id, timestamp, author_jid, source, legacy_id, stanza) VALUES (?, ?, ?, ?, ?, ?, ?) -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.02919s ago] (1, '83814005-c321-44f3-94bc-d0558b25f293', '2025-11-29 07:13:03.857101', 'room@aim.shakespeare.lit/firstwitch', 'LIVE', None, 'BODY7') -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.history_filled -FROM room -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] (1,) -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slidge.group.room:room.py:312 Fetching history for -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00038s] (1,) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL AND mam.source = ? ORDER BY mam.timestamp DESC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00035s] (1, 'BACKFILL') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.timestamp AS mam_timestamp -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00033s] (1, '222') -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT mam.id, mam.room_id, mam.stanza_id, mam.timestamp, mam.author_jid, mam.source, mam.legacy_id, mam.stanza -FROM mam -WHERE mam.room_id = ? AND mam.legacy_id IS NOT NULL AND mam.source = ? AND mam.timestamp > ? ORDER BY mam.timestamp ASC -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00034s] (1, 'LIVE', '2025-11-26 07:13:03.826655') -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG romeo@montague.lit:muc::db.py:25 Merging -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 SELECT room.id AS room_id, room.user_account_id AS room_user_account_id, room.legacy_id AS room_legacy_id, room.jid AS room_jid, room.avatar_id AS room_avatar_id, room.name AS room_name, room.description AS room_description, room.subject AS room_subject, room.subject_date AS room_subject_date, room.subject_setter AS room_subject_setter, room.n_participants AS room_n_participants, room.muc_type AS room_muc_type, room.user_nick AS room_user_nick, room.user_resources AS room_user_resources, room.participants_filled AS room_participants_filled, room.history_filled AS room_history_filled, room.extra_attributes AS room_extra_attributes, room.updated AS room_updated, avatar_1.id AS avatar_1_id, avatar_1.hash AS avatar_1_hash, avatar_1.height AS avatar_1_height, avatar_1.width AS avatar_1_width, avatar_1.legacy_id AS avatar_1_legacy_id, avatar_1.url AS avatar_1_url, avatar_1.etag AS avatar_1_etag, avatar_1.last_modified AS avatar_1_last_modified -FROM room LEFT OUTER JOIN avatar AS avatar_1 ON avatar_1.id = room.avatar_id -WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 0.06001s ago] (1,) -DEBUG romeo@montague.lit:muc::db.py:27 Merged -DEBUG romeo@montague.lit:muc::db.py:29 Committing to DB -INFO sqlalchemy.engine.Engine:base.py:1846 UPDATE room SET history_filled=? WHERE room.id = ? -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00026s] (1, 1) -INFO sqlalchemy.engine.Engine:base.py:2708 COMMIT -INFO sqlalchemy.engine.Engine:base.py:2702 BEGIN (implicit) -INFO sqlalchemy.engine.Engine:base.py:1846 DELETE FROM mam -INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00019s] () -INFO sqlalchemy.engine.Engine:base.py:2705 ROLLBACK -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slidge.core.gateway:gateway.py:702 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 17%] ------------------------------- live log teardown ------------------------------- -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:109 Resetting subclass of -DEBUG slidge.util.util:util.py:112 No subclass were registered for - -tests/test_chat_commands.py::TestChatCommands::test_command_help --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - help - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: message -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Available commands: -command1 -- Command number one -command2 -- Command number two -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 17%] -tests/test_chat_commands.py::TestChatCommands::test_confirm_no --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - command1 - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: message -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: Confirm? -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - no - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: message -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Canceled - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 17%] -tests/test_chat_commands.py::TestChatCommands::test_confirm_yes --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - command1 - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: message -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: Confirm? -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - yes - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: message -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - End of command. - - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 18%] -tests/test_chat_commands.py::TestChatCommands::test_input --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: blabla -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - reply - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: message -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 18%] -tests/test_chat_commands.py::TestChatCommands::test_non_existing --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - non-existing - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: message -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Wut? I don't know that command: non-existing -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: - Wut? I don't know that command: non-existing -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 19%] -tests/test_chat_commands.py::TestChatCommands::test_other_destination --------------------------------- live log call --------------------------------- -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: connected -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:602 RECV: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0030: Service Discovery -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0004: Data Forms -DEBUG slixmpp.plugins.base:base.py:326 Loaded Plugin: XEP-0050: Ad-Hoc Commands -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1440 RECV: - help - -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: message -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:614 End of stream received -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1381 SEND: -DEBUG slixmpp.xmlstream.xmlstream:xmlstream.py:1108 Event triggered: killed -PASSED [ 19%] -tests/test_config.py::test_get_parser PASSED [ 19%] -tests/test_config.py::test_bool --------------------------------- live log call --------------------------------- -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from [] to [] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to False -DEBUG slidge.util.conf:conf.py:166 Removing from argv -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['--some-bool'] to ['--some-bool'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to True -DEBUG slidge.util.conf:conf.py:166 Removing from argv -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['--true'] to [] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['--true=false'] to ['--true'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to False -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['--true=true'] to [] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['--some-bool=true'] to ['--some-bool'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to True -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['--some-bool=false'] to [] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_bool0/conf.conf'] to ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_bool0/conf.conf'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['--some-other-bool=false'] to [] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE2' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_OTHER_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_bool0/conf.conf'] to ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_bool0/conf.conf'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['--some-other-bool=true'] to ['--some-other-bool'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE2' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_OTHER_BOOL' to True -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_bool0/conf.conf'] to ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_bool0/conf.conf'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from [] to [] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE2' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_OTHER_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_bool0/conf.conf'] to ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_bool0/conf.conf'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['--true2=true'] to [] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE2' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_OTHER_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_bool0/conf.conf'] to ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_bool0/conf.conf'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_BOOL' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['--true2=false'] to ['--true2'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE2' to False -DEBUG slidge.util.conf:conf.py:184 Setting 'SOME_OTHER_BOOL' to False -PASSED [ 20%] -tests/test_config.py::test_true_by_default_file --------------------------------- live log call --------------------------------- -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_true_by_default_file0/conf.conf'] to ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_true_by_default_file0/conf.conf'] -DEBUG slidge.util.conf:conf.py:184 Setting 'TRUE' to True -PASSED [ 20%] -tests/test_config.py::test_false_by_default_file --------------------------------- live log call --------------------------------- -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_false_by_default_file0/conf.conf'] to ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_false_by_default_file0/conf.conf'] -DEBUG slidge.util.conf:conf.py:184 Setting 'FALSE' to False -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_false_by_default_file0/conf.conf'] to ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_false_by_default_file0/conf.conf'] -DEBUG slidge.util.conf:conf.py:184 Setting 'FALSE' to True -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_false_by_default_file0/conf.conf'] to ['-c', '/tmp/pytest-of-pbuilder1/pytest-0/test_false_by_default_file0/conf.conf'] -DEBUG slidge.util.conf:conf.py:184 Setting 'FALSE' to False -PASSED [ 20%] -tests/test_config.py::test_slidge_conf PASSED [ 21%] -tests/test_config.py::test_set_conf --------------------------------- live log call --------------------------------- -DEBUG slidge.util.conf:conf.py:177 Removed boolean values from ['-c', '/build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build/dev/confs/slidge-example.ini', '--legacy-module=slidge.plugins.dummy', '--jid=test.localhost', '--ignore-delay-threshold=200'] to ['-c', '/build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build/dev/confs/slidge-example.ini', '--legacy-module=slidge.plugins.dummy', '--jid=test.localhost', '--ignore-delay-threshold=200'] -PASSED [ 21%] -tests/test_config.py::test_rest PASSED [ 21%] -tests/test_config.py::test_unrecognized_after_boolean PASSED [ 22%] -tests/test_db/test_store.py::test_delete_avatar PASSED [ 22%] -tests/test_db/test_store.py::test_delete_contact_avatar_orphan PASSED [ 23%] -tests/test_db/test_store.py::test_unregister PASSED [ 23%] -tests/test_db/test_store.py::test_unregister_with_participants PASSED [ 23%] -tests/test_db/test_user.py::test_user PASSED [ 24%] -tests/test_feature_restriction.py::test_no_restriction PASSED [ 24%] -tests/test_feature_restriction.py::test_single_reaction_any_emoji PASSED [ 24%] -tests/test_feature_restriction.py::test_single_emoji PASSED [ 25%] -tests/test_feature_restriction.py::test_two_emojis PASSED [ 25%] -tests/test_feature_restriction.py::test_two_emojis_single_reaction PASSED [ 26%] -tests/test_gateway_wide_reaction_restrictions.py::TestGatewayWideRestrictions::test_error_multi_emoji PASSED [ 26%] -tests/test_gateway_wide_reaction_restrictions.py::TestGatewayWideRestrictions::test_gateway_wide_restrictions PASSED [ 26%] -tests/test_mam_archivable.py::TestArchivable::test_hint_no_permanent_store PASSED [ 27%] -tests/test_mam_archivable.py::TestArchivable::test_hint_no_store PASSED [ 27%] -tests/test_mam_archivable.py::TestArchivable::test_hint_store PASSED [ 27%] -tests/test_mam_archivable.py::TestArchivable::test_marker PASSED [ 28%] -tests/test_mam_archivable.py::TestArchivable::test_retract PASSED [ 28%] -tests/test_mds.py::TestMDS::test_add_to_whitelist PASSED [ 28%] -tests/test_mds.py::TestMDS::test_receive_event PASSED [ 29%] -tests/test_mds.py::TestMDS::test_send_mds PASSED [ 29%] -tests/test_muc.py::TestMuc::test_add_to_bookmarks PASSED [ 30%] -tests/test_muc.py::TestMuc::test_bookmark_chat_notification_setting PASSED [ 30%] -tests/test_muc.py::TestMuc::test_bookmark_extension_preservation PASSED [ 30%] -tests/test_muc.py::TestMuc::test_correct_from_legacy PASSED [ 31%] -tests/test_muc.py::TestMuc::test_correct_from_xmpp PASSED [ 31%] -tests/test_muc.py::TestMuc::test_disco_channel PASSED [ 31%] -tests/test_muc.py::TestMuc::test_disco_group PASSED [ 32%] -tests/test_muc.py::TestMuc::test_disco_group_emoji_restricted PASSED [ 32%] -tests/test_muc.py::TestMuc::test_disco_items PASSED [ 32%] -tests/test_muc.py::TestMuc::test_disco_non_existing_room PASSED [ 33%] -tests/test_muc.py::TestMuc::test_disco_participant PASSED [ 33%] -tests/test_muc.py::TestMuc::test_disco_room_avatar PASSED [ 34%] -tests/test_muc.py::TestMuc::test_get_members PASSED [ 34%] -tests/test_muc.py::TestMuc::test_group_rename PASSED [ 34%] -tests/test_muc.py::TestMuc::test_illegal_nickname PASSED [ 35%] -tests/test_muc.py::TestMuc::test_illegal_nickname_quoted_fallback PASSED [ 35%] -tests/test_muc.py::TestMuc::test_join_channel PASSED [ 35%] -tests/test_muc.py::TestMuc::test_join_group PASSED [ 36%] -tests/test_muc.py::TestMuc::test_join_muc_no_nick PASSED [ 36%] -tests/test_muc.py::TestMuc::test_join_room_avatar PASSED [ 36%] -tests/test_muc.py::TestMuc::test_last_page PASSED [ 37%] -tests/test_muc.py::TestMuc::test_mam_all PASSED [ 37%] -tests/test_muc.py::TestMuc::test_mam_bare_jid PASSED [ 38%] -tests/test_muc.py::TestMuc::test_mam_echo PASSED [ 38%] -tests/test_muc.py::TestMuc::test_mam_flip PASSED [ 38%] -tests/test_muc.py::TestMuc::test_mam_flip_no_max PASSED [ 39%] -tests/test_muc.py::TestMuc::test_mam_form_fields PASSED [ 39%] -tests/test_muc.py::TestMuc::test_mam_from_user_carbon PASSED [ 39%] -tests/test_muc.py::TestMuc::test_mam_metadata PASSED [ 40%] -tests/test_muc.py::TestMuc::test_mam_metadata_empty PASSED [ 40%] -tests/test_muc.py::TestMuc::test_mam_page_after PASSED [ 41%] -tests/test_muc.py::TestMuc::test_mam_page_after_last PASSED [ 41%] -tests/test_muc.py::TestMuc::test_mam_page_after_not_found PASSED [ 41%] -tests/test_muc.py::TestMuc::test_mam_page_limit PASSED [ 42%] -tests/test_muc.py::TestMuc::test_mam_specific_id PASSED [ 42%] -tests/test_muc.py::TestMuc::test_mam_with PASSED [ 42%] -tests/test_muc.py::TestMuc::test_moderate_by_moderator PASSED [ 43%] -tests/test_muc.py::TestMuc::test_moderate_by_room PASSED [ 43%] -tests/test_muc.py::TestMuc::test_msg_from_legacy PASSED [ 43%] -tests/test_muc.py::TestMuc::test_msg_from_xmpp PASSED [ 44%] -tests/test_muc.py::TestMuc::test_msg_reply_from_legacy PASSED [ 44%] -tests/test_muc.py::TestMuc::test_msg_reply_from_legacy_fallback PASSED [ 45%] -tests/test_muc.py::TestMuc::test_msg_reply_from_xmpp PASSED [ 45%] -tests/test_muc.py::TestMuc::test_msg_reply_self_from_legacy PASSED [ 45%] -tests/test_muc.py::TestMuc::test_msg_reply_to_user PASSED [ 46%] -tests/test_muc.py::TestMuc::test_non_anonymous_participants_with_same_nickname PASSED [ 46%] -tests/test_muc.py::TestMuc::test_participant_avatar PASSED [ 46%] -tests/test_muc.py::TestMuc::test_presence_propagation PASSED [ 47%] -tests/test_muc.py::TestMuc::test_react_from_legacy PASSED [ 47%] -tests/test_muc.py::TestMuc::test_react_from_xmpp PASSED [ 47%] -tests/test_muc.py::TestMuc::test_recv_error_non_existing_muc PASSED [ 48%] -tests/test_muc.py::TestMuc::test_recv_non_kickable_error PASSED [ 48%] -tests/test_muc.py::TestMuc::test_rename_from_contact PASSED [ 49%] -tests/test_muc.py::TestMuc::test_rename_from_contact_with_forbidden_char PASSED [ 49%] -tests/test_muc.py::TestMuc::test_rename_participant_from_muc PASSED [ 49%] -tests/test_muc.py::TestMuc::test_rename_participant_from_participant PASSED [ 50%] -tests/test_muc.py::TestMuc::test_resource_not_joined PASSED [ 50%] -tests/test_muc.py::TestMuc::test_room_avatar PASSED [ 50%] -tests/test_muc.py::TestMuc::test_self_ping_connected PASSED [ 51%] -tests/test_muc.py::TestMuc::test_self_ping_disconnected PASSED [ 51%] -tests/test_muc.py::TestMuc::test_send_to_bad_resource PASSED [ 52%] -tests/test_muc.py::TestRoleAffiliation::test_affiliation_change PASSED [ 52%] -tests/test_muc.py::TestRoleAffiliation::test_affiliation_change_new_part PASSED [ 52%] -tests/test_muc.py::TestRoleAffiliation::test_role_change PASSED [ 53%] -tests/test_muc.py::TestSetAvatar::test_set_avatar PASSED [ 53%] -tests/test_muc.py::TestUserAvatar::test_fetch_user_avatar PASSED [ 53%] -tests/test_muc.py::TestUserAvatar::test_user_avatar PASSED [ 54%] -tests/test_muc.py::TestMUCAdmin::test_destruct PASSED [ 54%] -tests/test_muc.py::TestMUCAdmin::test_get_owner_form PASSED [ 54%] -tests/test_muc.py::TestMUCAdmin::test_kick PASSED [ 55%] -tests/test_muc.py::TestMUCAdmin::test_moderation_not_implemented PASSED [ 55%] -tests/test_muc.py::TestMUCAdmin::test_moderation_success PASSED [ 56%] -tests/test_muc.py::TestMUCAdmin::test_set_description PASSED [ 56%] -tests/test_muc.py::TestMUCAdmin::test_set_member PASSED [ 56%] -tests/test_muc.py::TestMUCAdmin::test_subject PASSED [ 57%] -tests/test_muc.py::TestJoinAway::test_away_contact_joins PASSED [ 57%] -tests/test_muc.py::TestJoinAway::test_online_contact_joins PASSED [ 57%] -tests/test_muc.py::TestMentions::test_mentions PASSED [ 58%] -tests/test_muc.py::TestHats::test_hats PASSED [ 58%] -tests/test_muc.py::TestNickChange::test_user_gets_away PASSED [ 58%] -tests/test_muc.py::TestNickChange::test_user_nick_change PASSED [ 59%] -tests/test_muc.py::TestMUCRegistration::test_request_registration_form_known_muc PASSED [ 59%] -tests/test_muc.py::TestMUCRegistration::test_request_registration_form_unknown_muc PASSED [ 60%] -tests/test_muc.py::TestMUCRegistration::test_request_remove_known_muc PASSED [ 60%] -tests/test_muc_subject.py::TestMUCSubject::test_empty_subject PASSED [ 60%] -tests/test_muc_subject.py::TestMUCSubject::test_set_thread_subject PASSED [ 61%] -tests/test_muc_subject.py::TestMUCSubject::test_user_set_thread_subject PASSED [ 61%] -tests/test_resourceprep.py::test_unassigned_code_points PASSED [ 61%] -tests/test_resourceprep.py::test_control_chars PASSED [ 62%] -tests/test_resourceprep.py::test_control_chars_and_unassigned_code_points PASSED [ 62%] -tests/test_session.py::TestSession::test_avatar PASSED [ 63%] -tests/test_session.py::TestSession::test_avatar_unpublish PASSED [ 63%] -tests/test_session.py::TestSession::test_bob_not_found PASSED [ 63%] -tests/test_session.py::TestSession::test_carbon_retract PASSED [ 64%] -tests/test_session.py::TestSession::test_gateway_receives_presence_probe PASSED [ 64%] -tests/test_session.py::TestSession::test_juliet_sends_link_preview PASSED [ 64%] -tests/test_session.py::TestSession::test_link_preview PASSED [ 65%] -tests/test_session.py::TestSession::test_mark_all_messages PASSED [ 65%] -tests/test_session.py::TestSession::test_movim_custom_emoji PASSED [ 65%] -tests/test_session.py::TestSession::test_movim_sticker PASSED [ 66%] -tests/test_session.py::TestSession::test_multi_correction PASSED [ 66%] -tests/test_session.py::TestSession::test_multi_correction_caption PASSED [ 67%] -tests/test_session.py::TestSession::test_new_thread_from_xmpp PASSED [ 67%] -tests/test_session.py::TestSession::test_sims PASSED [ 67%] -tests/test_session.py::TestSession::test_user_send_invitation PASSED [ 68%] -tests/test_session.py::TestSession::test_user_send_invitation_to_standard_muc PASSED [ 68%] -tests/test_session_2.py::TestSession2::test_conflict_on_join PASSED [ 68%] -tests/test_session_2.py::TestSession2::test_contact_init PASSED [ 69%] -tests/test_session_2.py::TestSession2::test_correction PASSED [ 69%] -tests/test_session_2.py::TestSession2::test_disco_unnamed_room PASSED [ 69%] -tests/test_session_2.py::TestSession2::test_fill_participant_duplicate PASSED [ 70%] -tests/test_session_2.py::TestSession2::test_group_init PASSED [ 70%] -tests/test_session_2.py::TestSession2::test_leave_group PASSED [ 71%] -tests/test_session_2.py::TestSession2::test_live_message_then_fill_participants PASSED [ 71%] -tests/test_session_2.py::TestSession2::test_participant_avatar_race_condition PASSED [ 71%] -tests/test_session_2.py::TestSession2::test_presence_to_user_account PASSED [ 72%] -tests/test_session_2.py::TestSession2::test_reaction_fallback PASSED [ 72%] -tests/test_session_2.py::TestSession2::test_reaction_fallback_muc PASSED [ 72%] -tests/test_session_2.py::TestSession2::test_set_user_nick_outside_update_info PASSED [ 73%] -tests/test_session_2.py::TestSession2::test_slow_avatar PASSED [ 73%] -tests/test_session_2.py::TestSession2::test_slow_avatar_in_task PASSED [ 73%] -tests/test_session_2.py::TestSession2::test_user_available PASSED [ 74%] -tests/test_set_name_before_fill.py::TestSetNameBeforeFill::test_set_contact_name_before_fill PASSED [ 74%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_adhoc_forbidden_non_admin PASSED [ 75%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_attachments PASSED [ 75%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_delivery_receipt PASSED [ 75%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_adhoc_command_register PASSED [ 76%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_adhoc_commands_as_admin PASSED [ 76%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_adhoc_commands_as_logged_user PASSED [ 76%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_adhoc_commands_as_non_logged_user PASSED [ 77%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_adhoc_commands_as_unauthorized PASSED [ 77%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_adhoc_commands_unregistered PASSED [ 78%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_component PASSED [ 78%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_items_registered_existing_contact PASSED [ 78%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_local_part_unregistered PASSED [ 79%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_registered_existing_contact PASSED [ 79%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_registered_existing_contact_bare_jid PASSED [ 79%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_disco_restricted_reaction PASSED [ 80%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_from_eve_to_juliet PASSED [ 80%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_from_romeo_to_eve PASSED [ 80%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_from_romeo_to_juliet PASSED [ 81%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_gateway_message PASSED [ 81%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_jabber_iq_gateway PASSED [ 82%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_jabber_iq_gateway_on_contact PASSED [ 82%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_jid_validator PASSED [ 82%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_juliet_sends_text PASSED [ 83%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_last_seen PASSED [ 83%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_non_existing_contact PASSED [ 83%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_reactions PASSED [ 84%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_reactions_fallback PASSED [ 84%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_romeo_composing PASSED [ 84%] -tests/test_shakespeare.py::TestAimShakespeareBase::test_unregister PASSED [ 85%] -tests/test_shakespeare.py::TestPrivilege::test_privilege PASSED [ 85%] -tests/test_shakespeare.py::TestContact::test_caps PASSED [ 86%] -tests/test_shakespeare.py::TestContact::test_caps_extended PASSED [ 86%] -tests/test_shakespeare.py::TestContact::test_correct PASSED [ 86%] -tests/test_shakespeare.py::TestContact::test_disco_bare PASSED [ 87%] -tests/test_shakespeare.py::TestContact::test_disco_resource PASSED [ 87%] -tests/test_shakespeare.py::TestContact::test_juliet_send_friend_request_user_accepts PASSED [ 87%] -tests/test_shakespeare.py::TestContact::test_juliet_send_friend_request_user_rejects PASSED [ 88%] -tests/test_shakespeare.py::TestContact::test_presence PASSED [ 88%] -tests/test_shakespeare.py::TestContact::test_probe PASSED [ 89%] -tests/test_shakespeare.py::TestContact::test_retract PASSED [ 89%] -tests/test_shakespeare.py::TestContact::test_send_several_subscription_requests_in_a_row PASSED [ 89%] -tests/test_shakespeare.py::TestContact::test_user_subscribe_to_friend PASSED [ 90%] -tests/test_shakespeare.py::TestContact::test_user_subscribe_to_non_friend_accept PASSED [ 90%] -tests/test_shakespeare.py::TestContact::test_user_subscribe_to_non_friend_reject PASSED [ 90%] -tests/test_shakespeare.py::TestContact::test_vcard_temp PASSED [ 91%] -tests/test_shakespeare.py::TestCarbon::test_carbon_ignore PASSED [ 91%] -tests/test_shakespeare.py::TestCarbon::test_carbon_send_file PASSED [ 91%] -tests/test_shakespeare.py::TestUserGetsOnline::test_user_online_with_caps PASSED [ 92%] -tests/test_shakespeare.py::TestUserGetsOnline::test_user_online_with_caps_no_nick_notify PASSED [ 92%] -tests/test_shakespeare.py::TestUserGetsOnline::test_user_online_without_caps PASSED [ 93%] -tests/test_shakespeare.py::TestUserPresence::test_user_presence PASSED [ 93%] -tests/test_stanza_link_preview.py::TestLinkPreview::testGetLinkPreview PASSED [ 93%] -tests/test_stanza_link_preview.py::TestLinkPreview::testGetLinkPreviews PASSED [ 94%] -tests/test_stanza_link_preview.py::TestLinkPreview::testSetLinkPreview PASSED [ 94%] -tests/test_type_conversion.py::TestLegacyTypeConversion::test_contact PASSED [ 94%] -tests/test_type_conversion.py::TestLegacyTypeConversion::test_muc PASSED [ 95%] -tests/test_util.py::test_subclass PASSED [ 95%] -tests/test_util.py::test_phone_validation PASSED [ 95%] -tests/test_util.py::test_strip_delay PASSED [ 96%] -tests/test_util.py::test_merge_presence PASSED [ 96%] -tests/test_util.py::test_replace_mentions PASSED [ 97%] -tests/test_util.py::test_strip_emoji PASSED [ 97%] -tests/test_util.py::test_last_seen_fallback_formatting PASSED [ 97%] -tests/test_vcard.py::TestSession::test_fetch_pubsub PASSED [ 98%] -tests/test_vcard.py::TestSession::test_fetch_pubsub_empty PASSED [ 98%] -tests/test_vcard.py::TestSession::test_fetch_raw_iq PASSED [ 98%] -tests/test_vcard.py::TestSession::test_fetch_raw_iq_empty PASSED [ 99%] -tests/test_vcard.py::TestSession::test_vcard_in_update_info PASSED [ 99%] -tests/test_vcard.py::TestSession::test_vcard_outside_update_info PASSED [100%] - -=============================== warnings summary =============================== -.pybuild/cpython3_3.13_slidge/build/tests/test_attachment.py: 2 warnings -.pybuild/cpython3_3.13_slidge/build/tests/test_mds.py: 2 warnings -.pybuild/cpython3_3.13_slidge/build/tests/test_muc.py: 12 warnings -.pybuild/cpython3_3.13_slidge/build/tests/test_session_2.py: 1 warning - /build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build/slidge/core/mixins/message_maker.py:35:DeprecationWarning:NotImplemented should not be used in a boolean context - -.pybuild/cpython3_3.13_slidge/build/tests/test_attachment.py::TestAttachmentNoUpload::test_multi_moderation - /build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build/slidge/db/store.py:146:DeprecationWarning:NotImplemented should not be used in a boolean context - -.pybuild/cpython3_3.13_slidge/build/tests/test_muc.py::TestMuc::test_join_group -.pybuild/cpython3_3.13_slidge/build/tests/test_muc.py::TestMuc::test_participant_avatar -.pybuild/cpython3_3.13_slidge/build/tests/test_muc.py::TestJoinAway::test_away_contact_joins -.pybuild/cpython3_3.13_slidge/build/tests/test_muc.py::TestJoinAway::test_online_contact_joins -.pybuild/cpython3_3.13_slidge/build/tests/test_muc.py::TestHats::test_hats - /build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build/slidge/core/mixins/db.py:30:SAWarning:Object of type not in session, add operation along 'Room.participants' will not proceed - -.pybuild/cpython3_3.13_slidge/build/tests/test_muc.py::TestMUCRegistration::test_request_remove_known_muc -.pybuild/cpython3_3.13_slidge/build/tests/test_session_2.py::TestSession2::test_leave_group - /build/reproducible-path/slidge-0.3.3/.pybuild/cpython3_3.13_slidge/build/slidge/group/bookmarks.py:222:SAWarning:Object of type not in session, add operation along 'Room.participants' will not proceed (This warning originated from the Session 'autoflush' process, which was invoked automatically in response to a user-initiated operation. Consider using ``no_autoflush`` context manager if this warning happened while initializing objects.) - --- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html -================= 273 passed, 25 warnings in 70.96s (0:01:10) ================== +dh: command-omitted: The call to "dh_auto_test -O--buildsystem=pybuild" was omitted due to "DEB_BUILD_OPTIONS=nocheck" create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=pybuild dh_prep -O--buildsystem=pybuild @@ -11107,12 +1987,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/1375586/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1375586/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/3425042 and its subdirectories -I: Current time: Fri Nov 28 19:14:22 -12 2025 -I: pbuilder-time-stamp: 1764400462 +I: removing directory /srv/workspace/pbuilder/1375586 and its subdirectories +I: Current time: Sat Jan 2 03:39:15 +14 2027 +I: pbuilder-time-stamp: 1798810755