|
@@ -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召回池视频过滤
|