dever 7 年之前
父节点
当前提交
56bab5cf38
共有 5 个文件被更改,包括 45 次插入4 次删除
  1. 5 2
      admin/page/site.py
  2. 2 1
      front/api/main.py
  3. 1 0
      model/convert.py
  4. 1 0
      model/site.py
  5. 36 1
      service/convert.py

+ 5 - 2
admin/page/site.py

@@ -40,8 +40,8 @@ class site_update_path(Load):
 	def get(self):
 		self.set(
 			path = '/site/site'
-			,label = (u'站点名称',u'站点网址',u'站点key',u'站点token')
-			,update = ('name-input-required','link-input-required','key-input-required','token-input-required')
+			,label = (u'站点名称',u'站点网址',u'通知接口',u'站点key',u'站点token')
+			,update = ('name-input-required','link-input-required','api-input-required','key-input-required','token-input-required')
 		)
 		self.one('site')
 		self.show('update')
@@ -86,6 +86,9 @@ class convert_path(Load):
 					self.data['list'][key]['url'] = '无法访问'
 				self.data['list'][key]['status'] = status[value['status']]
 
+				if value['file_id']:
+					self.data['list'][key]['file'] = value['file'] + ':' + value['file_id']
+
 		self.show('list')
 
 class convert_update_path(Load):

+ 2 - 1
front/api/main.py

@@ -117,11 +117,12 @@ class convert_path(Load):
 	def get(self):
 
 		file = self.input('file')
+		file_id = self.input('file_id')
 		self.data = {}
 		Common.signature(self)
 
 		service = Demeter.service('convert')
-		file = service.update(self.data['site']['id'], self.data['site']['key'], file)
+		file = service.update(self.data['site']['id'], self.data['site']['key'], file, file_id)
 
 		if not file:
 			self.out('未生成文件信息')

+ 1 - 0
model/convert.py

@@ -11,6 +11,7 @@ class Convert(Model):
 	id = Fields(type='int', primaryKey=True, autoIncrement=True, comment='ID')
 	site_id = Fields(type='int', comment='所属站点')
 	name = Fields(type='varchar(200)', comment='文件名')
+	file_id = Fields(type='varchar(100)', comment='文件id')
 	file = Fields(type='varchar(500)', comment='源文件路径')
 	key = Fields(type='varchar(100)', comment='文件key')
 	ext = Fields(type='varchar(20)', comment='后缀名')

+ 1 - 0
model/site.py

@@ -13,5 +13,6 @@ class Site(Model):
 	link = Fields(type='varchar(200)', comment='站点网址')
 	key = Fields(type='varchar(30)', comment='站点key')
 	token = Fields(type='varchar(300)', comment='授权token')
+	api = Fields(type='varchar(300)', comment='通知接口')
 	state = Fields(type='boolean', default='True', comment='数据存在状态')
 	cdate = Fields(type='int', default='time', comment='创建时间')

+ 36 - 1
service/convert.py

@@ -15,7 +15,7 @@ class Convert(object):
 
 		return data
 
-	def update(self, site, site_key, file):
+	def update(self, site, site_key, file, file_id):
 
 		info = self.getFile(site_key, file)
 
@@ -26,6 +26,7 @@ class Convert(object):
 		data = convert.select(type='fetchone')
 		if not data:
 			convert.site_id = site
+			convert.file_id = file_id
 			convert.file = info['file']
 			convert.key = info['key']
 			convert.name = info['name']
@@ -138,6 +139,10 @@ class Convert(object):
 
 		if not info:
 			return
+		siteModel = Demeter.model('site')
+		siteModel.id = info['site_id']
+		site = siteModel.select(type='fetchone')
+
 		status = True
 		if info['status'] == 1 or info['status'] == 4:
 			status = False
@@ -167,6 +172,9 @@ class Convert(object):
 					update['page'] = page
 					update['status'] = 3
 					model.update(update)
+
+					# 通知接口 通知应用成功转换
+					self.api(info, site)
 					return
 
 			model.id = id
@@ -174,6 +182,33 @@ class Convert(object):
 			update['status'] = 4
 			model.update(update)
 
+	def api(self, info, site):
+		if 'file_id' in info and info['file_id']:
+			api = site['api']
+			key = site['key']
+			token = site['token']
+			file = info['file']
+			file_id = info['file_id']
+
+			url = info['url']
+			page = info['page']
+			ext = info['ext']
+
+			nonce = Demeter.time()
+			sign = Demeter.md5(key + '&' + token + '&' + nonce + '&' + file_id + '&' + url);
+
+			param = {}
+			param['signature'] = sign
+			param['key'] = key
+			param['nonce'] = nonce
+			param['file_id'] = file_id
+			param['url'] = url
+			param['page'] = page
+			param['ext'] = ext
+
+			Demeter.curl(api, param, 'post')
+
+
 	def cut(self, info):
 		pdf = Image(filename=info['pdf'], resolution=50)
 		jpg = pdf.convert('jpg')