zhangyong 4 miesięcy temu
rodzic
commit
81b25a6ffa
2 zmienionych plików z 107 dodań i 15 usunięć
  1. 27 3
      common/sql_help.py
  2. 80 12
      video_count_notification.py

+ 27 - 3
common/sql_help.py

@@ -79,19 +79,43 @@ class sqlCollect():
 
     @classmethod
     def get_feed_count(cls, channel):
-        sql = """SELECT count(0) FROM machine_making_data where channel = %s and  DATE(data_time) = CURRENT_DATE;"""
+        sql = """SELECT count(0) FROM machine_making_data where channel = %s and  DATE(data_time) = CURRENT_DATE AND HOUR(data_time) < HOUR(NOW());"""
         count = MysqlHelper.get_values(sql, (str(channel)))
         return count
 
+    @classmethod
+    def get_crawler_count(cls, platform):
+        sql = """SELECT count(0) FROM crawler_video where platform = %s and  DATE(create_time) = CURRENT_DATE AND HOUR(create_time) < HOUR(NOW());"""
+        count = MysqlHelper.get_values(sql, (str(platform)))
+        return count
+
+    @classmethod
+    def get_ytd_crawler_count(cls, platform):
+        sql = """SELECT count(0) FROM crawler_video where platform = %s and create_time >= CURRENT_DATE - INTERVAL 1 DAY AND create_time < CURRENT_DATE - INTERVAL 1 DAY + INTERVAL HOUR(NOW()) HOUR;"""
+        count = MysqlHelper.get_values(sql, (str(platform)))
+        return count
+
     @classmethod
     def get_channel_count(cls, channel, name):
-        sql = """SELECT count(0) FROM machine_making_data where channel = %s and name = %s and  DATE(data_time) = CURRENT_DATE;"""
+        sql = """SELECT count(0) FROM machine_making_data where channel = %s and name = %s and  DATE(data_time) = CURRENT_DATE AND HOUR(data_time) < HOUR(NOW());"""
         count = MysqlHelper.get_values(sql, (str(channel),name))
         return count
 
+    @classmethod
+    def get_ytd_channel_count(cls, channel, name):
+        sql = """SELECT count(0) FROM machine_making_data where channel = %s and name = %s and data_time >= CURRENT_DATE - INTERVAL 1 DAY AND data_time < CURRENT_DATE - INTERVAL 1 DAY + INTERVAL HOUR(NOW()) HOUR;"""
+        count = MysqlHelper.get_values(sql, (str(channel), name))
+        return count
+
     @classmethod
     def get_name_count(cls, name):
-        sql = """SELECT count(0) FROM machine_making_data where name = %s and  DATE(data_time) = CURRENT_DATE;"""
+        sql = """SELECT count(0) FROM machine_making_data where name = %s and  DATE(data_time) = CURRENT_DATE AND HOUR(data_time) < HOUR(NOW());"""
+        count = MysqlHelper.get_values(sql, (str(name)))
+        return count
+
+    @classmethod
+    def get_ytd_name_count(cls, name):
+        sql = """SELECT count(0) FROM machine_making_data where name = %s and  data_time >= CURRENT_DATE - INTERVAL 1 DAY AND data_time < CURRENT_DATE - INTERVAL 1 DAY + INTERVAL HOUR(NOW()) HOUR;"""
         count = MysqlHelper.get_values(sql, (str(name)))
         return count
 

+ 80 - 12
video_count_notification.py

@@ -9,36 +9,101 @@ from common import Feishu
 from common.sql_help import sqlCollect
 
 
