Browse Source

update videos_filter

liqian 2 years ago
parent
commit
8b0fcfebea
1 changed files with 38 additions and 1 deletions
  1. 38 1
      videos_filter.py

+ 38 - 1
videos_filter.py

@@ -1,12 +1,14 @@
+import os
 import time
 import json
 import traceback
 import ast
+import pandas as pd
 from datetime import date, timedelta, datetime
 
 from region_rule_rank_h import region_code
 from utils import filter_video_status, send_msg_to_feishu, filter_video_status_app
-from db_helper import RedisHelper
+from db_helper import RedisHelper, MysqlHelper
 from config import set_config
 from log import Log
 
@@ -759,11 +761,46 @@ def filter_region_videos_24h():
                     # 将小时级的数据需要过滤的视频加入到线上过滤应用列表中
                     redis_helper.add_data_with_set(key_name=f"{config_.REGION_H_VIDEO_FILER_24H}{region}.{key}",
                                                    values=filter_videos, expire_time=2 * 3600)
+                    filter_data(filter_videos, region)
 
         log_.info(f"region = {region} videos filter end!")
     log_.info("region_24h videos filter end!")
 
 
+def filter_data(videos, region):
+    now_dt = datetime.now().strftime('%Y%m%d%H%M')
+    filepath = './data/filter_data'
+    if not os.path.exists(filepath):
+        os.makedirs(filepath)
+    res = []
+    mysql_helper = MysqlHelper(mysql_info=config_.FILTER_MYSQL_INFO)
+    video_status_sql = "SELECT t1.id AS 'video_id', " \
+                       "t1.transcode_status AS 'transcoding_status', " \
+                       "t2.audit_status AS 'audit_status', " \
+                       "t2.video_status AS 'open_status', " \
+                       "t2.recommend_status AS 'applet_rec_status', " \
+                       "t2.app_recommend_status AS 'app_rec_status', " \
+                       "t3.charge AS 'payment_status', " \
+                       "case when t4.max_validate_count is null then 0 else t4.max_validate_count end AS 'encryption_status' " \
+                       "FROM longvideo.wx_video t1 " \
+                       "LEFT JOIN longvideo.wx_video_status t2 ON t1.id= t2.video_id " \
+                       "LEFT JOIN longvideo.wx_video_detail t3 ON t1.id= t3.video_id " \
+                       "LEFT JOIN longvideo.wx_video_pwd t4 ON t1.id= t4.video_id"
+    for video_id in list(videos):
+        sql = "SELECT video_id, audit_status, applet_rec_status, open_status, " \
+              "payment_status, encryption_status, transcoding_status " \
+              "FROM ({}) " \
+              "WHERE video_id = {};".format(video_status_sql, video_id)
+        data = mysql_helper.get_data(sql=sql)
+        res += data
+    columns = ['video_id', 'audit_status', 'applet_rec_status', 'open_status',
+               'payment_status', 'encryption_status', 'transcoding_status']
+    filter_df = pd.DataFrame(data=res, columns=columns)
+    filename = f"filter_data_region_{region}_{now_dt}.csv"
+    file = os.path.join(filepath, filename)
+    filter_df.to_csv(file, index=False)
+
+
 def main():
     try:
         # ROV召回池视频过滤