Slidge - XMPP gateways - 2025-02-22


  1. Kevin

    matrix announced that they will discontinue to develop and maintain any bridges

  2. Kevin

    so can slidge be used as its replacement ?

  3. nicoco

    Their XMPP bridge was never good anyway.

  4. Kevin

    i c :)

  5. nicoco

    And I think it's the same for their IRC bridge? Maybe it got better but at some point it was so bad that some IRC servers forbid it.

  6. nicoco

    > so can slidge be used as its replacement ? Yes? It depends on what you are looking for :)

  7. Kevin

    yeah it keeps on disconnecting and spams the chat room

  8. Kevin

    >> so can slidge be used as its replacement ? > Yes? It depends on what you are looking for :) to just bridge a matrix and a xmpp room ?

  9. Kevin

    logging in is not that useful anyway

  10. nicoco

    Slidge does not bridge rooms

  11. Kevin

    ohh

  12. nicoco

    Slidge (well, matridge to be accurate) lets you "pilot" your matrix account from XMPP

  13. Kevin

    so i login into matrix via my xmpp account with help of slidge

  14. nicoco

    gateway vs bridge or something but the terminology is confusing

  15. Kevin

    > Slidge (well, matridge to be accurate) lets you "pilot" your matrix account from XMPP ohh got it thanks

  16. nicoco

    maybe look into matterbridge?

  17. nicoco

    also, matrix may discontinue their bridges but there will probably be a community effort to keep them afloat? maybe?

  18. Kevin

    yeah

  19. c3p0

    nicoco pushed 2 commit(s) to slidge - fix(group): include unescaped nickname in participant stanzas (nicoco) - cfix: chore(deps): remove pickle-secure (nicoco) https://codeberg.org/slidge/slidge/compare/f9bfc7487..5ff8b3850

  20. kurisu

    I just registered with the telegram bridge and in Conversations I see a bunch of empty "group-$randomnumbers" chats, but not on Gajim. I don't see any of the chats I actually have on telegram

  21. nicoco

    1:1 chat do not open automatically, that's expected, you need to either receive or send message to someone if you want to see them in your contact list

  22. nicoco

    only the private groups are joined automatically

  23. nicoco

    group-XXXX@component is the JID of the MUCs, in theory you should see their proper names, maybe Conversations waits before actually fetching the name? I am not sure

  24. c3p0

    nicoco pushed 3 commit(s) to slidge - imprv(logging): log performance measures at the DEBUG level (nicoco) - fix(sql): attribute error on message deletion (nicoco) - fix(group): handle unnamed subject setter (nicoco) https://codeberg.org/slidge/slidge/compare/5ff8b3850..26a934eea

  25. c3p0

    nicoco pushed 1 commit(s) to slidcord - chore(deps): update discord.py-self (nicoco) https://codeberg.org/slidge/slidcord/compare/376453b5a..657002d52

  26. c3p0

    nicoco pushed 2 commit(s) to slidgram - build(deps): bump versions, notably pyrofork (nicoco) - fix: do not drop messages when conversion to XEP-0393 fails (nicoco) https://codeberg.org/slidge/slidgram/compare/3b8506f4b..1943154c9

  27. gllmhyt

    nicoco Matteridge keep disconnecting and I'm not _that_ in need to use it so I'm disabling it atm on my host ; ping me if you want me to test something on it if you ever rework the login procedure

  28. nicoco

    gllmhyt, yeah I need to rework the reconnection logic in mattridge, unfortunately there is no feature-complete python lib for mattermost so I rolled my own but it sucks

  29. c3p0

    c3p0-slidge published a release for slidge v0.2.6 https://codeberg.org/slidge/slidge/releases/tag/v0.2.6

  30. kurisu

    > group-XXXX@component is the JID of the MUCs, in theory you should see their proper names, maybe Conversations waits before actually fetching the name? I am not sure Quite some time passed and nothing loaded no names or profile pictures and no messages :(

  31. ThUnD3r|Gr33n

    Docker Container updated ?

  32. lissine

    kurisu, try restarting the gateway

  33. nicoco

    Kurisu does not selfhost :)

  34. gllmhyt

    Scandalous

  35. gllmhyt

    How is the Debian packaging evolving with stable/release and trunk/nighly releases? 🤡

  36. gllmhyt

    How is the Debian packaging evolving with stable/main and trunk/nighly releases? 🤡

  37. gllmhyt

    How is the Debian packaging evolving with stable/main and dev/nighly releases? 🤡

  38. gal

    Gave up trying to get slidge-whatsapp to work under FreeBSD, though slidge does seem to install fine using pip. Go seems to be quite badly supported on FreeBSD (and Python seems te be treated as a second class citizen), and I couldn't get gopy to work at all. Might be worth mentioning in the slidge-whatsapp documentation as Whatsapp to XMPP bridging is something many folks with tiny VPSes want, and a part of them run FreeBSD.

  39. gal

    Gave up trying to get slidge-whatsapp to work under FreeBSD, though slidge does seem to install fine using pip. Go seems to be quite badly supported on FreeBSD (and Python seems te be treated as a second class citizen), and I couldn't get gopy to work at all. Might be worth mentioning in the slidge-whatsapp documentation as Whatsapp to XMPP bridging is something folks with tiny FreeBSD VPSes might want

  40. jsb

    lazy way: linux_enable="YES" in rc.conf and run the OCI image with podman

    👎 1
  41. qy

    > lazy way: linux_enable="YES" in rc.conf and run the OCI image with podman 👎

  42. vess

    codeberg is down :/

  43. vess

    wanted to setup the matrix slidge thing

  44. nicoco

    you can from pip

  45. nicoco

    `pipx install matridge`

  46. vess

    i wanted to check the documentation

  47. nicoco

    😬

  48. vess

    codeberg has been getting ddosed to much :(

  49. nicoco

    yes, there are assholes out there, for sure

  50. nicoco

    https://github.com/truenicoco/slidge-pages

  51. nicoco

    ^ vess clone that and you have the slidge.im website…

  52. nicoco

    (including the docs)

  53. vess

    o

  54. vess

    thank you very much!

  55. nicoco

    we'll setup mirrors for the containers too at some point…

  56. gal

    > lazy way: linux_enable="YES" in rc.conf and run the OCI image with podman That's why I specifically mentiones "tiny FreeBSD VPSes". It's a tint 1gb ram 1core 1ghz shitbox that's supposed to be just enough for a family chat server and that's it, no Linux emulation intricacies or anything of the sort.

  57. aereaux

    I reinstalled slidcord from the codeberg repo for the first time, but now I'm getting an error: `ModuleNotFoundError: No module named 'audioop'`. Any idea what might be wrong?

  58. nicoco

    aereaux: full traceback?

  59. aereaux

    ``` python[3879006]: Traceback (most recent call last): python[3879006]: File "<frozen runpy>", line 198, in _run_module_as_main python[3879006]: File "<frozen runpy>", line 88, in _run_code python[3879006]: File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/__main__.py", line 3, in <module> python[3879006]: main() python[3879006]: ~~~~^^ python[3879006]: File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/main.py", line 133, in main python[3879006]: legacy_module = importlib.import_module(config.LEGACY_MODULE) python[3879006]: File "/usr/lib/python3.13/importlib/__init__.py", line 88, in import_module python[3879006]: return _bootstrap._gcd_import(name[level:], package, level) python[3879006]: ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ python[3879006]: File "<frozen importlib._bootstrap>", line 1387, in _gcd_import python[3879006]: File "<frozen importlib._bootstrap>", line 1360, in _find_and_load python[3879006]: File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked python[3879006]: File "<frozen importlib._bootstrap>", line 935, in _load_unlocked python[3879006]: File "<frozen importlib._bootstrap_external>", line 1026, in exec_module python[3879006]: File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed python[3879006]: File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidcord/__init__.py", line 1, in <module> python[3879006]: import discord.utils python[3879006]: File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/discord/__init__.py", line 22, in <module> python[3879006]: from . import abc as abc, opus as opus, utils as utils python[3879006]: File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/discord/abc.py", line 59, in <module> python[3879006]: from .voice_client import VoiceClient, VoiceProtocol python[3879006]: File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/discord/voice_client.py", line 53, in <module> python[3879006]: from .player import AudioPlayer, AudioSource python[3879006]: File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/discord/player.py", line 28, in <module> python[3879006]: import audioop python[3879006]: ModuleNotFoundError: No module named 'audioop' ```

  60. nicoco

    weird, did you try to install voice support for discord.py-self?

  61. nicoco

    I can launch it without this module, I dunno

  62. aereaux

    No, I just did `pipx install slidcord==0.0.0.dev0 --pip-args='--extra-index-url https://codeberg.org/api/packages/slidge/pypi/simple/'` as recommended in the README

  63. aereaux

    Any idea what else I can try?

  64. nicoco

    Not really, I just tried it on my machine and slidcord launches…

  65. nicoco

    maybe try `pipx uninstall slidcord` and `rm -rf ~/.local/pipx/venvs/slidcord`?

  66. aereaux

    Ah, looks like it's a builtin module that was removed in python 3.13

  67. aereaux

    https://docs.python.org/3/library/audioop.html

  68. nicoco

    oooh

  69. nicoco

    well, then discord.py-self is not 3.13-ready

  70. aereaux

    I commented out that import (at least for now) and now I'm getting this error: ` ERROR:slidge.core.gateway:captcha_handler must derive from CaptchaHandler Traceback (most recent call last): File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slixmpp/xmlstream/xmlstream.py", line 1109, in handler_callback_routine await cb(data) File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/gateway.py", line 454, in __on_session_start session = self.session_cls.from_user(user) File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/session.py", line 617, in from_user return cls._from_user_or_none(user) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/session.py", line 612, in _from_user_or_none _sessions[user.jid.bare] = session = cls(user) ~~~^^^^^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidcord/session.py", line 33, in __init__ self.discord = Discord(self) ~~~~~~~^^^^^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidcord/client.py", line 44, in __init__ super().__init__(captcha_handler=captcha_handler) ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/discord/client.py", line 247, in __init__ raise TypeError(f'captcha_handler must derive from CaptchaHandler') TypeError: captcha_handler must derive from CaptchaHandler Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/__main__.py", line 3, in <module> main() ~~~~^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/main.py", line 193, in main gateway.loop.run_until_complete(asyncio.gather(*gateway.shutdown())) ~~~~~~~~~~~~~~~~^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/gateway.py", line 880, in shutdown tasks.append(self.session_cls.from_jid(user.jid).shutdown()) ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/session.py", line 645, in from_jid return cls._from_user_or_none(user) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/session.py", line 612, in _from_user_or_none _sessions[user.jid.bare] = session = cls(user) ~~~^^^^^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidcord/session.py", line 33, in __init__ self.discord = Discord(self) ~~~~~~~^^^^^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidcord/client.py", line 44, in __init__ super().__init__(captcha_handler=captcha_handler) ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/discord/client.py", line 247, in __init__ raise TypeError(f'captcha_handler must derive from CaptchaHandler') TypeError: captcha_handler must derive from CaptchaHandler `

  71. aereaux

    > well, then discord.py-self is not 3.13-ready Yeah, I'll file a bug report

  72. nicoco

    I did not update the docs, but `uv tool install` is supposedly a better `pipx` and `uv` lets you install several python versions so it might be a good lead

    👍 1
  73. aereaux

    > I commented out that import (at least for now) and now I'm getting this error: > ` > ERROR:slidge.core.gateway:captcha_handler must derive from CaptchaHandler > Traceback (most recent call last): > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slixmpp/xmlstream/xmlstream.py", line 1109, in handler_callback_routine > await cb(data) > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/gateway.py", line 454, in __on_session_start > session = self.session_cls.from_user(user) > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/session.py", line 617, in from_user > return cls._from_user_or_none(user) > ~~~~~~~~~~~~~~~~~~~~~~^^^^^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/session.py", line 612, in _from_user_or_none > _sessions[user.jid.bare] = session = cls(user) > ~~~^^^^^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidcord/session.py", line 33, in __init__ > self.discord = Discord(self) > ~~~~~~~^^^^^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidcord/client.py", line 44, in __init__ > super().__init__(captcha_handler=captcha_handler) > ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/discord/client.py", line 247, in __init__ > raise TypeError(f'captcha_handler must derive from CaptchaHandler') > TypeError: captcha_handler must derive from CaptchaHandler > Traceback (most recent call last): > File "<frozen runpy>", line 198, in _run_module_as_main > File "<frozen runpy>", line 88, in _run_code > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/__main__.py", line 3, in <module> > main() > ~~~~^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/main.py", line 193, in main > gateway.loop.run_until_complete(asyncio.gather(*gateway.shutdown())) > ~~~~~~~~~~~~~~~~^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/gateway.py", line 880, in shutdown > tasks.append(self.session_cls.from_jid(user.jid).shutdown()) > ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/session.py", line 645, in from_jid > return cls._from_user_or_none(user) > ~~~~~~~~~~~~~~~~~~~~~~^^^^^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidge/core/session.py", line 612, in _from_user_or_none > _sessions[user.jid.bare] = session = cls(user) > ~~~^^^^^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidcord/session.py", line 33, in __init__ > self.discord = Discord(self) > ~~~~~~~^^^^^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/slidcord/client.py", line 44, in __init__ > super().__init__(captcha_handler=captcha_handler) > ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File "/home/slidge/.local/share/pipx/venvs/slidcord/lib/python3.13/site-packages/discord/client.py", line 247, in __init__ > raise TypeError(f'captcha_handler must derive from CaptchaHandler') > TypeError: captcha_handler must derive from CaptchaHandler > ` Am I getting this only because it's trying to serve me a captcha?

  74. nicoco

    ooooh I think I get it

  75. nicoco

    slidcord is pulled from pypi but we rely on an unreleased slidcord (because latest release is broken)

  76. nicoco

    discord.py-self is pulled from pypi but we rely on an unreleased discord.py-self (because latest release is broken)

  77. nicoco

    try `pipx inject slidcord git+https://github.com/dolfies/discord.py-self`

  78. aereaux

    Hmmmm OK, `slidge pipx inject --force slidcord git+https://github.com/dolfies/discord.py-self/` seems to fix it! (both?)

  79. nicoco

    that sucks

  80. nicoco

    indeed, we should update the README until they release a 2.1…

  81. aereaux

    Wow, 2.0 is pretty old

  82. nicoco

    yeah, but it looks like they are even more release-shy than me xD

  83. c3p0

    nicoco pushed 1 commit(s) to slidcord - docs(readme): fix pipx install instructions (nicoco) https://codeberg.org/slidge/slidcord/compare/657002d52..eb818fb7b

  84. c3p0

    nicoco opened a pull request for slidge-whatsapp Do not prevent sending messages when link preview fails https://codeberg.org/slidge/slidge-whatsapp/pulls/19

  85. c3p0

    nicoco review_requested a pull request for slidge-whatsapp Do not prevent sending messages when link preview fails https://codeberg.org/slidge/slidge-whatsapp/pulls/19

  86. gal

    Installing slidge-whatsapp on Linux using pipx fails due to ``` #include <Python.h> ``` not existing. Is something wrong on my end, do I need to have some required package installed on my system? I only have Python, Go, and Slidge installed from Alpine's repo.

  87. gal

    Probably a rookie mistake, but the issue was that I was missing the Python developer package, known in Alpine as python3-dev

  88. gal

    No matter what I tried, slidge-whatsapp segfaults

  89. gal

    I've never worked with Python or Go, so no idea how to even go about trying to debug it, if anybody has some pointers I'd gladly have em

  90. nicoco

    gal: hmmm you may be the first one to try with alpine which has its quirks

  91. jsb

    > > lazy way: linux_enable="YES" in rc.conf and run the OCI image with podman > That's why I specifically mentiones "tiny FreeBSD VPSes". It's a tint 1gb ram 1core 1ghz shitbox that's supposed to be just enough for a family chat server and that's it, no Linux emulation intricacies or anything of the sort. I'm running an Anki sync server, PKI, web server, slidgram, postgresql, DNS, and ldap on my VPS with 1GB of memory, but whatever you do is your business

  92. jsb

    > > lazy way: linux_enable="YES" in rc.conf and run the OCI image with podman > That's why I specifically mentiones "tiny FreeBSD VPSes". It's a tint 1gb ram 1core 1ghz shitbox that's supposed to be just enough for a family chat server and that's it, no Linux emulation intricacies or anything of the sort. I'm running an Anki sync server, PKI, web server, slidgram, prosody, postgresql, DNS, and ldap on my VPS with 1GB of memory, but whatever you do is your business

  93. jsb

    the linux kernel modules use 473k of memory

  94. Menel

    Hm so many projects; uv uvx uxpipx