main_schedule.py 2.4 KB

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