Skip to content
Dresden XMPP-Meetup Beispielcode
Python Go JavaScript Java
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
boot-java
hermes-go
tigger-javascript
tooter-python
wikibot-java
wikipedia-go
LICENSE
README.md

README.md

XMPP-Meetup Dresden "Bots mit XMPP" (2019-08-15)

In diesem Repo findet ihr einigen Beispielcode zum Thema "Bots in XMPP", basierend auf existierenden Bots in vier Sprachen: Go, Java, JavaScript, Python!

Go

Der Beispielcode für Go ist ein einfacher Bot, der auf einem HTTP-Interface einen Parameter entgegennimmt und diesen an eine Liste von Empfängern und MUCs weiterleitet. Beispiel: curl 'localhost:27001/?text=Textnachricht' würde an die konfigurierten Empfänger die Nachricht Textnachricht senden.

Im Verzeichnis hermes-go (setzt mind. Go 1.11 für go mod voraus):

  1. go mod tidy (initialisiert go-xmpp)
  2. go build -o bin/hermes hermes.go (baut das binary in bin/hermes)
  3. Kopieren der config.example.json zu config.json und entsprechend anpassen. Hier kann der eigene, existierende Account genutzt werden (hermes nutzt dann hermes als Ressource)
  4. ./bin/hermes -v -http

Java

Aus zeitgründen leider nicht vorbereitet

JavaScript

Eingeschränkte Variante von tigger

Im Verzeichnis tigger-javascript (mit yarn oder npm installiert):

  1. npm install oder yarn install
  2. node server.js [jid] [password] [MUIC-Id/Nick]

Python

Im Verzeichnis tooter-python findet ihr einen Python-Bot, der zwischen einem XMPP-MUC und einer Mastodon-API kommuniziert. Hierzu wird asyncio verwendet, zusammen mit den aioxmpp und aiohttp libraries, um asynchron gleichzeitig sowohl Events von der Mastodon-API zu parsen, als auch Nachrichten aus dem MUC an den Bot zu verarbeiten. In dieser vereinfachten Version funktioniert der stats-Befehl im MUC, d. h. die Nachricht tooter: stats im MUC wird vom Bot verarbeitet und ein Reply gesendet.

Zum Setup im Unterordner:

  1. pipenv sync
  2. pipenv shell
  3. Kopieren der config.example.json zu config.json und entsprechend anpassen.
  4. python3 bot.py --debug

Wenn ihr den Bot selbst betreiben wollt, müsst ihr in Mastodon einen Token erzeugen (in den Settings), der eure Timeline lesen kann.

You can’t perform that action at this time.