eknoes / covidbot

Multi-platform messenger bot which provides updates on current COVID19 situation for Germany
https://covidbot.d-64.org
GNU General Public License v3.0
48 stars 8 forks source link

Weiteres Messengerprotokoll: Matrix #93

Closed pstn closed 2 years ago

pstn commented 3 years ago

Matrix ist ein mittlerweile recht verbreitetes dezentrales Messaging Protokoll, das bots nativ unterstützt.

Der covid-bot könnte entweder über die matrix-bot-sdk und einen e2ee reverse proxy implementiert werden, oder alternativ als maubot plugin.

eknoes commented 3 years ago

Guter Punkt. Stellst du dir das so vor, dass er auch in Channels interagiert oder quasi nur zu zweit? Wir haben bisher alles in Python gemacht, da würde sich das Python Bot SDK anbieten.

Wenn man sich dort den Example Bot anschaut, dann wäre das super simpel. Wir haben schon ein reines Text Interface, das wir für Threema und Signal nutzen. Falls also die Interaktion quasi genau so funktionieren sollte, dann müsste man mit dem Python SDK nur Nachrichten empfangen, eine Channel/Nutzer ID + die empfangene Nachricht reinpacken und bekommt eine Antwort + ggf. Bild zurück, die der Bot versenden würde.

pstn commented 3 years ago

Ja, scheint viel Sinn zu machen, das so zu bauen. Im Sinne der Datensparsamkeit würde ich dann noch einen pantalaimon zwischen den Bot und den matrix server setzen. Über Verifikation von Keys würde ich mir keine Gedanken machen und einfach alles akzeptieren, aber dann liegen immerhin die chat histories mit dem bot nicht im Klartext auf den homeservern rum.

eknoes commented 3 years ago

Weißt du, ob die vom SDK gespeichert werden? Eigentlich brauchen wir die ja nicht, wir brauchen nur ne eindeutige Kennung über die wir auch versenden können und der eingegebene Text wird direkt verworfen nach der Verarbeitung. Ich bin nicht so richtig drin im Matrix Protokoll, ich hätte gedacht, dass das was pantalaimon macht macht einfach das Matrix SDK. Oder ist das quasi unverschlüsselt und pantalaimon setzt sich dann nochmal dazwischen? Außerdem bräuchten wir dann einfach einen Account auf einem Home-Server, oder?

Ich bin gerade mitten in meinen Prüfungen und schaffe es wahrscheinlich erst danach, mich damit tiefer zu beschäftigen! Falls du Zeit und die Möglichkeit hast, kannst du auch gerne an einem PR arbeiten - ich kann gerne bei Fragen helfen. Ansonsten würde ich mir das in ein paar Wochen nach meinen Prüfungen mal ansehen :)

pstn commented 3 years ago

Ich bin asbsolut kein Python Developer, aber ich kann mal gucken, was ich erreichen kann. Sieht ja nicht so aus, als müsste ich irgendwelche komplexen Pattern awenden oder so. Ja, der Bot bräuchte einen Account auf einem homeserver. Ich würde dafür direkt matrix.org vorschlagen, da kann man sich einfach einen klicken (Etwas merkwürdig, dass das über die element domain läuft, aber die Firma hinter Element ist die gleiche Firma, die auch matrix.org betreibt).

eknoes commented 3 years ago

Cool, du lannst sehr gerne ein bisschen herumprobieren :) Ich glaube die Matrix Referenzmessengerimplementierung wurde mal umbenannt in Element, das finde ich aber auch verwirrend.

Nein, kompliziert glaube ich nicht. Wir haben eine Variante, die im Terminal läuft mit einer fixen User ID, vielleicht kannst du dir die gut angucken, die braucht nur 13 "eigene" Zeilen um den Bot zu implementieren: https://github.com/eknoes/covid-bot/blob/main/covidbot/text_interface.py#L210

Ich versuche heute Abend mal das Setup besser zu dokumentieren, also wie man das fix deployen kann oder lokal testet!

eknoes commented 3 years ago

Sorry, es ist echt einige Zeit vergangen und ich habe das noch nicht dokumentiert. Ich versuche das die Tage mal nachzuholen, damit gerade auch andere Leute Messengerinterfaces implementieren können.

whiskey01 commented 3 years ago

Hier noch ein grundlegendes Guide zu einem Matrix Bot: https://matrix.org/docs/guides/using-matrix-to-make-chatbot-software-from-the-1960-s-available-in-2018

errotu commented 2 years ago

Hier nur der Hinweis, dass die Unterstützung des Protokolls aktuell wieder bei E-Mail angefragt wurde. Im Hinblick darauf, dass der Bot vermutlich noch mindestens ein halbes Jahr aktiv genutzt wird, lohnt es sich ja vielleicht wirklich, sich das nochmal als Ergänzung anzuschauen?

eknoes commented 2 years ago

