diff --git a/.gitignore b/.gitignore index 67b05d3..3d0c26f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ list.sh config_python.py config_list.sh -__pycache__ \ No newline at end of file +__pycache__ +.vscode \ No newline at end of file diff --git a/daemon.py b/daemon.py index 0118aff..4be5d8c 100644 --- a/daemon.py +++ b/daemon.py @@ -2,10 +2,12 @@ # база со стримерами в json файле +import os from threading import Thread import json import config_python +locked_streams = list() def startRecord(i): ''' @@ -20,10 +22,12 @@ def recorder(i): ''' print("Записываем стрим %s\n" % i) # FIXME: пофиксить абсолютный путь - cmdline = ["/home/losted/.local/bin/youtube-dl","twitch.tv/"+i] + cmdline = ["/home/losted/.local/bin/youtube-dl","https://twitch.tv/"+i] import subprocess s = subprocess.call(cmdline, stdout=subprocess.DEVNULL) print("Запись стрима %s закончена\n" % i) + os.system("rm "+config_python.path + "/"+i+"/pid") + print("lock файл удален") def checkAlive(streamers, client_id): ''' @@ -31,20 +35,30 @@ def checkAlive(streamers, client_id): 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 по нику - # Это зачем проверка? + # Путь до диры со стримами + path = config_python.path + "/"+ i + # Создаем путь, если его нет + if not (os.path.exists(config_python.path+"/"+i)): + os.makedirs(path) + # TODO: Сделать проверку на наличие стримера + 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': + # Если стрим идет и лок файла нет, то записываем и ставим лок + if (client.streams.get_stream_by_user(user_id).stream_type == 'live') and not (os.path.exists(config_python.path+"/"+i+"/pid")): + print(i+" стримит") startRecord(i) + os.system("touch "+path+"/pid") + else: + print(i+" Уже стримит") else: + # Если стрим не идет, то пишем об этом и убираем его из залоченных print(i+" Не стримит") + os.system("rm "+path+"/pid") + def removeOldStreams(): pass