+
+"""爬虫"""
+def bot_crawler_data():
+    try:
+        xng_author = sqlCollect.get_crawler_count("xiaoniangao")
+        xng_author_ytd = sqlCollect.get_ytd_crawler_count("xiaoniangao")
+
+        xng_tjl = sqlCollect.get_crawler_count("xiaoniangaotuijianliu")
+        xng_tjl_ytd = sqlCollect.get_ytd_crawler_count("xiaoniangaotuijianliu")
+
+        zfqz_tjl = sqlCollect.get_crawler_count("zhufuquanzituijianliu")
+        zfqz_tjl_ytd = sqlCollect.get_ytd_crawler_count("zhufuquanzituijianliu")
+
+        bszf = sqlCollect.get_crawler_count("benshanzhufu")
+        bszf_ytd = sqlCollect.get_ytd_crawler_count("benshanzhufu")
+
+        fqw = sqlCollect.get_crawler_count("fuqiwang")
+        fqw_ytd = sqlCollect.get_ytd_crawler_count("fuqiwang")
+
+        jdfqw = sqlCollect.get_crawler_count("jingdianfuqiwang")
+        jdfqw_ytd = sqlCollect.get_ytd_crawler_count("jingdianfuqiwang")
+
+        ttjfq = sqlCollect.get_crawler_count("tiantianjufuqi")
+        ttjfq_ytd = sqlCollect.get_ytd_crawler_count("tiantianjufuqi")
+
+        text = (
+            f"**小年糕: 当日**{int(xng_author[0][0])}**条/昨日**{int(xng_author_ytd[0][0])}**条**\n"
+            f"**小年糕推荐流: 当日**{int(xng_tjl[0][0])}**条/昨日**{int(xng_tjl_ytd[0][0])}**条**\n"
+            f"**祝福圈子推荐流: 当日**{int(zfqz_tjl[0][0])}**条/昨日**{int(zfqz_tjl_ytd[0][0])}**条**\n"
+            f"**本山祝福: 当日**{int(bszf[0][0])}**条/昨日**{int(bszf_ytd[0][0])}**条**\n"
+            f"**福气旺: 当日**{int(fqw[0][0])}**条/昨日**{int(fqw_ytd[0][0])}**条**\n"
+            f"**经典福气旺: 当日**{int(jdfqw[0][0])}**条/昨日**{int(jdfqw_ytd[0][0])}**条**\n"
+            f"**天天聚福气: 当日**{int(ttjfq[0][0])}**条/昨日**{int(ttjfq_ytd[0][0])}**条**\n"
+        )
+        Feishu.finish_bot(text,
+                          "https://open.feishu.cn/open-apis/bot/v2/hook/805ab4fe-0246-409c-b383-ea25831148e6",
+                          f"【 爬虫{datetime.now().strftime('%Y年%m月%d日 %H时')}与昨天当前小时之前的数据 】")
+
+    except Exception as e:
+        logger.error(f"[+] 报警失败{e}")
+
+
+"""机器自制"""
 def bot_carry_data():
     try:
         sph_feed_count = sqlCollect.get_channel_count("视频号推荐流", "视频号推荐流")
+        ytd_sph_feed_count = sqlCollect.get_ytd_channel_count("视频号推荐流", "视频号推荐流")
+
         ks_feed_count = sqlCollect.get_channel_count("快手推荐流", "快手推荐流")
+        ytd_ks_feed_count = sqlCollect.get_ytd_channel_count("快手推荐流", "快手推荐流")
+
         ks_xcx_count = sqlCollect.get_channel_count("快手小程序", "快手小程序")
+        ytd_ks_xcx_count = sqlCollect.get_ytd_channel_count("快手小程序", "快手小程序")
+
         ks_sou_count = sqlCollect.get_channel_count("快手搜索", "品类关键词搜索")
+        ytd_ks_sou_count = sqlCollect.get_ytd_channel_count("快手搜索", "品类关键词搜索")
+
         dy_sou_count = sqlCollect.get_channel_count("抖音搜索", "品类关键词搜索")
+        ytd_dy_sou_count = sqlCollect.get_ytd_channel_count("抖音搜索", "品类关键词搜索")
+
         sph_sou_count = sqlCollect.get_channel_count("视频号搜索", "品类关键词搜索")
+        ytd_sph_sou_count = sqlCollect.get_ytd_channel_count("视频号搜索", "品类关键词搜索")
+
         dy_count = sqlCollect.get_name_count("抖音品类账号")
+        ytd_dy_count = sqlCollect.get_ytd_name_count("抖音品类账号")
+
         ks_count = sqlCollect.get_name_count("快手品类账号")
+        ytd_ks_count = sqlCollect.get_ytd_name_count("快手品类账号")
+
         sph_count = sqlCollect.get_name_count("视频号品类账号")