Mit Maubot sieht es auch nicht all zu schwierig aus. Ich schaue mir das mal bei Gelegenheit an!

Habe den Thread nochmal gelesen, https://github.com/shawnanastasio/python-matrix-bot-api sieht besser aus. Das schaue ich mal an!

eknoes commented 2 years ago

Irgendwelche Vorschläge für eine Matrix Instanz, die wir da nutzen sollten / könnten?

errotu commented 2 years ago

Top! Ich glaube, wir können einfach matrix.org nehmen. Im Hinblick auf die Zuverlässigkeit in dieser Liste scheint mir das die sicherste Wahl.

jennydiss commented 2 years ago

Bitte nimm mich mal jemand aus dem Verteiler   danke Von meinem/meiner Galaxy gesendet -------- Ursprüngliche Nachricht --------Von: Sönke @.> Datum: 06.12.21 00:08 (GMT+01:00) An: eknoes/covidbot @.> Cc: Subscribed @.***> Betreff: Re: [eknoes/covidbot] Weiteres Messengerprotokoll: Matrix (#93) Mit Maubot sieht es auch nicht all zu schwierig aus. Ich schaue mir das mal bei Gelegenheit an!

—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

eknoes commented 2 years ago

Hallo Jenny,

Wir haben keine Möglichkeit, dich hier irgendwie zu entfernen. Du bekommst diese E-Mails, weil du dich mit deinem Github.com Account irgendwie für unser Covidbot Repository angemeldet hast. Du musst entweder Die Links unten in deiner Mail anklicken ("—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe") oder am besten Mal deine Einstellungen auf Github anpassen. Dazu findest du mehr Informationen in diesen Hilfe Artikeln: https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions

jennydiss commented 2 years ago

Hallo Sönke, unsubscribe hab ich schon x mal versucht klappt nicht. Dann versuche ich den anderen Weg .Von meinem/meiner Galaxy gesendet -------- Ursprüngliche Nachricht --------Von: Sönke @.> Datum: 06.12.21 10:26 (GMT+01:00) An: eknoes/covidbot @.> Cc: jennydiss @.>, Comment @.> Betreff: Re: [eknoes/covidbot] Weiteres Messengerprotokoll: Matrix (#93)

Hallo Jenny,

Wir haben keine Möglichkeit, dich hier irgendwie zu entfernen. Du bekommst diese E-Mails, weil du dich mit deinem Github.com Account irgendwie für unser Covidbot Repository angemeldet hast. Du musst entweder Die Links unten in deiner Mail anklicken ("—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe") oder am besten Mal deine Einstellungen auf Github anpassen. Dazu findest du mehr Informationen in diesen Hilfe Artikeln:

https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications

https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

eknoes commented 2 years ago

Ich schaffe es leider nicht, den Bot für verschlüsselte Räume zum laufen zu bekommen, nur für unverschlüsselte. Ich habe das ein paar Stunden mit matrix-nio probiert. Alles, was ich gemacht habe, habe ich unter dem Branch matrix gepushed.

pstn commented 2 years ago

Hast du dir dafür mal pantalaimon angeguckt?

eknoes commented 2 years ago

Yes. Ich checke es nicht so wirklich, ich habe das Gefühl ich mache es ziemlich genau so. Hast du damit Erfahrungen? Ansonsten lese ich mir bei Gelegenheit mal durch, wie die E2EE bei Matrix abläuft, dann verstehe ich vielleicht auch eher wie ich das bei der Library mache!

eknoes commented 2 years ago

Ich glaube ich habe es, sollte heute vormittag noch kommen :)

eknoes commented 2 years ago

Läuft jetzt unter @d64_covidbot:matrix.org

Bin gespannt wie gut, kann mir vorstellen dass wir bspw. noch von der Default-Storage Lösung für Keys (SQLite) auf Postgres umstellen müssten. Aber das schaffe ich erstmal nicht mehr :)

@errotu: Passt du die Website an?

eknoes commented 2 years ago

Kurz zur Benutzung (Ich bin nicht aktiv auf Matrix, sagt gerne, wenn das nicht gut ist):

Wenn der Bot in einem Raum alleine mit einem Nutzer ist, antwortet er direkt. Ansonsten muss man immer ein @mention davor setzen.

pstn commented 2 years ago

Ich denke, das Verhalten von dem Bot geht so in Ordnung. Ich habe auch schon mit ihm geschrieben und es scheint zu funktionieren. Einziges Problem bisher: Der Bot sagt nichts, wenn er den Raum betritt. Wenn ich mich richtig erinnere, hat er bei mir bei Signal direkt was gesagt, wie man ihn benutzen kann.

eknoes commented 2 years ago

Stimmt, so ein Hallo zum Start wäre cool. Guter Hinweis!

eknoes commented 2 years ago

Ist jetzt implementiert :)

eknoes commented 2 years ago

Zum teilen als Link eignet sich wohl am ehesten: https://matrix.to/#/@d64_covidbot:matrix.org