algorithm_deal.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. """
  2. @author: luojunhui
  3. """
  4. import json
  5. import requests
  6. class ArticleMatchAccount(object):
  7. """
  8. 文章匹配小程序
  9. """
  10. base_url = 'http://192.168.100.31:8179'
  11. account_list = None
  12. text_list = None
  13. rate = 0.1
  14. min_time = None
  15. max_time = None
  16. interest_type = None
  17. sim_type = "mean"
  18. keys = ["Title", "show_view_count"]
  19. def __init__(self, params):
  20. self.params = params
  21. def check_params(self):
  22. """
  23. check param
  24. :return:
  25. """
  26. try:
  27. self.account_list = self.params['accountList']
  28. self.text_list = self.params['textList']
  29. self.rate = self.params.get("rate", 0.1)
  30. self.min_time = self.params.get("min_time", None)
  31. self.max_time = self.params.get("max_time", None)
  32. self.interest_type = self.params.get("interest_type", "by_avg")
  33. self.sim_type = self.params.get("sim_type", "mean")
  34. self.keys = self.params.get("keys", ["Title", "show_view_count"])
  35. return None
  36. except AttributeError as e:
  37. return {'error': "params error: {}".format(e)}
  38. def get_score_list(self):
  39. """
  40. get score list
  41. :return:
  42. """
  43. api_url = f'{self.base_url}/score_list'
  44. payload = json.dumps({
  45. "account_nickname_list": self.account_list,
  46. "text_list": self.text_list,
  47. "max_time": self.max_time,
  48. "min_time": self.min_time,
  49. "interest_type": self.interest_type,
  50. "sim_type": self.sim_type,
  51. "rate": self.rate,
  52. })
  53. res = requests.request("POST", api_url, headers={}, data=payload).json()
  54. return res
  55. def deal(self):
  56. """
  57. deal function
  58. :return:
  59. """
  60. return self.check_params() if self.check_params() else self.get_score_list()