# -*- 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