homepage_rs.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import sys
  2. sys.path.append("..")
  3. import recommend
  4. import category
  5. import json
  6. import ast
  7. import aiocache
  8. import traceback
  9. from log import Log
  10. from config import set_config
  11. import time
  12. log_ = Log()
  13. config_ = set_config()
  14. class HomepageRecommend:
  15. async def on_post(self, req, resp):
  16. try:
  17. start_time = time.time()
  18. request_data = await req.stream.read()
  19. request_data = json.loads(request_data)
  20. mid = request_data.get('mid')
  21. uid = request_data.get('uid')
  22. category_id = request_data.get('categoryId')
  23. size = request_data.get('size')
  24. app_type = request_data.get('appType')
  25. algo_type = request_data.get('algoType')
  26. log_.info('request data: {}'.format(request_data))
  27. # size默认为10
  28. if not size:
  29. size = 10
  30. if category_id in config_.CATEGORY['recommend']:
  31. # 推荐
  32. videos = await recommend.video_recommend(mid=mid, uid=uid, size=size, app_type=app_type, algo_type=algo_type)
  33. result = {'code': 200, 'message': 'success', 'data': {'videos': videos}}
  34. log_.info('category_id: {}, mid: {}, uid: {}, result: {}, execute time = {}ms'.format(
  35. category_id, mid, uid, result, (time.time() - start_time)*1000))
  36. resp.text = json.dumps(result)
  37. return
  38. elif category_id in config_.CATEGORY['other']:
  39. # 其他类别
  40. videos = category.get_category_videos()
  41. result = {'code': 200, 'message': 'success', 'data': {'videos': videos}}
  42. log_.info('category_id: {}, mid: {}, uid: {}, result: {}, execute time = {}ms'.format(
  43. category_id, mid, uid, result, (time.time() - start_time) * 1000))
  44. resp.text = json.dumps(result)
  45. return
  46. else:
  47. log_.error('categoryId error, categoryId = {}'.format(category_id))
  48. result = {'code': -1, 'message': 'fail'}
  49. resp.text = json.dumps(result)
  50. return
  51. except:
  52. traceback.print_exc()
  53. log_.error(e)
  54. result = {'code': -1, 'message': traceback.format_exc()}
  55. resp.text = json.dumps(result)
  56. return