Hallo,
ich beschreibe euch hier wie ihr mit meinem Breakbot Fork eine IRC <-> Gateway aufbaut. Da der Originale Breakbot den ihr hier findet leider ein paar Bugs und auch ein paar Funktionen zu wenig hat hab ich mich mal drangemacht eine möglichst funktionsfähigen Fork vom Breakbot zu erstellen.
Ihr braucht als Vorraussetzung
- Einen WhatsApp Zugang mit Login und Password Hash (Hier ist ein Link zum Thread)
- Installiertes Subversion und git (apt-get install subversion git)
- Die Python dateutil Library
1. Git Repository vom Breakbot clonen
2. Ins Arbeitsverzeichnis wechseln
3. Die erforderliche Python IRC Library oyoyo laden (Hierfür wird Subversion benötigt)
4. Einen aktuellen Clone der Python WhatsApp Library yowsup laden (dateutil Library wird benötigt für die yowsup)
(Direkt in das yowsup.git Verzeichnis, da sonst der Symbolische Link noch angepasst werden muss)
5. Die Debuggingausgaben aus der yowsup Library entfernen
Dort ändern wir in Zeile 25 das
Zitat
enabled = True
zu
Zitat
enabled = False
6. Konfiguration des Breakbots in der config.json
Die Gesamte Konfiguration des Breakbots findet sich in der config.json
config.json Beispiel:
{
"contacts": {
"4917699999999-111111111111@g.us": "#raspberry-pi",
"4917699999999": "botnick",
"4917644444444": "othernick"
},
"config": {
"wa_phone": "4917699999999",
"wa_password": "TJfdghjdshglhfdhgjls=",
"irc_nick": "botnick",
"irc_server_name": "irc.de.euirc.net",
"irc_server_port": 6667,
"bot_owner_nick": "owner",
"log_file": "log.txt",
"logging": 1,
"verbose": 2,
"spamcheck": 1,
"spamcheck_nick": "SpamScanner",
"filter": "keyword1,keyword2,keword3"
}
}
Alles anzeigen
In dem Abschnitt "contacts" finden sich alle Nummern mit passenden Aliasen die man per IRC erreichen möchte und auch die WhatsApp Gruppenchat Definitionen für die IRC Channels.
Ein Eintrag im Kontaktabschnitt sieht wie folgt für einzelne Kontakte aus
"LAENDERCODE+HANDYNUMMER": "ALIASNAME"
Einträge für Channels bedarfen einer WhatsApp Gruppen Chat ID (zu welcher wir gleich kommen)
Diese Einträge sind die eigentlichen Gateway Einträge
"WHATSAPPGROUPCHATID": "#CHANNELNAME"
Im Abschnitt "config" findet sich die Grundlegende Konfiguration des Bots
"wa_phone" ist die Handynummer welche der Pi haben soll
"wa_password" ist das Kenntwort des WhatsApp Accounts als Hash
"irc_nick" ist der Nickname den der Bot im Chat haben soll
"irc_server_name" die IP/Hostname des IRC Servers zu dem verbunden werden soll
"irc_server_port" der Port des IRC Servers
"bot_owner_nick" der Nickname des Besitzers (wird für Private Nachrichten verwandt)
"log_file" Dateiname der Logdatei in die die Log geschrieben wird, sofern eingeschaltet
"logging" Log aufzeichnen in Datei [1=ja, 0=nein]
"verbose" Verbose Level, je höher umso mehr Nachrichten in der Konsole [0=keine bis 4=alle]
"spamcheck" Spam Checker auf dem IRC Netz vorhanden [1= ja, 0=nein]
"spamcheck_nick" Spam Checker Nickname (so lassen falls nicht gebraucht)
"filter" Filter auf den die Nachrichten angewandt wird, nur die Keywords gehen durch (Liste getrennt durch Komma)
7. Den Bot mit Python das erste mal starten und Daumen drücken
8. Wenn der Bot erstmal läuft, an einem anderen WhatsApp Account einen Gruppenchat initiieren und den Bot einladen
Danach in der Gruppe eine Nachricht absenden und ihr solltet in der Bot Ausgabe soetwas ähnliches finden
Zitat
2013-11-10 22:27:09 II (2) bot.py:218: Channel 49176999999-1384025838@g.us not recognized
9.Die Bot-Konfiguration (config.json) fertigstellen
Mit STRG-C könnt ihr nun den Bot beenden und diese gefundene ID und den IRC Channel in der config.json im Kontaktabschnitt eintragen
z.B.
Danach den Bot erneut starten, und siehe da die Gateway steht
Ihr könnt den Bot nun per Private IRC Nachricht eine WhatsApp Nachricht schicken.
z.B. die folgende Nachricht an den Bot würde eine Nachricht (Sofern im Kontaktabschnitt der config.json definiert)
an NICKNAME mit der Nachricht NACHRICHT schicken
NICKNAME: NACHRICHT
Gleichzeitig werden alle Channel Nachrichten in dem der Bot gejoined ist weitergeleitet in den WhatsApp Gruppen Chat.
Ausser man halt Filter konfiguriert dann werden nur Nachrichten weitergeleitet welche auf die Schlagwörter passen.
Wenn ihr den Bot als Daemon auf eurem Pi laufen lassen wollt könnt ihr (ist nicht zwingend) den Verbose Level in der Konfiguration auf 0 stellen und den Bot mit folgendem Befehl in den Hintergrund befördern (Die Ausgaben die auf die Kommandozeile normalerweise geschrieben werden landen so im Nirvana)
Und schon habt ihr eine im Hintergrund laufende IRC<->WhatsApp Gateway
Ich hoffe das Tutorial ist einigermassen verständlich (wenn nicht seht es mir nach