dever 6 years ago
parent
commit
90afbaf212
5 changed files with 46 additions and 7 deletions
  1. 23 1
      admin/page/site.py
  2. 12 2
      convert.py
  3. 1 1
      front/api/main.py
  4. 2 2
      front/static/document.js
  5. 8 1
      service/convert.py

+ 23 - 1
admin/page/site.py

@@ -85,12 +85,34 @@ class convert_path(Load):
 			,width = '600'
 			,height = '600'
 			,edit = False
-			,search = (('label-1','cdate-time-start','cdate-time-end','site_id-select-','name-input-mlike'), (u'日期范围',u'开始时间',u'截止时间',u'选择站点',u'文件名'))
+			,search = (('label-1','cdate-time-start','cdate-time-end','site_id-select-','status-select-','name-input-mlike'), (u'日期范围',u'开始时间',u'截止时间',u'选择站点',u'文件名'))
 			,thead = (u'文件id',u'所属站点', u'源文件', u'文件名', u'访问路径', u'状态', u'更新时间')
 			,tbody = ('id','site', 'file','name', 'url', 'status', 'cdate')
 			,state = True
 		)
 		self.data['common']['search_site_id-select-'] = self.service('common').list('site')
+		self.data['common']['search_status-select-'] = []
+		status_data = {}
+		status_data['id'] = 1;
+		status_data['value'] = 1;
+		status_data['name'] = '待机';
+		self.data['common']['search_status-select-'].append(status_data)
+
+		status_data['id'] = 2;
+		status_data['value'] = 2;
+		status_data['name'] = '转换中';
+		self.data['common']['search_status-select-'].append(status_data)
+
+		status_data['id'] = 3;
+		status_data['value'] = 3;
+		status_data['name'] = '转换完成';
+		self.data['common']['search_status-select-'].append(status_data)
+
+		status_data['id'] = 4;
+		status_data['value'] = 4;
+		status_data['name'] = '转换失败';
+		self.data['common']['search_status-select-'].append(status_data)
+
 		self.list('convert')
 		status = {}
 		status[1] = '待机'

+ 12 - 2
convert.py

@@ -12,6 +12,16 @@ param['file'] = 'f'
 Demeter.getopt(param)
 
 file = Demeter.option['file']
-id = int(file)
 convert = Demeter.service('convert')
-convert.handle(id)
+if file:
+	id = int(file)
+	convert.handle(id)
+else:
+	model = Demeter.model('convert')
+	model.status = 3
+	info = model.select(type='fetchall')
+	if info:
+		for i in info:
+			redis = Demeter.redis()
+			config = Demeter.config['redis']
+			redis.rpush(config['name'], i['id'])

+ 1 - 1
front/api/main.py

@@ -177,7 +177,7 @@ class convert_path(Load):
 		file = Common.signature(self, 1)
 
 		# 推入到redis队列
-		if file['status'] == 1 and update == 'insert':
+		if (file['status'] == 1 or file['status'] == 4) and update == 'insert':
 			redis = Demeter.redis()
 			config = Demeter.config['redis']
 			redis.rpush(config['name'], file['id'])

+ 2 - 2
front/static/document.js

@@ -161,7 +161,7 @@ var Document =
     ,LoadDoc : function(i, index, doc)
     {
         var html = doc.html();
-        if (doc.find('.w0').length) {
+        if (doc.find('.pc').length) {
             this.SetOffset(i,index,doc);
         } else {
             this.LoadDoc(i,index,doc);
@@ -172,7 +172,7 @@ var Document =
     {
         var self = this;
         var e = $('.pf');
-        var c = e.find('.w0');
+        var c = e.find('.pc');
         var w = c.width();
         var b = w/self.width;
         if (self.left) {

+ 8 - 1
service/convert.py

@@ -201,7 +201,7 @@ class Convert(object):
 			convert = convert + ' && '
 		else:
 			info['pdf'] = info['local']
-		convert = convert + 'pdf2htmlEX --zoom 1.5 --use-cropbox 0 --no-drm 1 --split-pages 1 '
+		convert = convert + 'pdf2htmlEX --zoom 1 --use-cropbox 0 --no-drm 1 --split-pages 1 '
 		convert = convert + '--embed-css 0  --embed-javascript 0 --embed-image 0 --embed-font 1 --process-outline 0 '
 		convert = convert + '--embed-external-font 0 --dest-dir '+info['path']+' --page-filename %d.page ' + info['pdf']
 
@@ -262,6 +262,7 @@ class Convert(object):
 					# 通知接口 通知应用成功转换
 					info['page'] = page
 					info['file_size'] = size
+					info['convert_status'] = 1
 					self.api(info, site)
 					return
 
@@ -269,6 +270,11 @@ class Convert(object):
 			update = {}
 			update['status'] = 4
 			model.update(update)
+			# 通知接口 通知应用失败转换
+			info['page'] = page
+			info['file_size'] = size
+			info['convert_status'] = 2
+			self.api(info, site)
 
 	def api(self, info, site):
 		if 'file_id' in info and info['file_id']:
@@ -289,6 +295,7 @@ class Convert(object):
 			param['page'] = info['page']
 			param['ext'] = info['ext']
 			param['file_size'] = info['file_size']
+			param['status'] = info['convert_status']
 
 			Demeter.curl(api, param, 'post')