publish_deal.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. """
  2. @author: luojunhui
  3. """
  4. from applications.upload import download_and_upload, auto_upload_aigc
  5. from applications.functions import hash_title
  6. class PublishDeal(object):
  7. """
  8. 自动发布接口处理
  9. """
  10. def __init__(self, params):
  11. self.process_list = []
  12. self.taskName = None
  13. self.params = params
  14. def check_params(self):
  15. """
  16. check params
  17. """
  18. try:
  19. self.taskName = self.params['task_list']
  20. obj_list = self.params['article_list']
  21. self.process_list = [
  22. {
  23. "title": obj['title'],
  24. "text": obj['text'],
  25. "img_list": obj['img_list'],
  26. "video_id": obj['video_id'],
  27. "cover": obj['cover']
  28. } for obj in obj_list
  29. ]
  30. return None
  31. except Exception as e:
  32. res = {
  33. "error": "params error",
  34. "info": "check your param: {}".format(e)
  35. }
  36. return res
  37. def deal(self):
  38. """
  39. 处理请求
  40. """
  41. params_error = self.check_params()
  42. if params_error:
  43. return params_error
  44. else:
  45. L = []
  46. for article_obj in self.process_list:
  47. # hash title
  48. h_title = hash_title(article_obj['title'])
  49. # process imgList
  50. img_list = []
  51. for index, url in enumerate(article_obj['img_list'], 1):
  52. save_path = "temp/{}-{}.png".format(h_title, index)
  53. img_obj = download_and_upload(save_path, url)
  54. img_list.append(img_obj)
  55. # process Cover
  56. cover_path = "temp/cover-{}.png".format(h_title)
  57. cover_obj = download_and_upload(cover_path, article_obj['cover'])
  58. result_obj = {
  59. "title": article_obj['title'] + "video_id={}".format(article_obj['video_id']),
  60. "text": article_obj['text'],
  61. "img_list": img_list,
  62. "cover": cover_obj
  63. }
  64. L.append(result_obj)
  65. res = auto_upload_aigc(task_name=self.taskName, obj_list=L)
  66. return res