From caa9e3264a916c9adc22b79b67ca06f1449e68dc Mon Sep 17 00:00:00 2001 From: lulzette Date: Fri, 2 Jun 2023 00:37:43 +0300 Subject: [PATCH] =?UTF-8?q?[#12]=20=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?os.path=20=D1=82=D0=B0=D0=BC=20=D0=B3=D0=B4=D0=B5=20=D1=8D?= =?UTF-8?q?=D1=82=D0=BE=20=D1=82=D1=80=D0=B5=D0=B1=D1=83=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- daemon.py | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/daemon.py b/daemon.py index 38f3b96..66051fc 100644 --- a/daemon.py +++ b/daemon.py @@ -78,16 +78,16 @@ def recorder(streamer): """ Функция, которая запускает youtube-dl, фактически записывает стрим """ - path = config['app']['path'] + "/" + streamer + streamer_path = os.path.join(config['app']['path'], streamer) log.info("Записываем стрим {}\n".format(streamer)) # cmdline для запуска youtube-dl cmdline = ["youtube-dl", "-q", "-o", - path + "/%(upload_date)s_%(title)s__%(timestamp)s_%(id)s.%(ext)s", + streamer_path + "/%(upload_date)s_%(title)s__%(timestamp)s_%(id)s.%(ext)s", "https://twitch.tv/{}".format(streamer)] subprocess.call(cmdline) log.info("Запись стрима {} закончена\n".format(streamer)) - if os.path.exists(path + "/pid"): - os.remove(path + "/pid") + if os.path.exists(os.path.join(streamer_path, "pid")): + os.remove(os.path.join(streamer_path, "pid")) log.info("lock файл удален") @@ -100,7 +100,7 @@ def check_stream(): """ for streamer in config['twitch']['streamers'].split(','): # Путь до диры со стримами - path = config['app']['path'] + "/" + streamer + streamer_path = os.path.join(config['app']['path'], streamer) # Получаем инфо о стримере, если не получается, выходим с ошибкой # resolved_id = client.users.translate_usernames_to_ids(i) @@ -111,9 +111,9 @@ def check_stream(): ) continue # Создаем путь до диры со стримером, если папка не существует - if not (os.path.exists(path)): - os.makedirs(path) - log.info("Создана директория {}".format(path)) + if not (os.path.exists(streamer_path)): + os.makedirs(streamer_path) + log.info("Создана директория {}".format(streamer_path)) # Достаем ID стримера из инфо user_id = resolved_id['data'][0]['id'] user_stream = twitch_client.get_streams(user_id=user_id) @@ -121,10 +121,10 @@ def check_stream(): if user_stream['data']: # Если стрим идет и лок файла нет, то записываем и ставим лок if (user_stream['data'][0]['type'] == 'live') and not ( - os.path.exists(config['app']['path'] + "/" + streamer + "/pid")): + os.path.exists(os.path.join(streamer_path, "pid"))): log.info("{} стримит".format(streamer)) start_recording(streamer) - open(config['app']['path'] + "/pid", 'w').close + open(os.path.join(streamer_path, "pid"), 'w').close else: log.info( "Идет запись {}".format(streamer) @@ -133,8 +133,8 @@ def check_stream(): # Если стрим не идет, то пишем об этом и убираем его из залоченных log.info("{} не стримит".format(streamer)) # Если есть лок, то удаляем - if os.path.exists(path + "/pid"): - os.remove(path + "/pid") + if os.path.exists(os.path.join(streamer_path, "pid")): + os.remove(os.path.join(streamer_path, "pid")) def remove_old_streams(): @@ -143,13 +143,14 @@ def remove_old_streams(): # По каждой папке со стримерами for streamer in config['twitch']['streamers']: try: - os.chdir(records_path + "/" + streamer) + streamer_dir_path = os.path.join(records_path, streamer) + os.chdir(streamer_dir_path) # Если файлов в папке со стримами больше чем указано в конфиге - if len(os.listdir(records_path + "/" + streamer)) > int(config['app']['max_files']): + if len(os.listdir(streamer_dir_path)) > int(config['app']['max_files']): # Получаем список файлов # и смотрим, превышает ли кол-во mp4 файлов заданное в конфиге # Если превышает - удаляем старейший - oldest = min(os.listdir(records_path + "/" + streamer), + oldest = min(os.listdir(streamer_dir_path), key=os.path.getctime) os.unlink(oldest) log.warning("Удален файл: {}".format(oldest))