Eine Websocket-Änderung (flask-socketio) an Nobody.live von jkingsman, um es Benutzern zu ermöglichen, „Raids“ (in diesem Fall, bei denen alle Benutzer gemeinsam den gleichen Stream-Stream einschalten) auf Twitch-Streamern ohne Zuschauer durchzuführen.
Ein Worker-Skript ( scanner.py
) durchläuft die Liste der Streams der Twitch-API und dreht sich, bis es alle gefundenen Streamer einfügt, die den Suchkriterien entsprechen (standardmäßig null Zuschauer), und beginnt dann erneut. Diese Streamer werden als ablaufende Schlüssel eingefügt, in der Annahme, dass jemand sie ansieht und sie dann keine Null-Zuschauer mehr haben und daher nicht zu lange bereitgestellt werden sollten. Wenn ein Stream bei einem späteren Durchlauf immer noch keine Zuschauer hat, überschreibt die Einfügung in Redis die alte Ablaufzeit und sie bleiben eine Weile länger bestehen.
Zu setzende Umgebungsvariablen:
CLIENT_ID
: Ihre Twitch-Anwendungs-Client-ID (zu finden unter https://dev.twitch.tv/console)CLIENT_SECRET
: Ihr Twitch-Anwendungs-Client-Geheimnis (zu finden unter https://dev.twitch.tv/console) In der Zwischenzeit stellt die Flask-App in app.py
den Index und den Endpunkt bereit, um einen zufälligen Streamer zu erhalten.
pip install -r requirements.txt
CLIENT_ID=xxxxxx CLIENT_SECRET=xxxxxx scanner.py
). Dies muss kontinuierlich laufen.flask run
). Dies ist offensichtlich noch nicht produktionsreif; Sie müssen sicherstellen, dass alle Dienste als Daemons ausgeführt werden (einige Konfigurationsdateien sind in etc
enthalten) und dass Ihre Flask-App sicher ausgeführt wird (z. B. hinter Gunicorn/Nginx/Pick Your Poison) (SIEHE setting up deployment
)
setup.txt
)Dies ist der Prozess für die vollständige Bereitstellung, nicht die Einrichtung für einen lokalen Server. Anweisungen zum Einrichten eines lokalen Servers finden Sie oben
cd /srv # wherever we want the app to be
git clone https://github.com/tybens/lonelyraids.com.git
cd lonelyraids.com
sudo apt-get update
sudo apt install python3-pip python3-dev python3-venv nginx
python3 -m venv venv
source venv/bin/activate
sudo pip3 install -r requirements.txt
# static files
sudo mkdir /var/www/static
sudo mv -v static/ * /var/www/static/
sudo chown 755 /var/www/static
# nginx config
sudo mv etc/lr-nginx /etc/nginx/sites-available/lr-nginx
sudo ln -s /etc/nginx/sites-available/lr-nginx /etc/nginx/sites-enabled/
sudo systemctl restart nginx
sudo ufw allow ' Nginx Full ' # not sure if this is necessary (the article said it was)
# redis setup
sudo wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
sudo make install
# supervisor setup
mkdir /var/log/streams
sudo mv etc/supervisor_services.conf /etc/supervisord.conf
sudo supervisord -c /etc/supervisord.conf # starts supervisord services
# certbot setup (for https:// ssl verification)
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx
deactivate # deactivate venv...
Direkte Abhängigkeiten in requirements.in
aktualisieren; Verwenden Sie pip-compile
um sie bis zur requirements.txt
zu kompilieren, wenn Sie sie aktualisieren.