| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
							- #!/usr/bin/env python
 
- # -*- coding: utf-8 -*-
 
- """
 
-     demeter service
 
-     name:record_pic.py 处理摄像头的图片数据
 
-     author:rabin
 
-     key:pic/图片名_图片总数_当前序号/gateway/device
 
- """
 
- import time
 
- import json
 
- import uuid
 
- from datetime import *
 
- from demeter.core import *
 
- class Record_pic(object):
 
- 	pic = {}
 
- 	def handle(self, record, config, value):
 
- 		self.record = record
 
- 		method = config['type'].split('_')
 
- 		name = method[0] + '.jpg'
 
- 		if name not in self.pic:
 
- 			self.pic[name] = {}
 
- 		total = int(method[1])
 
- 		index = int(method[2])
 
- 		self.pic[name][index] = value
 
- 		picLen = len(self.pic[name])
 
- 		if picLen >= total:
 
- 			self.create(name, config)
 
- 	def create(self, name, config):
 
- 		pic = sorted(self.pic[name].items(), key=lambda e:e[0], reverse=False)
 
- 		data = []
 
- 		day = str(date.today())
 
- 		day = day.split('-')
 
- 		file_name =  str(uuid.uuid5(uuid.uuid1(), 'file'))
 
- 		file_path = day[0] + '/' + day[1] + '/' + day[2]
 
- 		file_path = File.mkdirs(os.path.join(Demeter.path, 'runtime','camera', file_path)) + '/' + Demeter.md5(file_name) + '.jpg'
 
- 		for value in pic:
 
- 			data.append(value[1])
 
- 		with open(file_path, 'wb') as f:
 
- 			f.writelines(data)
 
- 			del self.pic[name]
 
- 		file_path = file_path.replace(Demeter.path + 'runtime', '')
 
- 		self.record.save(config, file_path, name)
 
 
  |