Page MenuHomePhabricator

Mostek Telegram-IRC
Updated 1,489 Days AgoPublic

Version 2 of 5: You are viewing an older version of this document, as it appeared on Feb 29 2020, 11:19 PM.

Mostek łączący grupę #hackerspace-krk na Telegramie oraz kanał na IRCu z tą samą nazwą.

Obecny opiekun: Michał Zagórski

Obraz dockerowy: mzagorskadm/hskrk-lelegram na https://hub.docker.com/ - Dockerfile{F59334}

Budowanie projektu

Projekt jest budowany z kodu źródłowego udostępnionego na hswaw: https://gerrit.hackerspace.pl/plugins/gitiles/hscloud/+/refs/heads/master/personal/q3k/lelegram/. Klonujemy całe repozytorium hscloud.
W katalogu głównym repozytorium uruchamiamy:

. env.sh
bazel build //personal/q3k/lelegram

Wynikowa binarka znajduje się w lokalizacji bazel-bin/personal/q3k/lelegram/linux_amd64_stripped/lelegram

Byłem leniwy, więc używałem oficjalnego obrazu dockerowego Bazela do budowania:

docker run -it  -v $(pwd):/src/workspace:rw \
                   -v /tmp/build_output:/tmp/build_output:rw  \
                   -w /src/workspace \
                   --entrypoint=/bin/bash \
                   l.gcr.io/google/bazel:latest

Uruchomienie

Uruchamiamy z argumentami:

./lelegram   -irc_server chat.freenode.net:6667 \
                    -hspki_disable \
                    -irc_channel <kanał na ircu z hashami, np. '#hackerspace-krk' albo \#hackerspace-krk> \
                    -telegram_token <auth token bota telegramowego> \
                    -telegram_chat <groupId> \
                    -irc_login <login botowego połączenia na ircu> \
                    -irc_max_connections <liczba maksymalnych połączeń bota na irca>
  • -hskpi_disable: deaktywacja integracji z infrastrukturą k8s HSWAW.
  • groupId musi być numerem, zwykle ujemnym, najłatwiej poznać groupId z webowego telegrama lub szukając w logach, które grupy ignoruje, gdy nie ma przypisanej żadnej konkretnej.
  • Dodatkowe debugi dostępne z opcją -v <int> (im wyższy numer, tym więcej poziomów logowania łapie)
  • Dodatkowe opcje można wyświetlić ./lelegram -help
  • #Notka: Oryginalny bot nie wspiera opcji irc_login
Uruchomienie z dockera

W podstawowej wersji obraz uruchamia /bin/bash, więc należy go uruchomić, wywołując binarkę z argumentami:

docker run -d mzagorskadm/hskrk-lelegram /lelegram/lelegram   -irc_server chat.freenode.net:6667 \
                    -hspki_disable \
                    -irc_channel <kanał na ircu z hashami, np. '#hackerspace-krk' albo \#hackerspace-krk> \
                    -telegram_token <auth token bota telegramowego> \
                    -telegram_chat <groupId> \
                    -irc_login <login botowego połączenia na ircu> \
                    -irc_max_connections <liczba maksymalnych połączeń bota na irca>

Notka: Na dzień 29.02.2020r. , obraz na hubie jest nieco zmodyfikowany względem oryginalnego kodu.

Potrzebne poprawki

... a także znane problemy i ograniczenia :)

  • Domyślnie bot loguje się jako lelegram[t] na ircu (irc_login może być pusty);
  • Nie ma obsługi dla nicków bez username (pole username w telegramie jest opcjonalne);
  • Bot *prawdopodobnie* nie wyśle wiadomości, jeśli nie będzie mógł zrobić joina użytkownika (np. z powodu konfliktów nicków, braku voice na moderowanym kanale, etc.);
  • Znanym problem jest wieszanie się bota po kilku dniach aktywności - należy go monitorować na bieżąco;
  • Todo: warto przenieść instancję teleimg poza hswaw;
  • Todo: konfigurowalny sufix/prefix do nicków ircowych - obecnie blokujemy możliwość używania więcej niż jednej instancji w jednej sieci IRC;
  • Todo: ogarnąć więcej jednoczesnych połączeń - być może możemy użyć bloku IPv6 albo dogadać limit z Freenode.
Last Author
zagura
Last Edited
Feb 29 2020, 11:19 PM