main_schedule.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. """
  2. @author: luojunhui
  3. """
  4. # encoding: utf-8
  5. """
  6. @author: luojunhui
  7. """
  8. import time
  9. import requests
  10. class AskForInfo:
  11. """
  12. Ask user to enter their info
  13. """
  14. def __init__(self, params):
  15. self.params = params
  16. self.base_url = "http://localhost:8111"
  17. async def search_request(self):
  18. """
  19. 请求下载外部视频
  20. :return:
  21. """
  22. url = "{}/title_to_search".format(self.base_url)
  23. body = {
  24. "title": self.params["title"],
  25. "content": self.params['content'],
  26. "ghId": self.params["ghId"]
  27. }
  28. res = requests.post(url, json=body, timeout=120)
  29. return res.json()
  30. async def check_out_videos(self, trace_id):
  31. """
  32. :return:
  33. """
  34. url = "{}/out_videos".format(self.base_url)
  35. body = {
  36. "traceId": trace_id
  37. }
  38. res = requests.post(url, json=body, timeout=120)
  39. return res.json()
  40. async def ask_for_info(self, res_obj, kt):
  41. """
  42. :param kt:
  43. :param res_obj:
  44. :return:
  45. """
  46. traceId = res_obj["trace_id"]
  47. video_list = res_obj["video_list"]
  48. url = "{}/find_video".format(self.base_url)
  49. body = {
  50. "accountName": self.params['accountName'],
  51. "content": self.params['content'],
  52. "cover": self.params['cover'],
  53. "ghId": self.params['ghId'],
  54. "title": self.params['title'],
  55. "traceId": traceId,
  56. "kimi_title": kt,
  57. "videoList": video_list
  58. }
  59. res = requests.post(url, json=body, timeout=120)
  60. return res.json()
  61. async def schedule(self):
  62. """
  63. :return:
  64. """
  65. a = time.time()
  66. res = await self.search_request()
  67. b = time.time()
  68. print("search_time:\t", b - a)
  69. if res['code'] == 0:
  70. trace_id = res["trace_id"]
  71. kimi_title = res['kimi_title']
  72. video_id = res['search_video_id']
  73. res_obj = {
  74. "search_videos": "success" if video_id else "fail",
  75. "trace_id": trace_id,
  76. "video_list": [video_id] if video_id else []
  77. }
  78. time.sleep(2)
  79. final_obj = await self.ask_for_info(res_obj=res_obj, kt=kimi_title)
  80. e = time.time()
  81. print("Rank and Return Time:\t", e - b - 2)
  82. return final_obj
  83. elif res['code'] == 1:
  84. return {
  85. "Error": res['message']
  86. }
  87. else:
  88. return {
  89. "Error": "Unknown Error"
  90. }