Uma modificação do websocket (flask-socketio) no Nobody.live do jkingsman para permitir que os usuários realizem "raids" (neste caso, onde todos os usuários sintonizam coletivamente o mesmo stream) em streamers do Twitch com zero visualizadores.
Um script de trabalho ( scanner.py
) percorre a lista de streams e spins da API Twitch até inserir todos os streamers que encontrar que correspondam aos critérios de pesquisa (zero visualizadores padrão) e, em seguida, inicia novamente. Esses streamers são inseridos como chaves expiradas na suposição de que alguém irá visualizá-los e então eles não terão mais nenhum visualizador, portanto não devem ser veiculados por muito tempo. Se um stream ainda não tiver nenhum visualizador em uma passagem subsequente, a inserção no Redis substituirá o antigo tempo de expiração e eles permanecerão por mais algum tempo.
Variáveis de ambiente a serem definidas:
CLIENT_ID
: seu ID de cliente do aplicativo Twitch (encontrado em https://dev.twitch.tv/console)CLIENT_SECRET
: segredo do cliente do seu aplicativo Twitch (encontrado em https://dev.twitch.tv/console) Enquanto isso, o aplicativo Flask em app.py
fornece o índice e o endpoint para obter um streamer aleatório.
pip install -r requirements.txt
CLIENT_ID=xxxxxx CLIENT_SECRET=xxxxxx scanner.py
). Isso precisará ser executado continuamente.flask run
) Obviamente, isso não está pronto para produção; você precisará ter certeza de que todos os serviços estão sendo executados como daemons (alguns arquivos de configuração estão incluídos em etc
) e que seu aplicativo flask está sendo executado com segurança (por exemplo, atrás de gunicorn/nginx/escolha seu veneno) (VEJA setting up deployment
)
setup.txt
)Este é o processo para implantação completa, não é a configuração de um servidor local. Veja acima as instruções para configurar um 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...
Atualize dependências diretas em requirements.in
; use pip-compile
para compilá-los em requirements.txt
se você atualizá-los.