diff --git a/main.py b/main.py index bddaffb..711f51a 100644 --- a/main.py +++ b/main.py @@ -1,16 +1,94 @@ #!/usr/bin/python3 +import time import config_python from twitchAPI.twitch import Twitch +import logging +from logging.handlers import TimedRotatingFileHandler +from termcolor import colored +import os +import sys +streamer = config_python.streamer +app_id = config_python.appid +app_secret = config_python.appsecret + +log_format = logging.Formatter('%(asctime)s %(levelname)s:%(message)s') +log_file = 'output.log' -def print_hi(name): - # Use a breakpoint in the code line below to debug your script. - print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint. +def check_alive(): + """ + 1. Проверка на наличие стрима + 1.1 Если нет - удалить lock файл, если он есть + 1.2 Если есть - создать lock файл, запустить записывалку + """ + # Получаем инфо о стримере, если не получается, выходим с ошибкой + + resolved_id = twitch_client.get_users(logins=[streamer]) + if not resolved_id['data']: + log.error( + colored( + "Аккаунт " + streamer + " не найден", + 'red', + ) + ) + # # Создаем путь до диры со стримером, если папка не существует + # if not (os.path.exists(path)): + # os.makedirs(path) + # log.info("Создана директория " + i) + # Достаем ID стримера из инфо + user_id = resolved_id['data'][0]['id'] + user_stream = twitch_client.get_streams(user_id=user_id) + # Если стрим идет, то идем дальше + if user_stream['data']: + # Если стрим идет и лок файла нет, то записываем и ставим лок + if (user_stream['data'][0]['type'] == 'live'): + # and not (os.path.exists(config_python.path+"/"+streamer+"/pid")): + log.info(streamer + " стримит") + # startRecord(i) + # open(path+"/pid", 'w').close + else: + log.info( + colored( + "Идет запись " + streamer, + 'red', + attrs=['bold'] + ) + ) + else: + # Если стрим не идет, то пишем об этом и убираем его из залоченных + log.info(streamer + " Не стримит") + # Если есть лок, то удаляем + # if os.path.exists(path + "/pid"): + # os.remove(path+"/pid") + + + +def get_console_handler(): + console_handler = logging.StreamHandler(sys.stdout) + console_handler.setFormatter(log_format) + return console_handler + + +def get_file_handler(): + file_handler = TimedRotatingFileHandler(log_file, when='midnight') + file_handler.setFormatter(log_format) + return file_handler + + +def get_logger(logger_name): + logger = logging.getLogger(logger_name) + logger.setLevel(logging.DEBUG) + logger.addHandler(get_console_handler()) + logger.addHandler(get_file_handler()) + logger.propagate = False + return logger -# Press the green button in the gutter to run the script. if __name__ == '__main__': - print_hi('PyCharm') - -# See PyCharm help at https://www.jetbrains.com/help/pycharm/ + log = get_logger("main") + log.info("Запущен") + twitch_client = Twitch(app_id, app_secret) + while True: + check_alive() + time.sleep(3) diff --git a/requirements.txt b/requirements.txt index 16344d2..cd84a48 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ twitchAPI==2.5.7.1 +termcolor \ No newline at end of file