Модификация веб-сокета (flask-socketio) для Nothing.live от jkingsman, позволяющая пользователям совершать «рейды» (в данном случае, когда все пользователи коллективно настраиваются на один и тот же поток) на стримеров Twitch с нулевым количеством зрителей.
Рабочий скрипт ( scanner.py
) циклически просматривает список потоков API Twitch и вращается до тех пор, пока не вставит все найденные стримеры, соответствующие критериям поиска (по умолчанию ноль зрителей), а затем запускается снова. Эти стримеры вставляются как ключи с истекающим сроком действия при условии, что кто-то их просмотрит, и тогда у них больше не будет нулевых зрителей, поэтому их не следует обслуживать слишком долго. Если на последующем проходе поток по-прежнему не имеет зрителей, вставка в Redis отменит старое время истечения срока действия, и они останутся там еще на какое-то время.
Переменные среды, которые необходимо установить:
CLIENT_ID
: идентификатор клиента вашего приложения Twitch (можно найти по адресу https://dev.twitch.tv/console).CLIENT_SECRET
: секрет клиента вашего приложения Twitch (можно найти по адресу https://dev.twitch.tv/console). Тем временем приложение Flask в app.py
обслуживает индекс и конечную точку для получения случайного стримера.
pip install -r requirements.txt
CLIENT_ID=xxxxxx CLIENT_SECRET=xxxxxx scanner.py
). Это должно будет работать постоянно.flask run
). Это явно не готово к производству; вам необходимо убедиться, что все службы работают как демоны (некоторые файлы конфигурации включены в etc
) и что ваше приложение flask работает безопасно (например, за Gunicorn/nginx/pick your Id) (см. setting up deployment
).
setup.txt
)Это процесс полного развертывания, а не настройка локального сервера. Инструкции по настройке локального сервера см. выше.
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...
Обновить прямые зависимости в requirements.in
; используйте pip-compile
, чтобы скомпилировать их в файл requirements.txt
, если вы их обновите.