# -*- coding: utf-8 -*-
# @Author: lierqiang
# @Time: 2023/3/15
import argparse
import os
import sys

sys.path.append(os.getcwd())
from common.common import Common
from common.public import task_fun
from youtube.youtube_follow.youtube_follow_scheduling import YoutubeAuthorScheduling


def main(log_type, crawler, task, oss_endpoint, env):
    task = task_fun(task)
    Common.logger(log_type, crawler).info(f"{task}\n")
    try:
        Common.logger(log_type, crawler).info('开始抓取 youtube视频 定向榜\n')
        YoutubeAuthorScheduling.get_follow_videos(
            log_type=log_type,
            crawler=crawler,
            task=task,
            oss_endpoint=oss_endpoint,
            env=env,
        )
        Common.del_logs(log_type, crawler)
        Common.logger(log_type, crawler).info('抓取任务结束\n')
    except Exception as e:
        Common.logger(log_type, crawler).info(f"youtube视频异常，触发报警:{e}\n")


if __name__ == "__main__":
    parser = argparse.ArgumentParser()  ## 新建参数解释器对象
    parser.add_argument('--log_type', default='author', type=str)  ## 添加参数,注明参数类型
    parser.add_argument('--crawler', default='youtube')  ## 添加参数
    parser.add_argument('--strategy', default='定向')  ## 添加参数
    parser.add_argument('--task', default='')  ## 添加参数
    parser.add_argument('--oss_endpoint', default='out')  ## 添加参数
    parser.add_argument('--env', default='dev')  ## 添加参数
    # parser.add_argument('--machine')  ## 添加参数
    args = parser.parse_args()  ### 参数赋值，也可以通过终端赋值
    task = {
        'task_dict': {'task_id': '17', 'task_name': '西瓜测试4.21', 'source': 'douyin', 'start_time': '1682010720000',
                      'interval': '24', 'mode': 'author',
                      'rule': {'duration': {'min': 40, 'max': 0}, 'play_cnt': {'min': 4000, 'max': 0},
                               'period': {'min': 10, 'max': 0}, 'fans_cnt': {'min': 0, 'max': 0},
                               'videos_cnt': {'min': 0, 'max': 0}, 'like_cnt': {'min': 0, 'max': 0},
                               'width': {'min': 0, 'max': 0}, 'height': {'min': 0, 'max': 0}},
                      'spider_name': 'run_dy_author_scheduling', 'machine': 'aliyun', 'status': '0',
                      'create_time': '1682048632396', 'update_time': '1682048632396', 'operator': ''},
        'rule_dict': {'duration': {'min': 0, 'max': 0}, 'play_cnt': {'min': 0, 'max': 0},
                      'period': {'min': 0, 'max': 0}, 'fans_cnt': {'min': 0, 'max': 0},
                      'videos_cnt': {'min': 0, 'max': 0},
                      'like_cnt': {'min': 0, 'max': 0}, 'width': {'min': 0, 'max': 0},
                      'height': {'min': 0, 'max': 0}}}
    main(log_type=args.log_type,
         crawler=args.crawler,
         task=task,
         oss_endpoint=args.oss_endpoint,
         env=args.env,
         )
