Część Wstępna
TS3AudioBot to otwartoźródłowy projekt bota do TeamSpeaka, dobra alternatywa dla Sinusbota. Cechuje się dużo niższym zużyciem zasobów w stosunku do swojego konkurenta. Oferuje on odtwarzanie piosenek z YouTube i SoundClouda. Posiada rozbudowany, lecz łatwy w ustawieniu system uprawnień.
Wymagania
Do instalacji TS3AudioBot będziemy potrzebowali:
- Serwer VPS z systemem Ubuntu 16.04 64bit,
- Konto root na VPS,
- Pakiet screen,
- Kilka innych pakietów, które zaraz zainstalujemy,
- Serwer TeamSpeak, na którym już wkrótce rozpiecznie pracę nasz bot ;)
⚠️ Jeśli nie posiadasz jeszcze serwera VPS, możesz go kupić tutaj
⚠️ Podczas zamawiania wprowadź TIMOPROJECT.PL
w odpowiednią rubrykę a otrzymasz zniżkę w wysokości 10% oraz wspomożesz autora poradnika i zmotywujesz do tworzenia kolejnych
Część Techniczna
Instalacja pakietów
Każde oprogramowanie jest złożone z różnych elementów. Korzysta z funkcji oferowanych przez mniejsze i większe pakiety. Należy je zainstalować, aby oprogramowanie mogło poprawnie działać.
Na samym początku aktualizujemy nasze paczki systemowe, korzystając z polecenia:
apt update && apt upgrade
Następnie wpisujemy poniższe komendy, by dodać klucze potrzebne do instalacji pakietu mono
:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
apt install apt-transport-https
echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | tee /etc/apt/sources.list.d/mono-official-stable.list
apt update
Czas na instalację mono-devel
. Instalacja tego pakietu potrwa troszę dłużej ;)
apt install mono-devel
Instalujemy jeszcze kilka innych pakietów, w tym te do obsługi głosu przez bota:
apt install libopus-dev ffmpeg libc6-dev unzip screen nano
Nasz bot będzie obsługiwał odtwarzanie piosenek z YouTube, więc używamy polecenia:
apt install python-pip
pip install youtube_dl
Wszystkie pakiety zostały zainstalowane.
Tworzenie użytkownika
Tworzymy użytkownika, na którym będzie uruchomiony nasz bot.
W poradniku zastosuję nazwę bot
.
Wykonujemy następującą komendę, by dodać nowego użytkownika:
adduser bot
Zostaniemy podwójnie poproszeni o podanie hasła. Wpisujemy je.
Po wpisaniu system poprosi nas o dodatkowe dane - nie musimy ich podawać. Wciskamy enter pięciokrotnie.
Następnie klawiszem Y potwierdzamy poprawność wpisanych danych.
Przechodzimy na konto bota, wpisując komendę:
su bot
Zmieniamy katalog na domyślny komendą:
cd
By móc korzystać z pakietu screen
, używamy komendy:
script /dev/null
Pobieranie bota
TS3AudioBot.zip (3,4 MB)
Tworzymy katalog na pliki naszego bota oraz do niego przechodzimy:
mkdir bot && cd bot
Pobieramy bota komendą:
wget -O TS3AudioBot.zip https://forum.lvlup.pro/uploads/default/original/2X/5/5b2479e13745c3a1f22d552dcf1c5c604af1469e.zip
Wypakowujemy pliki bota:
unzip TS3AudioBot.zip
Nasz folder po wykonaniu komendy ls
powinien wyglądać tak:
Pierwsze uruchomienie
Dzięki pierwszemu uruchomieniu w głównym katalogu bota tworzą się pliki konfiguracyjne. Uruchamiamy bota, a następnie go zatrzymujemy, by móc go skonfigurować.
W tym celu uruchamiamy screena, bez którego nasze procesy po zamknięciu konsoli wyłączyły by się:
screen
Powinno pojawić się nam okno z tekstem:
Należy wtedy wcisnąć enter. voilà, mamy otwartą sesję terminalu, która będzie podtrzymywana, kiedy z niego wyjdziemy.
Uruchamiamy bota komendą:
mono TS3AudioBot.exe
Podczas pierwszego uruchomienia będziemy mieli kilka opcji do ustawienia.
Pierwszą z nich jest adres naszego serwera TeamSpeak.
W przypadku, kiedy znajduje się on na tym samym VPS co nasz bot, wpisujemy localhost
.
Powinno to wyglądać tak:
Zatwierdzamy enterem i idziemy dalej.
Pojawi się zapytanie o hasło. Jeśli nasz serwer nie ma hasła, klikamy enter.
Jeśli serwer TeamSpeak działa, bot powinien się połączyć, a naszym oczom ukazać informacja o jego sukcesie. Zauważymy go również na lobby naszego serwera:
Pierwsze uruchomienie już za nami. Wyłączamy bota, wykonując skrót klawiszowy Ctrl + C:
Jak widzimy, bot wyszedł z serwera:
Konfiguracja głównych ustawień bota
Nasz bot działa, lecz będzie wyglądał i działał lepiej, jak spersonalizujemy jego ustawienia.
Aby tego dokoanć, wprowadzamy poniższą komendę w naszą linię poleceń:
nano ts3audiobot.toml
Ukaże się nam obraz taki jak ten:
Nie będą interesowały nas wszystkie linijki w tym pliku konfiguracyjnym. Pokażę, jak poprawnie ustawić najważniejsze funkcje.
Pierwszą z nich jest nazwa bota, znajdziemy ją w 29 linijce od góry. Domyślne ustawienie to TS3AudioBot:
Zmieniamy je według własnego uznania. W moim przypadku będzie to "Bot Muzyczny":
Kolejną istotną rzeczą jest zakres głośności bota. Oczywiście jest to zakres minimalnego i maksymalnego ustawienia - dokładna głośność będzie regulowana przez użytkownika poprzez komendę. Zaleca się zostawienie w domyślnym ustawieniu, lecz jeśli lubisz (na prawdę) głośnno słuchać muzyki, możesz to zmienić:
Następną opcją wymagającą zmiany jest lokalizacja pliku youtube-dl
, odpowiadającego za odtwarzanie utworów z YouTube.
Domyślnie opcja wygląda tak:
Zmianiamy ją na na /usr/local/bin/youtube-dl
Po zmianie, opcja będzie wyglądała tak:
Zapisujemy plik skrótem klawiszomy Ctrl + X i potwierdzamy guzikiem Y
Konfiguracja uprawnień
Plik z uprawnieniami umożliwia nam przydzielenie różnym rolom różnych uprawnień. Dla przykładu, utworzymy na serwerze rolę DJ, która będzie umożliwiała standardowe sterowanie botem. Dodamy również wszystkie uprawnienia bota roli Server Admin.
Pobieramy oficjalny plik z uprawnieniami. Wykonujemy komendę
wget https://raw.githubusercontent.com/Splamy/TS3AudioBot/master/TS3AudioBot/Rights/DefaultRights.toml
Zmieniamy jego nazwę z DefaultRights.toml
na rights.toml
komendą:
mv DefaultRights.toml rights.toml
Przystępujemy do edycji. Wykonujemy komendę:
nano rights.toml
W pliku widzimy wstępnie przygotowane uprawnienia, a wygląda to tak:
Przechodzimy do sekcji uprawnień Administratora. Wygląda tak:
Parametr groupid
odpowiada za ID grupy na serwerze, do której będzie przypisana rola.
Aby sprawdzić ID grupy Administratora na twoim serwerze TeamSpeak, przejdź do Listy Grup na serwerze.
Liczba obok nazwy grupy to jej ID.
W moim przypadku, jest to 6:
Takie też ID wpisujemy w plik rights.toml, który właśnie edytujemy.
Drugim parametrem jest useruid
. Odpowiada on za przypisanie danej roli do pojedyńczego użytkownika, na przykład jeśli chcemy ustawić mu daną rolę bota, nie nadając grupy na serwerze.
Aby je uzyskać, wchodzimy w ustawienia jednej z grup, jaką posiada użytkownik. Po prawej stronie znajdujemy jego nick i prawym guzikiem wybieramy opcję "Copy Unique ID to clipboard":
Twoje ID będzie się różniło od mojego, lecz będzie podobnej wielkości i również zakończone znakiem =.
Moje wygląda tak: DKiTSjjaBN4/HCAulrEj82A3NSk=
Wklejamy je do pliku uprawnień bota.
Po dokonaniu edycji, sekcja będzie wyglądała tak:
Następna sekcja jest bardziej obszerna, ponieważ definiuje poszczególne uprawnienia dla roli. To będzie nasza rola DJ.
Z groupid
postępujemy analogiczne jak w przypadku sekcji wyżej.
Poniżej znajdziemy uprawnienia:
Możemy je edytować. Dla przykładu chcę, aby rola DJ nie miała uprawnień do historii wykonanych komend. Usuwam więc linijki, w których uprawnienia zaczynają się od cmd.history
.
Po tej zmianie, uprawnienia tej roli będą wyglądały tak:
Zapisujemy plik skrótem klawiszowym Ctrl + X i potwierdzamy guzikiem Y
Wszystkie przetłumaczone i wyjaśnione uprawnienia z tej sekcji znajdują się na dole poradnika.
Uruchamianie bota
Nasz bot będzie chodził całodobowo, a jego sesja będzie podtrzymywania przez screena.
Uruchamiamy go komendą:
mono TS3AudioBot.exe
Efekt będzie taki:
Uprawnienia bota
Sam bot też potrzebuje podstawowych uprawnień na serwerze, takich jak dostęp do wchodzenia na kanały czy mówienia na nich. Najprostszym rozwiązaniem będzie nadanie botowi uprawnienia Server Admina.
Po nadaniu odpowiedniej grupy botowi, jego panel boczny będzie wyglądał tak:
voilà
Nasz bot jest już na serwerze. Działa.
W następnej części poradnika nauczysz się kompleksowo obsługiwać bota.
Część Informacyjna
Lista podstawowych komend wraz z opisem
- add: Dodaje utwór do kolejki.
- clear: Czyści listę odtwarzania.
- disconnect: Wyłącza instancje bota.
- help: Wyświetla stronę pomocy.
- history: Pokazuje historię odtwarzania.
- kickme: Zgadnij ;)
- link: Podaje adres URL aktualnego utworu.
- loop: Włącza i wyłącza powtarzanie aktualnej listy odtwarzania.
- next: Odtwarza następny utwór z listy odtwarzania.
- pause: Zatrzymuje utwór. Wznów używając !play
- play: Odtwarza utwór. Podaj URL z YouTube, lub lokalizację z dysku VPSa.
- previous: Odtwarza poprzedni utwór z listy odtwarzania.
- quit: Zamyka proces bota.
- repeat: Włącza i wyłącza powtarzanie aktualnego utworu.
- seek: Przełącza do danej minuty w utworze.
- song: Podaje nazwę aktualnego utworu.
- stop: Zatrzymuje aktualny utwór.
- volume: Zmienia głośność.
Lista podstawowych uprawnień wraz z opisem
- cmd.play: Umożliwia odtwarzanie utworów.
- cmd.pause: Umożliwia zatrzymanie utworu
- cmd.stop: Umożliwia wyłączenie utworu.
- cmd.seek: Umożliwia zmianę czasu utworu.
- cmd.volume: Umożliwia zmianę głośności.
- cmd.add: Umożliwia dodanie utworu do kolejki.
- cmd.clear: Umożliwia wyczyszczenie kolejki.
- cmd.previous: Umożliwia zmianę utworu na poprzedni.
- cmd.next: Umożliwia zmianę utworu na kolejny.
- cmd.repeat.*: Umożliwia ustawienie powtarzania utworu.
Sterowanie botem
Każda komenda jest zbudowana i może być używana według poniższego schematu:
! ...
Komenda zadziała, kiedy popełnisz literówkę. Aplikacja jest na to przygotowana. Poniżej przedstawiam przykład komendy !history last 10 - każda z komend podanych zadziała:
historyy lastt 10
his la 10
higsndtor latuht 10
Dzięki za przeczytanie 😎
Źródło: Splamy/TS3AudioBot