From 06aaed3d0fb470f22f11d26fbb88b4c54e240d41 Mon Sep 17 00:00:00 2001 From: Lulzette Date: Sun, 18 Jul 2021 00:06:08 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=87=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=82=D0=BE=D1=82=D0=B8=D0=BF.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- daemon.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 daemon.py diff --git a/daemon.py b/daemon.py new file mode 100644 index 0000000..b9f5e19 --- /dev/null +++ b/daemon.py @@ -0,0 +1,52 @@ +#!/usr/bin/python3 + +# база со стримерами в json файле + +from threading import Thread +import json +import config_python + + +def startRecord(i): + ''' + Функция, которая запускает в отдельном потоке запись стрима - recorder(i) + ''' + th = Thread(target=recorder, args=(i, )) + th.start() + +def recorder(i): + ''' + Функция, которая запускает youtube-dl, фактически записывает стрим + ''' + print("Записываем стрим %s\n" % i) + # FIXME: пофиксить абсолютный путь + cmdline = ["/home/losted/.local/bin/youtube-dl","twitch.tv/"+i] + import subprocess + s = subprocess.call(cmdline) + print("Запись стрима %s закончена\n" % i) + +def checkAlive(streamers, client_id): + ''' + 1. Проверка на наличие стрима + 1.1 Если нет - удалить lock файл, если он есть + 1.2 Если есть - создать lock файл, запустить записывалку + ''' + + from twitch import TwitchClient + client = TwitchClient(client_id=client_id) + + for i in streamers: + # Если есть такой стример - проверяем, идет ли стрим + user_id=client.users.translate_usernames_to_ids(i)[0]['id'] #Получить ID по нику + # Это зачем проверка? + if client.streams.get_stream_by_user(user_id): + # Если стрим идет то записываем + if client.streams.get_stream_by_user(user_id).stream_type == 'live': + startRecord(i) + else: + print(i+" Не стримит") + + + +if __name__ == "__main__": + checkAlive(config_python.streamers, config_python.twitchid)