twitch-tgbot/main.py

95 lines
3.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 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
if __name__ == '__main__':
log = get_logger("main")
log.info("Запущен")
twitch_client = Twitch(app_id, app_secret)
while True:
check_alive()
time.sleep(3)