main_schedule.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. video_url = res['video_url']
  74. res_obj = {
  75. "search_videos": "success" if video_id else "fail",
  76. "trace_id": trace_id,
  77. "video_list": [video_id] if video_id else [],
  78. "video_url": [video_url] if video_url else ""
  79. }
  80. time.sleep(2)
  81. final_obj = await self.ask_for_info(res_obj=res_obj, kt=kimi_title)
  82. e = time.time()
  83. print("Rank and Return Time:\t", e - b - 2)
  84. if final_obj['videoUrl']:
  85. return final_obj
  86. else:
  87. final_obj["videoUrl"] = video_url
  88. return final_obj
  89. elif res['code'] == 1:
  90. return {
  91. "Error": res['message']
  92. }
  93. else:
  94. return {
  95. "Error": "Unknown Error"
  96. }