record.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. """
  2. @author: luojunhui
  3. """
  4. import time
  5. from uuid import uuid4
  6. from applications.functions.log import logging
  7. from applications.functions.forward import forward_requests
  8. from static.config import db_article
  9. class Record(object):
  10. """
  11. 搜索接口处理逻辑
  12. """
  13. NEW_STRATEGY = "strategy_v2"
  14. def __init__(self, params, mysql_client):
  15. self.content_id = None
  16. self.account_name = None
  17. self.contents = None
  18. self.title = None
  19. self.gh_id = None
  20. self.strategy = None
  21. self.params = params
  22. self.mysql_client = mysql_client
  23. self.trace_id = "search-{}-{}".format(str(uuid4()), str(int(time.time())))
  24. def check_params(self):
  25. """
  26. 检查请求params
  27. :return:
  28. """
  29. try:
  30. self.gh_id = self.params['ghId']
  31. self.title = self.params['title'].split("@@")[-1].replace("'", "")
  32. self.contents = self.params['content'].replace("'", "")
  33. self.account_name = self.params['accountName'].replace("'", "")
  34. self.content_id = self.params['articleId']
  35. self.strategy = self.params['strategy']
  36. logging(
  37. code="1001",
  38. info="搜索视频内容接口请求成功, 参数校验成功",
  39. port="title_to_search",
  40. trace_id=self.trace_id,
  41. data=self.params
  42. )
  43. return None
  44. except Exception as e:
  45. result = {
  46. "status": "fail",
  47. "code": 1,
  48. "message": str(e),
  49. "info": "params check error"
  50. }
  51. logging(
  52. code="4001",
  53. info="搜索视频内容接口请求成功, 参数校验失败",
  54. port="title_to_search",
  55. trace_id=self.trace_id,
  56. data=self.params
  57. )
  58. return result
  59. async def input_queue(self):
  60. """
  61. 把数据插入待处理队列
  62. :return:
  63. """
  64. request_time = int(time.time())
  65. insert_sql = f"""
  66. INSERT INTO {db_article}
  67. (trace_id, content_id, gh_id, account_name, article_title, article_text, content_status, success, request_time_stamp)
  68. VALUES
  69. (%s, %s, %s, %s, %s, %s, %s, %s, %s);"""
  70. await self.mysql_client.async_insert(
  71. sql=insert_sql,
  72. params=(self.trace_id, self.content_id, self.gh_id, self.account_name, self.title, self.contents, 0, 0, request_time)
  73. )
  74. logging(
  75. code="1002",
  76. info="成功记录请求数据到mysql中",
  77. trace_id=self.trace_id
  78. )
  79. async def deal(self):
  80. """
  81. deal
  82. :return:
  83. """
  84. params_error = self.check_params()
  85. if params_error:
  86. return params_error
  87. else:
  88. # 记录
  89. if self.strategy == self.NEW_STRATEGY:
  90. response = await forward_requests(
  91. params=self.params,
  92. api="search_videos"
  93. )
  94. return response
  95. await self.input_queue()
  96. res = {
  97. "status": "success input to article queue",
  98. "code": 0,
  99. "traceId": self.trace_id
  100. }
  101. return res