Modifikasi websocket (flask-socketio) pada Nothing.live milik jkingsman untuk memungkinkan pengguna melakukan "penggerebekan" (dalam hal ini, di mana semua pengguna secara kolektif mendengarkan aliran streaming yang sama) pada twitch streamer yang tidak memiliki penonton.
Skrip pekerja ( scanner.py
) menelusuri daftar streaming API Twitch dan memutar hingga memasukkan semua streamer yang ditemukan cocok dengan kriteria pencarian (default nol pemirsa), lalu dimulai lagi. Streamer ini dimasukkan sebagai kunci yang kadaluwarsa dengan asumsi bahwa seseorang akan melihatnya dan kemudian mereka tidak akan memiliki nol pemirsa lagi sehingga tidak boleh ditayangkan terlalu lama. Jika streaming masih tidak memiliki penonton pada saluran berikutnya, penyisipan ke Redis akan menggantikan waktu kedaluwarsa lama dan penonton akan bertahan lebih lama.
Variabel lingkungan yang akan ditetapkan:
CLIENT_ID
: ID klien aplikasi Twitch Anda (ditemukan di https://dev.twitch.tv/console)CLIENT_SECRET
: Rahasia klien aplikasi Twitch Anda (ditemukan di https://dev.twitch.tv/console) Sementara itu, aplikasi Flask di app.py
menyajikan indeks dan titik akhir untuk mendapatkan streamer acak.
pip install -r requirements.txt
CLIENT_ID=xxxxxx CLIENT_SECRET=xxxxxx scanner.py
). Hal ini perlu dijalankan terus menerus.flask run
) Ini jelas belum siap produksi; Anda harus memastikan semua layanan berjalan sebagai daemon (beberapa file konfigurasi disertakan dalam etc
) dan aplikasi flask Anda berjalan dengan aman (misalnya di belakang gunicorn/nginx/pick your poison) (LIHAT setting up deployment
)
setup.txt
)Ini adalah proses penerapan penuh, ini bukan penyiapan untuk server lokal. Lihat di atas untuk petunjuk menyiapkan server lokal
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...
Perbarui ketergantungan langsung di requirements.in
; gunakan pip-compile
untuk mengkompilasinya hingga ke requirements.txt
jika Anda memperbaruinya.