main.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. # -*- coding: utf-8 -*-
  2. """
  3. demeter web page
  4. name:work.py
  5. author:rabin
  6. """
  7. from .__load__ import *
  8. # 请求转换 /main/convert 接口必须后端获取,token不允许暴露
  9. class convert_path(Load):
  10. @Web.setting
  11. def get(self):
  12. key = self.input('site')
  13. token = self.input('token')
  14. file = self.input('file')
  15. site = Demeter.model('site')
  16. site.key = key
  17. data = {}
  18. data['site'] = site.select(type='fetchone')
  19. if not file:
  20. self.out('错误的文件信息')
  21. if not data['site']:
  22. self.out('站点信息不存在')
  23. if data['site']['token'] != token:
  24. self.out('验证失败')
  25. service = Demeter.service('convert')
  26. data['file'] = service.update(data['site']['id'], key, file)
  27. # 推入到redis队列
  28. if data['file']['status'] == 1:
  29. redis = Demeter.redis()
  30. config = Demeter.config['redis']
  31. send = {}
  32. #redis.rpush(config['name'], data['file']['id'])
  33. del data['site']['token']
  34. self.out('yes', data)
  35. # 获取信息 后端接口,token不允许暴露
  36. class get_path(Load):
  37. @Web.setting
  38. def get(self):
  39. key = self.input('site')
  40. token = self.input('token')
  41. file = self.input('file')
  42. site = Demeter.model('site')
  43. site.key = key
  44. data = {}
  45. data['site'] = site.select(type='fetchone')
  46. if not file:
  47. self.out('错误的文件信息')
  48. if not data['site']:
  49. self.out('站点信息不存在')
  50. if data['site']['token'] != token:
  51. self.out('验证失败')
  52. service = Demeter.service('convert')
  53. data['file'] = service.get(data['site']['id'], key, file);
  54. if data['file']:
  55. url = self.request.protocol + "://" + self.request.host
  56. data['file']['url'] = url + data['file']['url']
  57. del data['site']['token']
  58. self.out('yes', data)
  59. # 授权用户可以访问html的接口 后端接口,token不允许暴露
  60. class auth_path(Load):
  61. @Web.setting
  62. def get(self):
  63. key = int(self.input('site', 1))
  64. user = self.input('user')
  65. token = self.input('token')
  66. file = self.input('file')
  67. site = Demeter.model('site')
  68. site.key = key
  69. data = {}
  70. data['site'] = site.select(type='fetchone')
  71. if not file:
  72. self.out('错误的文件信息')
  73. if not data['site']:
  74. self.out('站点信息不存在')
  75. if data['site']['token'] != token:
  76. self.out('验证失败')
  77. service = Demeter.service('convert')
  78. data['file'] = service.get(data['site']['id'], key, file);
  79. # 授权之后生成一个key,用于前端权限验证
  80. self.out('yes', data)
  81. # 读取html 带有权限控制 该接口为前端接口 需要有授权接口
  82. class view_path(Load):
  83. @Web.setting
  84. def get(self):
  85. key = int(self.input('site', 1))
  86. token = self.input('token')
  87. file = self.input('file')
  88. site = Demeter.model('site')
  89. site.key = key
  90. data = {}
  91. data['site'] = site.select(type='fetchone')
  92. if not file:
  93. self.out('错误的文件信息')
  94. if not data['site']:
  95. self.out('站点信息不存在')
  96. if data['site']['token'] != token:
  97. self.out('验证失败')
  98. service = Demeter.service('convert')
  99. data['file'] = service.get(data['site']['id'], key, file);
  100. self.out('yes', data)