ai_historical_missing_material_handler.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import datetime
  2. import json
  3. import traceback
  4. import requests
  5. import tornado.web
  6. from db_config import *
  7. class AiHistoricalMissingMaterial(tornado.web.RequestHandler):
  8. def initialize(self, logger):
  9. self.logger = logger
  10. def post(self):
  11. self.logger.info("*************************************** NEW REQUEST ***************************************")
  12. try:
  13. for account_id in account_id_list:
  14. inst = GetRequestData(account_id)
  15. if inst.data is not None:
  16. request = requests.post(ai_strategy_request_url, inst.data)
  17. self.logger.info("ai策略的返回信息:%s" % request.text)
  18. self.write(request.text)
  19. self.flush()
  20. else:
  21. self.write(json.dumps({"message": "没有获取到视频新,不发送ai策略请求!"}))
  22. self.flush()
  23. except Exception:
  24. self.logger.error(traceback.format_exc())
  25. self.write(json.dumps(traceback.format_exc()))
  26. self.flush()
  27. class GetRequestData(object):
  28. def __init__(self, account_id):
  29. self.video = None
  30. self.account_id = account_id
  31. self.data = None
  32. self.get_video_info()
  33. self.get_request_data()
  34. def get_video_info(self):
  35. video_request_data = {"accountId": self.account_id,
  36. "videoCnt": historical_missing_video_cnt}
  37. request = requests.post(get_historical_missing_video_url,
  38. headers=headers,
  39. data=json.JSONEncoder().encode(video_request_data))
  40. self.video = request
  41. def get_request_data(self):
  42. if self.video['code'] == 0:
  43. self.data = {"video": self.video['data'],
  44. "operation_type": 1,
  45. "account_id": self.account_id,
  46. "ai_strategy_remark": "补充历史遗漏素材",
  47. "campaign_info": {
  48. "campaign_id": "",
  49. "campaign_name": account_id_to_name[self.account_id] +
  50. campaign_name.replace('自定义', '历史遗漏素材补充')
  51. + str(datetime.datetime.now()),
  52. "campaign_type": 2},
  53. 'group_info': {'unit_name': account_id_to_name[self.account_id] + unit_name +
  54. str(datetime.datetime.now()),
  55. 'begin_time': str(datetime.date.today())},
  56. 'creative_info': creative_info}