get_off_videos.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. """
  2. @author: luojunhui
  3. """
  4. import json
  5. import time
  6. from applications.log import logging
  7. class GetOffVideos(object):
  8. """
  9. 下架视频
  10. """
  11. def __init__(self, params, mysql_client, config):
  12. self.params = params
  13. self.mysql_client = mysql_client
  14. self.article_match_video_table = config.article_match_video_table
  15. self.get_off_videos = config.get_off_video_table
  16. self.trace_id = None
  17. def check_params(self):
  18. """
  19. :return:
  20. """
  21. try:
  22. self.trace_id = self.params['traceId']
  23. return None
  24. except Exception as e:
  25. response = {
  26. "error": "params error",
  27. "info": str(e),
  28. "data": self.params
  29. }
  30. return response
  31. async def push_video_into_queue(self):
  32. """
  33. 将视频id记录到待下架表中
  34. :return:
  35. """
  36. select_sql = f"""
  37. select response from {self.article_match_video_table} where trace_id = '{self.trace_id}';
  38. """
  39. result = await self.mysql_client.async_select(sql=select_sql)
  40. if result:
  41. video_list = json.loads(result[0][0])
  42. info_list = [
  43. (
  44. item['videoId'],
  45. int(time.time()),
  46. 1,
  47. self.trace_id
  48. )
  49. for item in video_list
  50. ]
  51. try:
  52. insert_sql = f"""
  53. INSERT INTO {self.get_off_videos}
  54. (video_id, publish_time, video_status, trace_id)
  55. values
  56. (%s, %s, %s, %s);"""
  57. await self.mysql_client.async_insert_many(
  58. sql=insert_sql,
  59. params_list=info_list
  60. )
  61. return {
  62. "status": "success",
  63. "traceId": self.trace_id
  64. }
  65. except Exception as e:
  66. logging(
  67. code="4123",
  68. info="自动下架视频处理失败: {}".format(e),
  69. function="get_off_videos"
  70. )
  71. return {
  72. "status": "fail",
  73. "traceId": self.trace_id,
  74. "msg": "insert fails, {}".format(e)
  75. }
  76. else:
  77. return {
  78. "status": "fail",
  79. "traceId": self.trace_id,
  80. "msg": "traceId error, can't find trace_id"
  81. }
  82. async def deal(self):
  83. """
  84. :return:
  85. """
  86. params_error = self.check_params()
  87. if params_error:
  88. return params_error
  89. else:
  90. return await self.push_video_into_queue()