Browse Source

增加 指定条数

zhangyong 7 months ago
parent
commit
8830878be3
3 changed files with 84 additions and 2 deletions
  1. 42 0
      common/odps_data.py
  2. 13 0
      common/sql_help.py
  3. 29 2
      video_rewriting/video_processor.py

+ 42 - 0
common/odps_data.py

@@ -0,0 +1,42 @@
+import requests
+import json
+import datetime
+from odps import ODPS
+
+# ODPS服务配置
+ODPS_CONFIG = {
+    'ENDPOINT': 'http://service.cn.maxcompute.aliyun.com/api',
+    'ACCESSID': 'LTAIWYUujJAm7CbH',
+    'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
+}
+class OdpsDataCount:
+    @classmethod
+    def get_data_count(cls, project, table, dt, url, name, channel_id):
+        odps = ODPS(
+            access_id=ODPS_CONFIG['ACCESSID'],
+            secret_access_key=ODPS_CONFIG['ACCESSKEY'],
+            project=project,
+            endpoint=ODPS_CONFIG['ENDPOINT']
+        )
+        try:
+            sql = f'SELECT targetcnt FROM {project}.{table} WHERE dt = "{dt}" and user = "{url}" and name = "{name}" and channel = "{channel_id}"'
+            with odps.execute_sql(sql).open_reader() as reader:
+                row = next(reader)
+                data_value = row['targetcnt'] if row else None
+        except Exception as e:
+            print(f"An error occurred: {e}")
+            return None
+        return data_value
+
+    @classmethod
+    def main(cls, channel_id, name, url):
+        # url ='3xcvnyxrngrpwem'
+        # channel_id = '快手'
+        dt = datetime.datetime.now().strftime('%Y%m%d')
+        project = 'loghubods'
+        table = 'spider_supply_targetcnt'
+        data_count = cls.get_data_count(project=project, table=table, dt=dt, url=url, name=name, channel_id=channel_id)
+        return data_count
+
+if __name__ == '__main__':
+    OdpsDataCount.main()

+ 13 - 0
common/sql_help.py

@@ -249,6 +249,19 @@ class sqlCollect():
         )
         return res
 
+    """品类视频新条数记录"""
+    @classmethod
+    def insert_spider_supply_targetcnt(cls, channel_id: str, name: str, url: str,
+                                     number: str, new_count: str, s_cnt: str):
+        insert_sql = f"""INSERT INTO spider_supply_targetcnt 
+                                (channel_id, name, url, o_cnt, n_cnt, s_cnt)
+                                values 
+                                ("{channel_id}", "{name}", "{url}", "{number}", "{new_count}", "{s_cnt}")"""
+        res = MysqlHelper.update_values(
+            sql=insert_sql
+        )
+        return res
+
     """
     获取相似溯源基础账号
     """

+ 29 - 2
video_rewriting/video_processor.py

@@ -7,6 +7,7 @@ import shutil
 import time
 from datetime import datetime
 
+from common.odps_data import OdpsDataCount
 from common.redis import get_data, get_first_value_with_prefix, increment_key
 from common.tag_video import Tag
 from common.tts_help import TTS
@@ -108,10 +109,36 @@ class VideoProcessor:
 
         zm = Material.get_pzsrt_data("summary", "500Oe0", video_share)
         Common.logger(mark).info(f"{name}的{task_mark}下{channel_id}的用户:{url}开始获取视频")
-        data_list = cls.get_data_list(channel_id, task_mark, url, number, mark, feishu_id, cookie_sheet, name, task)
+        new_count = None
+        if name in ['快手品类账号', '抖音品类账号', '抖音品类账号-1', '视频号品类账号']:
+            new_count = OdpsDataCount.main(channel_id, name, url)
+        data_list = cls.get_data_list(
+            channel_id, task_mark, url,
+            new_count if new_count is not None else number,
+            mark, feishu_id, cookie_sheet, name, task
+        )
+        if new_count:
+            sqlCollect.insert_spider_supply_targetcnt(channel_id, name, url, number, new_count, str(len(data_list)))
+            current_time = datetime.now()
+            formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
+            values = [
+                [
+                    name,
+                    channel_id,
+                    url,
+                    str(number),
+                    str(new_count),
+                    str(len(data_list)),
+                    formatted_time
+                ]
+            ]
+            Feishu.insert_columns("Z5xLsdyyxh3abntTTvUc9zw8nYd", "099da8", "ROWS", 1, 2)
+            time.sleep(0.5)
+            Feishu.update_values("Z5xLsdyyxh3abntTTvUc9zw8nYd", "099da8", "A2:Z2", values)
+
         if not data_list:
             AliyunLogger.logging(channel_id, name, url, "", "无改造视频", "4000")
-            Common.logger(mark).info(f"{name}的{task_mark}下{channel_id}的视频ID{url} 已经改造过了")
+            Common.logger(mark).info(f"{name}的{task_mark}下{channel_id}的视频ID{url} 无改造视频")
             text = (
                 f"**通知类型**: 没有改造的视频\n"
                 f"**负责人**: {name}\n"