Una modificación de websocket (flask-socketio) a Nobody.live de jkingsman para permitir a los usuarios realizar "incursiones" (en este caso, donde todos los usuarios sintonizan colectivamente la misma transmisión) en transmisores de Twitch sin espectadores.
Un script de trabajo ( scanner.py
) recorre la lista de transmisiones de la API de Twitch y gira hasta que inserta todos los transmisores que encuentra que coinciden con los criterios de búsqueda (por defecto, cero espectadores), luego comienza de nuevo. Estos transmisores se insertan como claves vencidas asumiendo que alguien los verá y luego ya no tendrán ningún espectador, por lo que no deben publicarse por mucho tiempo. Si una transmisión aún no tiene espectadores en un pase posterior, la inserción en Redis anulará el tiempo de vencimiento anterior y permanecerán por un tiempo más.
Variables de entorno que se establecerán:
CLIENT_ID
: ID de cliente de tu aplicación Twitch (que se encuentra en https://dev.twitch.tv/console)CLIENT_SECRET
: el secreto del cliente de tu aplicación Twitch (que se encuentra en https://dev.twitch.tv/console) Mientras tanto, la aplicación Flask en app.py
sirve el índice y el punto final para obtener un transmisor aleatorio.
pip install -r requirements.txt
CLIENT_ID=xxxxxx CLIENT_SECRET=xxxxxx scanner.py
). Esto deberá ejecutarse continuamente.flask run
) Obviamente, esto no está listo para producción; deberá asegurarse de que todos los servicios se estén ejecutando como demonios (algunos archivos de configuración están incluidos, etc
) y que su aplicación flask se esté ejecutando de forma segura (por ejemplo, detrás de gunicorn/nginx/pick your veneno) (VER setting up deployment
)
setup.txt
)Este es el proceso para la implementación completa, no es la configuración para un servidor local. Consulte arriba para obtener instrucciones para configurar un servidor local.
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...
Actualizar dependencias directas en requirements.in
; use pip-compile
para compilarlos en requirements.txt
si los actualiza.