This commit is contained in:
Andreas Bielawski 2017-01-23 13:20:29 +01:00
parent 079592ad83
commit 2cf8156f1c
3 changed files with 6 additions and 169 deletions

View File

@ -3,62 +3,25 @@
Der multifunktionale Telegram-Bot. Der multifunktionale Telegram-Bot.
[Offizielle Webseite](https://brawlbot.tk) | [Entwickler auf Telegram](http://telegram.me/Brawl) **KEIN SUPPORT!** | [Offizieller Kanal](https://telegram.me/brawlbot_updates) [Offizielle Webseite](https://brawlbot.tk) | [Offizieller Kanal](https://telegram.me/brawlbot_updates)
Brawlbot ist ein auf Plugins basierender Bot, der die [offizielle Telegram Bot API](http://core.telegram.org/bots/api) benutzt. Ursprünglich wurde er im Dezember 2014 auf Basis von Yagops [Telegram Bot](https://github.com/yagop/telegram-bot/) entwickelt, da aber die Entwicklung von tg-cli [zum Stillstand](https://brawlbot.tk/posts/ein-neuanfang) gekommen ist, wurden alle Plugins des bisher proprietären Brawlbots im Juni 2016 auf die Bot-API portiert und open-sourced. Brawlbot ist ein auf Plugins basierender Bot, der die [offizielle Telegram Bot API](http://core.telegram.org/bots/api) benutzt. Ursprünglich wurde er im Dezember 2014 auf Basis von Yagops [Telegram Bot](https://github.com/yagop/telegram-bot/) entwickelt, da aber die Entwicklung von tg-cli [zum Stillstand](https://brawlbot.tk/posts/ein-neuanfang) gekommen ist, wurden alle Plugins des bisher proprietären Brawlbots im Juni 2016 auf die Bot-API portiert und open-sourced.
**Brawlbot v2 basiert auf [otouto](https://github.com/topkecleon/otouto) von topkecleon.** **Brawlbot v2 basiert auf [otouto](https://github.com/topkecleon/otouto) von topkecleon.**
**HINWEIS::** Ich gebe KEINEN Support für das Aufsetzen des Bots! **HINWEIS::** Es gibt KEINEN Support für das Aufsetzen des Bots!
Brawlbot v2 ist freie Software; du darfst ihn modifizieren und weiterverbreiten, allerdings musst du dich an die GNU Affero General Public License v3 halten, siehe **LICENSE** für Details. Brawlbot v2 ist freie Software; du darfst ihn modifizieren und weiterverbreiten, allerdings musst du dich an die GNU Affero General Public License v3 halten, siehe **LICENSE** für Details. **Das heißt, du musst den Quellcode veröffentlichen, wenn du den Bot selbst nutzt!**
##Anleitung ##Anleitung
| Für User | Für Entwickler| | Für User | Für Entwickler|
|:----------------------------------------------|:------------------------------| |:---------------------------------------------|:------------------------------|
| [Setup](#setup) | [Plugins](#plugins) | | [Bot steuern](#bot-steuern) | [Plugins](#plugins) |
| [Bot steuern](#bot-steuern) | [Bindings](#bindings) | | | [Bindings](#bindings) |
| | [Datenbank](#datenbank) | | [Datenbank](#datenbank)
* * * * * *
# Für User # Für User
## Setup
### Uberspace
Der Bot kann mit einem einfachen Installationsskript bei [Uberspace](https://uberspace.de) gehostet werden. Führe einfach `./install-on-uberspace.sh` aus!
### Ubuntu und Debian
Falls du Ubuntu oder Debian verwendest, kannst du einfach `./install-dependencies.sh` ausführen, damit alles installiert wird. Ergänze dann noch den `bot_api_key` und die `admin`-ID (Bekommst du in Telegram mit `@Brawlbot id`) und kopiere die config.lua.example nach config.lua.
Für eine manuelle Installation musst du LuaRocks für 5.2 [selbst kompilieren](http://stackoverflow.com/a/20359102).
### Setup
Du benötigst **Lua 5.2** (Lua 5.3 funktioniert NICHT!), eine aktive **Redis-Instanz** und die folgenden **LuaRocks-Module**:
* luautf8
* luasocket
* luasec
* multipart-post
* dkjson
* lpeg
* redis-lua
* fakeredis
* oauth
* xml
* feedparser
* serpent
Klone danach diese Repo. kopiere die `config.lua.example` nach `config.lua` und trage folgendes ein:
- `bot_api_key`: API-Token vom BotFather
- `admin`: Deine Telegram-ID
Starte danach den Bot mit `./launch.sh`. Um den Bot anzuhalten, führe erst `/halt` über Telegram aus.
Beim Start werden einige Werte in die Redis-Datenbank unter `telegram:credentials` und `telegram:enabled_plugins` eingetragen. Mit `/plugins enable` kannst du Plugins aktivieren, es sind nicht alle von Haus aus aktiviert.
Einige Plugins benötigen API-Keys, bitte gehe die einzelnen Plugins durch, bevor du sie aktivierst!
* * *
## Bot steuern ## Bot steuern
Ein Administrator kann den Bot über folgende Plugins steuern: Ein Administrator kann den Bot über folgende Plugins steuern:

View File

@ -1,29 +0,0 @@
#!/bin/sh
# Installiert Lua, Luarocks und andere Abhängigkeiten. Sollte auch auf Debian funktionieren.
rocklist="luasocket luasec multipart-post lpeg dkjson redis-lua fakeredis oauth xml feedparser serpent luautf8"
echo "Dieses Skript ist für Ubuntu, es wird wahrscheinlich auch für Debian funktionieren."
echo "Dieses Skript benötigt Root-Rechte, um folgende Pakete zu installieren:"
echo "lua5.2 liblua5.2-dev git libssl-dev fortune-mod fortunes redis-server unzip make"
echo "Es werden auch Root-Rechte benötigt, um LuaRocks in /usr/local/"
echo "mit den folgenden Rocks zu installieren:"
echo $rocklist
echo "Drücke ENTER, um fortzufahren, oder Strg-C zum Beenden."
read smth
sudo apt-get update
sudo apt-get install -y lua5.2 liblua5.2-dev git libssl-dev fortune-mod fortunes redis-server unzip make
git clone http://github.com/keplerproject/luarocks
cd luarocks
./configure --lua-version=5.2 --versioned-rocks-dir --lua-suffix=5.2
make build
sudo make install
for rock in $rocklist; do
sudo luarocks-5.2 install $rock
done
sudo -k
cd ..
echo "Vorgang beendet! Nutze ./launch.sh, um den Bot zu starten."
echo "Setze vorher dein Bot-Token in der config.lua.example und kopiere sie nach config.lua."

View File

@ -1,97 +0,0 @@
#!/bin/bash
# Dieses Skript installiert den Bot auf Uberspace.
# Lua 5.2 (falls nicht vorhanden) und LuaRocks werden installiert und Redis wird gestartet,
# zudem wird die config.lua des Bots angepasst.
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $HOME
if [ -n "$1" ]; then
echo "Überspringe Lua"
else
# LUA 5.2
if [ -d "/package/host/localhost/lua-5.2" ]; then
echo "export PATH=/package/host/localhost/lua-5.2/bin:\$PATH" >> $HOME/.bash_profile
INSTALLED_DIR="/package/host/localhost/lua-5.2"
else
echo "Dieser Uberspace hat kein Lua 5.2, kompiliere selbst..."
wget https://www.lua.org/ftp/lua-5.2.4.tar.gz
tar -xvf lua-5.2.*.tar.gz
rm lua-5.2.*.tar.gz
cd lua-5.2.*
make linux
if [ ! -f "src/lua" ]; then
echo "Kompilierung nicht erfolgreich. Breche ab..."
exit 1
fi
mkdir -p $HOME/lua5.2
make install INSTALL_TOP=$HOME/lua5.2
echo "export PATH=\$HOME/lua5.2/bin:\$PATH" >> $HOME/.bash_profile
INSTALLED_DIR="$HOME/lua5.2"
fi
cd $HOME
rm -rf lua-5.2.*
source $HOME/.bash_profile
echo "LUA 5.2 ist installiert!"
fi
cd $HOME
# LuaRocks
if [ -n "$2" ]; then
echo "Überspringe LuaRocks"
else
echo "Installiere LuaRocks"
git clone http://github.com/keplerproject/luarocks luarocks-git
cd luarocks-git
./configure --lua-version=5.2 --versioned-rocks-dir --with-lua=$INSTALLED_DIR --prefix=$HOME/luarocks
make build
make install
if [ ! -f "$HOME/luarocks/bin/luarocks-5.2" ]; then
echo "Kompilierung nicht erfolgreich. Breche ab..."
exit 1
fi
echo "export PATH=\$HOME/luarocks/bin:\$PATH" >> $HOME/.bash_profile
cd $HOME
rm -rf luarocks-git
source $HOME/.bash_profile
luarocks-5.2 path >> $HOME/.bash_profile
source $HOME/.bash_profile
echo "Luarocks ist installiert!"
fi
cd $HOME
# LuaRocks-Module
if [ -n "$3" ]; then
echo "Überspringe LuaRocks-Module"
else
echo "Installiere LuaRocks-Module"
rocklist="luasocket luasec multipart-post lpeg dkjson redis-lua fakeredis oauth xml feedparser serpent luautf8"
for rock in $rocklist; do
luarocks-5.2 install $rock --local
done
echo "Alle LuaRocks-Module wurden installiert!"
fi
cd $SCRIPTDIR
# Redis
if [ -n "$4" ]; then
echo "Überspringe Redis"
else
echo "Setze Redis auf"
test -d ~/service || uberspace-setup-svscan
uberspace-setup-redis
# Passe Config an
NAME=$(whoami)
sed s/"use_socket = false,"/"use_socket = true,"/ config.lua.example > config.lua
sed -i s/"socket_path = 'unix:\/\/\/home\/path\/to\/your\/redis\/sock',"/"socket_path = \'unix:\/\/\/home\/$NAME\/.redis\/sock',"/g config.lua
echo "Redis aufgesetzt!"
fi
echo "Alles fertig! Vergiss nicht, noch deinen Bot-Token und deine Telegram-ID in der config.lua zu ergänzen!"
echo "Führe bitte vorher noch einmal"
echo "source ~/.bash_profile"
echo "aus oder melde dich ab und wieder an."
exit 0