get_off_videos.py 2.5 KB

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