+        ytd_sph_count = sqlCollect.get_ytd_name_count("视频号品类账号")
+
         xx_count = sqlCollect.get_name_count("信欣")
+        ytd_xx_count = sqlCollect.get_ytd_name_count("信欣")
+
         dd_count = sqlCollect.get_name_count("单点视频")
+        ytd_dd_count = sqlCollect.get_ytd_name_count("单点视频")
+
         text = (
-            f"**抖音品类账号**: {int(dy_count[0][0])}**/1500条**\n"
-            f"**抖音搜索**: {int(dy_sou_count[0][0])}**/1200条**\n"
-            f"**视频号品类账号**: {int(sph_count[0][0])}**/350条**\n"
-            f"**视频号推荐流**: {int(sph_feed_count[0][0])}**/200条**\n"
-            f"**视频号搜索**: {int(sph_sou_count[0][0])}**/100条**\n"
-            f"**快手品类账号**: {int(ks_count[0][0])}**/900条**\n"
-            f"**快手推荐流**: {int(ks_feed_count[0][0])}**/100条**\n"
-            f"**快手小程序**: {int(ks_xcx_count[0][0])}**/?条**\n"
-            f"**快手搜索**: {int(ks_sou_count[0][0])}**/650条**\n"
-            f"**相似溯源(xx)**: {int(xx_count[0][0])}**/200条**\n"
-            f"**单点视频**: {int(dd_count[0][0])}**条**\n"
+            f"**抖音品类账号: 今日**{int(dy_count[0][0])}**/昨日**{int(ytd_dy_count[0][0])}**条/每日目标量:1500条**\n"
+            f"**抖音搜索: 今日**{int(dy_sou_count[0][0])}**/昨日**{int(ytd_dy_sou_count[0][0])}**条/每日目标量:1200条**\n"
+            f"**视频号品类账号: 今日**{int(sph_count[0][0])}**条/昨日**{int(ytd_sph_count[0][0])}**条/每日目标量:350条**\n"
+            f"**视频号推荐流: 今日**{int(sph_feed_count[0][0])}**/昨日**{int(ytd_sph_feed_count[0][0])}**条/每日目标量:200条**\n"
+            f"**视频号搜索: 今日**{int(sph_sou_count[0][0])}**条/昨日**{int(ytd_sph_sou_count[0][0])}**条/每日目标量:100条**\n"
+            f"**快手品类账号: 今日**{int(ks_count[0][0])}**/昨日**{int(ytd_ks_count[0][0])}**条/每日目标量:900条**\n"
+            f"**快手推荐流: 今日**{int(ks_feed_count[0][0])}**条/昨日**{int(ytd_ks_feed_count[0][0])}**条/每日目标量:100条**\n"
+            f"**快手小程序: 今日**{int(ks_xcx_count[0][0])}**/昨日**{int(ytd_ks_xcx_count[0][0])}**条/每日目标量:?条**\n"
+            f"**快手搜索: 今日**{int(ks_sou_count[0][0])}**/昨日**{int(ytd_ks_sou_count[0][0])}**条/每日目标量:650条**\n"
+            f"**相似溯源(xx): 今日**{int(xx_count[0][0])}**/昨日**{int(ytd_xx_count[0][0])}**条/每日目标量:200条**\n"
+            f"**单点视频: 今日**{int(dd_count[0][0])}**条/昨日**{int(ytd_dd_count[0][0])}**条**\n"
         )
 
         Feishu.finish_bot(text,
                           "https://open.feishu.cn/open-apis/bot/v2/hook/805ab4fe-0246-409c-b383-ea25831148e6",
-                          f"【 自制视频{datetime.now().strftime('%Y年%m月%d日 %H时')}数据通知 】")
+                          f"【 自制视频{datetime.now().strftime('%Y年%m月%d日 %H时')}与昨天当前小时之前的数据 】")
 
 
 
@@ -50,9 +115,12 @@ def bot_carry_data():
 
 def schedule_tasks():
     schedule.every().hour.at(":05").do(bot_carry_data)
+    schedule.every().hour.at(":10").do(bot_crawler_data)
+
 
 
 if __name__ == "__main__":
+    # bot_crawler_data()
     schedule_tasks()  # 调用任务调度函数
     while True:
         schedule.run_pending()