|
@@ -3,6 +3,7 @@
|
|
|
"""
|
|
|
import json
|
|
|
import time
|
|
|
+import traceback
|
|
|
|
|
|
from applications.log import logging
|
|
|
from applications.functions.forward_request import forward_requests
|
|
@@ -19,6 +20,7 @@ class GetOffVideos(object):
|
|
|
self.article_match_video_table = config.article_match_video_table
|
|
|
self.get_off_videos = config.get_off_video_table
|
|
|
self.trace_id = None
|
|
|
+ self.push_type = None
|
|
|
|
|
|
def check_params(self):
|
|
|
"""
|
|
@@ -27,6 +29,7 @@ class GetOffVideos(object):
|
|
|
"""
|
|
|
try:
|
|
|
self.trace_id = self.params['traceId']
|
|
|
+ self.push_type = self.params.get('pushType')
|
|
|
logging(
|
|
|
code="4121",
|
|
|
info='自动下架视频接口参数校验成功',
|
|
@@ -43,36 +46,68 @@ class GetOffVideos(object):
|
|
|
}
|
|
|
return response
|
|
|
|
|
|
+ async def record_published_trace_id(self, gh_id):
|
|
|
+ """
|
|
|
+ 记录已发布的trace_id
|
|
|
+ :return:
|
|
|
+ """
|
|
|
+ insert_sql = f"""
|
|
|
+ INSERT IGNORE INTO long_articles_published_trace_id
|
|
|
+ (trace_id, gh_id, push_type)
|
|
|
+ VALUES
|
|
|
+ (%s, %s, %s);
|
|
|
+ """
|
|
|
+ await self.mysql_client.async_insert(
|
|
|
+ sql=insert_sql,
|
|
|
+ params=(
|
|
|
+ self.trace_id,
|
|
|
+ gh_id,
|
|
|
+ self.push_type
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+ async def record_get_off_videos(self, video_list):
|
|
|
+ """
|
|
|
+ 存储视频id到getOffVideos表中
|
|
|
+ """
|
|
|
+ info_list = [
|
|
|
+ (
|
|
|
+ item['videoId'],
|
|
|
+ int(time.time()),
|
|
|
+ 1,
|
|
|
+ self.trace_id
|
|
|
+ )
|
|
|
+ for item in video_list
|
|
|
+ ]
|
|
|
+ insert_sql = f"""
|
|
|
+ INSERT INTO {self.get_off_videos}
|
|
|
+ (video_id, publish_time, video_status, trace_id)
|
|
|
+ values
|
|
|
+ (%s, %s, %s, %s);
|
|
|
+ """
|
|
|
+ await self.mysql_client.async_insert_many(
|
|
|
+ sql=insert_sql,
|
|
|
+ params_list=info_list
|
|
|
+ )
|
|
|
+
|
|
|
async def push_video_into_queue(self):
|
|
|
"""
|
|
|
将视频id记录到待下架表中
|
|
|
:return:
|
|
|
"""
|
|
|
select_sql = f"""
|
|
|
- select response from {self.article_match_video_table} where trace_id = '{self.trace_id}';
|
|
|
+ select gh_id, response from {self.article_match_video_table} where trace_id = '{self.trace_id}';
|
|
|
"""
|
|
|
result = await self.mysql_client.async_select(sql=select_sql)
|
|
|
if result:
|
|
|
- video_list = json.loads(result[0][0])
|
|
|
- info_list = [
|
|
|
- (
|
|
|
- item['videoId'],
|
|
|
- int(time.time()),
|
|
|
- 1,
|
|
|
- self.trace_id
|
|
|
- )
|
|
|
- for item in video_list
|
|
|
- ]
|
|
|
+ video_list = json.loads(result[0][1])
|
|
|
+ gh_id = result[0][0]
|
|
|
try:
|
|
|
- insert_sql = f"""
|
|
|
- INSERT INTO {self.get_off_videos}
|
|
|
- (video_id, publish_time, video_status, trace_id)
|
|
|
- values
|
|
|
- (%s, %s, %s, %s);"""
|
|
|
- await self.mysql_client.async_insert_many(
|
|
|
- sql=insert_sql,
|
|
|
- params_list=info_list
|
|
|
- )
|
|
|
+ await self.record_get_off_videos(video_list)
|
|
|
+
|
|
|
+ if self.push_type:
|
|
|
+ await self.record_published_trace_id(gh_id)
|
|
|
+
|
|
|
logging(
|
|
|
code="4122",
|
|
|
info='自动下架视频接口存储成功',
|
|
@@ -87,6 +122,9 @@ class GetOffVideos(object):
|
|
|
logging(
|
|
|
code="4123",
|
|
|
info="自动下架视频处理失败: {}".format(e),
|
|
|
+ data={
|
|
|
+ "traceback": traceback.format_exc()
|
|
|
+ },
|
|
|
function="get_off_videos",
|
|
|
trace_id=self.trace_id
|
|
|
)
|
|
@@ -95,6 +133,7 @@ class GetOffVideos(object):
|
|
|
"traceId": self.trace_id,
|
|
|
"msg": "insert fails, {}".format(e)
|
|
|
}
|
|
|
+
|
|
|
else:
|
|
|
return {
|
|
|
"status": "fail",
|