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)
|