hoehermann / purple-presage

Pidgin/libpurple plug-in for Signal messenger using presage.
GNU General Public License v3.0
6 stars 0 forks source link

bitlbee support #1

Closed terminaldweller closed 1 month ago

terminaldweller commented 1 month ago

when i try to run purple-presage using bitlbee I get:

Warning: Can't find function `init_plugin_info' in `/usr/lib/bitlbee/libpresage.so'
Warning: Can't find function `init_plugin' in `/usr/lib/bitlbee/libpresage.so'

Does purple-presage support bitlbee? If yes, then what I am doing wrong?

hoehermann commented 1 month ago

Thank you for your request. I try to make this plug-in as compatible as I can, but I do not use bitlbee (or Spectrum) myself. I need to rely on community feed-back. This plug-in uses the same template as my other plug-ins (purple-gowhatsapp and purple-signald) and they have been reported to work. The functions init_plugin and init_plugin_info are not mandated by libpurple. bitlbee should be able to use the plug-in even without them. Maybe @mverboom @mooomooo @demure @Strykar or @yourealwaysbe can help us out.

If you want a feature-complete and reliable protocol bridge to Signal, but are not bound bitlbee, you may want to check out sildge https://git.sr.ht/~nicoco/slidgnal or matrix https://github.com/mautrix/signal.

terminaldweller commented 1 month ago

I am very familiar with your other projects. :D Thanks for being so awesome.

I ended up setting up mautrix-signal. Thanks again.

If I figured out why I couldn't get bitlbee to work I'll reopen this.

quotuva commented 1 month ago

Just wanna chime in that I have it working on the latest Ubuntu so:

hoehermann commented 1 month ago

I'll put "make login procedure more bitlbee-friendly" on the list of things to be done. Thank you for your contribution.

hoehermann commented 1 month ago

With commit da9da70, the plug-in should now detect the UI features (or rather the absence thereof) and provide the QR code URI in form of a text message. I added related instructions to the README.

quotuva commented 1 month ago

It works. Thank you! Btw is the <br> relevant to IRC clients? It was printed raw on mine (rcirc).

hoehermann commented 1 month ago

Pidgin wants HTML, so I need to turn newlines into <br> tags for messages being displayed properly. As far as I understood, XMPP relays (such as Spectrum) also want HTML. I want to check with the devs whether that means I must or must not set the flag PURPLE_CONNECTION_HTML for other hosts (e.g. bitlbee) to handle it reasonably. Or maybe I am just wrong and all messages should be plain-text instead of HTML. I could also use a newline in just that particular message.

Update: I received an answer from the libpurple dev grim. It is not explicitly documented anywhere, but messages are expected to be styled with Pango Markup – which is not actually HTML, but looks like a subset of HTML. All front-ends (or bridges to protocols) which do not understand HTML should be aware of that and use purple_markup_strip_html as needed. For this reason, I want to keep this message the way it is now. For IRC, that may have ugly side effects, on the other hand: Anyone who is reasonably tech-nerd enough to use IRC these days, can surely read past the stray HTML tags and still interpret the message correctly. ;)