# -*- coding: utf-8 -*-
# @Author: wangkun
# @Time: 2023/4/21
from datetime import date, datetime
from workalendar.asia import China
import warnings
import os
import sys
import time
sys.path.append(os.getcwd())
from common.common import Common
from common.feishu import Feishu


class WeixinzhishuBot:
    @classmethod
    def check_workday(cls):
        warnings.simplefilter("ignore", UserWarning)
        # 创建中国日历对象
        cal = China()
        # 判断日期是否为法定节假日
        is_workday = cal.is_working_day(date.today())
        return is_workday

    @classmethod
    def search_key_bot(cls, log_type, crawler):
        Common.logger(log_type, crawler).info("开始检测微信指数 Search_Key 抓取状态")

        sheet = Feishu.get_values_batch(log_type, crawler, sheetid="sVL74k")
        if sheet is None:
            Common.logger(log_type, crawler).info(f"Search_Key_sheet:{sheet}\n")

        first_key_time_str = sheet[1][0]
        if first_key_time_str is None:
            if 13 >= datetime.now().hour >= 11 and datetime.now().minute >= 20:
                # Feishu.bot(log_type, crawler, "微信指数 Search_Key is None ~")
                time.sleep(60)

        first_key_time_stamp = int(time.mktime(time.strptime(first_key_time_str, "%Y-%m-%d %H:%M:%S")))
        if int(time.time()) - first_key_time_stamp >= 60*3:
            if cls.check_workday() is True and 13 >= datetime.now().hour >= 11 and datetime.now().minute >= 20:
                Feishu.bot(log_type, crawler, "微信指数 Search_Key 过期啦 ~")
                time.sleep(3600*2)
        else:
            Common.logger(log_type, crawler).info("微信指数 Search_Key 正常")
        Common.logger(log_type, crawler).info("微信指数 Search_Key 抓取状态检测结束\n")


if __name__ == "__main__":
    WeixinzhishuBot.search_key_bot("bot", "weixinzhishu")
    pass