|
@@ -6,75 +6,105 @@
|
|
"""
|
|
"""
|
|
from .__load__ import *
|
|
from .__load__ import *
|
|
|
|
|
|
-# 请求转换 /main/convert 接口必须后端获取,token不允许暴露
|
|
|
|
-class convert_path(Load):
|
|
|
|
- @Web.setting
|
|
|
|
- def get(self):
|
|
|
|
- key = self.input('site')
|
|
|
|
- token = self.input('token')
|
|
|
|
|
|
+class Common(object):
|
|
|
|
+ @staticmethod
|
|
|
|
+ def signature(self):
|
|
|
|
+ key = self.input('key')
|
|
|
|
+ nonce = self.input('nonce')
|
|
|
|
+ signature = self.input('signature')
|
|
file = self.input('file')
|
|
file = self.input('file')
|
|
|
|
+
|
|
|
|
+ if not key:
|
|
|
|
+ self.out('参数错误:key')
|
|
|
|
+ if not nonce:
|
|
|
|
+ self.out('参数错误:nonce')
|
|
|
|
+ if not signature:
|
|
|
|
+ self.out('参数错误:signature')
|
|
|
|
+ if not file:
|
|
|
|
+ self.out('参数错误:file')
|
|
|
|
+
|
|
site = Demeter.model('site')
|
|
site = Demeter.model('site')
|
|
site.key = key
|
|
site.key = key
|
|
- data = {}
|
|
|
|
- data['site'] = site.select(type='fetchone')
|
|
|
|
|
|
|
|
- if not file:
|
|
|
|
- self.out('错误的文件信息')
|
|
|
|
|
|
+ self.data['site'] = site.select(type='fetchone')
|
|
|
|
|
|
- if not data['site']:
|
|
|
|
|
|
+ if not self.data['site']:
|
|
self.out('站点信息不存在')
|
|
self.out('站点信息不存在')
|
|
|
|
|
|
- if data['site']['token'] != token:
|
|
|
|
|
|
+ key = key + '&' + self.data['site']['token'] + '&' + nonce + '&' + file
|
|
|
|
+ key = Demeter.md5(key)
|
|
|
|
+ if key != signature:
|
|
self.out('验证失败')
|
|
self.out('验证失败')
|
|
|
|
|
|
|
|
+
|
|
|
|
+# 请求转换 /main/convert 接口必须后端获取,token不允许暴露
|
|
|
|
+class convert_path(Load):
|
|
|
|
+ @Web.setting
|
|
|
|
+ def get(self):
|
|
|
|
+
|
|
|
|
+ file = self.input('file')
|
|
|
|
+ self.data = {}
|
|
|
|
+ Common.signature(self)
|
|
|
|
+
|
|
service = Demeter.service('convert')
|
|
service = Demeter.service('convert')
|
|
- data['file'] = service.update(data['site']['id'], key, file)
|
|
|
|
|
|
+ file = service.update(self.data['site']['id'], self.data['site']['key'], file)
|
|
|
|
+
|
|
|
|
+ if not file:
|
|
|
|
+ self.out('未生成文件信息')
|
|
|
|
|
|
# 推入到redis队列
|
|
# 推入到redis队列
|
|
- if data['file']['status'] == 1:
|
|
|
|
|
|
+ if file['status'] == 1:
|
|
redis = Demeter.redis()
|
|
redis = Demeter.redis()
|
|
config = Demeter.config['redis']
|
|
config = Demeter.config['redis']
|
|
- send = {}
|
|
|
|
- #redis.rpush(config['name'], data['file']['id'])
|
|
|
|
|
|
+ redis.rpush(config['name'], file['id'])
|
|
|
|
|
|
- del data['site']['token']
|
|
|
|
-
|
|
|
|
- self.out('yes', data)
|
|
|
|
|
|
+ del self.data['site']['token']
|
|
|
|
+
|
|
|
|
+ url = self.request.protocol + "://" + self.request.host
|
|
|
|
+
|
|
|
|
+ self.data['file'] = {
|
|
|
|
+ 'id' : file['id'],
|
|
|
|
+ 'status' : file['status'],
|
|
|
|
+ 'url' : url + file['url'],
|
|
|
|
+ 'ext' : file['ext'],
|
|
|
|
+ 'name' : file['name'],
|
|
|
|
+ 'key' : file['key']
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ self.out('yes', self.data)
|
|
|
|
|
|
# 获取信息 后端接口,token不允许暴露
|
|
# 获取信息 后端接口,token不允许暴露
|
|
class get_path(Load):
|
|
class get_path(Load):
|
|
@Web.setting
|
|
@Web.setting
|
|
def get(self):
|
|
def get(self):
|
|
- key = self.input('site')
|
|
|
|
- token = self.input('token')
|
|
|
|
- file = self.input('file')
|
|
|
|
- site = Demeter.model('site')
|
|
|
|
- site.key = key
|
|
|
|
- data = {}
|
|
|
|
- data['site'] = site.select(type='fetchone')
|
|
|
|
|
|
|
|
- if not file:
|
|
|
|
- self.out('错误的文件信息')
|
|
|
|
-
|
|
|
|
- if not data['site']:
|
|
|
|
- self.out('站点信息不存在')
|
|
|
|
-
|
|
|
|
- if data['site']['token'] != token:
|
|
|
|
- self.out('验证失败')
|
|
|
|
|
|
+ file = self.input('file')
|
|
|
|
+ self.data = {}
|
|
|
|
+ Common.signature(self)
|
|
|
|
|
|
service = Demeter.service('convert')
|
|
service = Demeter.service('convert')
|
|
- data['file'] = service.get(data['site']['id'], key, file);
|
|
|
|
|
|
+ file = service.get(self.data['site']['id'], self.data['site']['key'], file);
|
|
|
|
|
|
|
|
+ if not file:
|
|
|
|
+ self.out('未生成文件信息')
|
|
|
|
|
|
- if data['file']:
|
|
|
|
- url = self.request.protocol + "://" + self.request.host
|
|
|
|
- data['file']['url'] = url + data['file']['url']
|
|
|
|
|
|
+ del self.data['site']['token']
|
|
|
|
|
|
- del data['site']['token']
|
|
|
|
|
|
+ url = self.request.protocol + "://" + self.request.host
|
|
|
|
|
|
- self.out('yes', data)
|
|
|
|
|
|
+ self.data['file'] = {
|
|
|
|
+ 'id' : file['id'],
|
|
|
|
+ 'status' : file['status'],
|
|
|
|
+ 'url' : url + file['url'],
|
|
|
|
+ 'page' : file['page'],
|
|
|
|
+ 'ext' : file['ext'],
|
|
|
|
+ 'name' : file['name'],
|
|
|
|
+ 'key' : file['key']
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ self.out('yes', self.data)
|
|
|
|
|
|
-# 授权用户可以访问html的接口 后端接口,token不允许暴露
|
|
|
|
|
|
+# 授权用户可以访问html的接口 后端接口,token不允许暴露 后续实现
|
|
class auth_path(Load):
|
|
class auth_path(Load):
|
|
@Web.setting
|
|
@Web.setting
|
|
def get(self):
|
|
def get(self):
|
|
@@ -103,7 +133,7 @@ class auth_path(Load):
|
|
|
|
|
|
self.out('yes', data)
|
|
self.out('yes', data)
|
|
|
|
|
|
-# 读取html 带有权限控制 该接口为前端接口 需要有授权接口
|
|
|
|
|
|
+# 读取html 带有权限控制 该接口为前端接口 需要有授权接口 后续实现
|
|
class view_path(Load):
|
|
class view_path(Load):
|
|
@Web.setting
|
|
@Web.setting
|
|
def get(self):
|
|
def get(self):
|