import dateutil.parser from flask import Flask, jsonify, request from intelab_python_sdk.logger import log, log_init from isc_video_record.db import influxdb log_init('api-server', True, '/var/log/event_vss') app = Flask('eventRcv') @app.route('/event/rcv', methods=['POST']) def event_rcv(): body = request.get_json() log.info('POST body: %s', body) influxdb.reconnect() if body and body.get('method') == 'OnEventNotify': events = [] for event in body['params']['events']: events.append({ 'measurement': 'event_vss', 'tags': { 'camera_index': event['srcIndex'], 'event_type': event['eventType'] }, 'fields': { 'event_id': event['eventId'], 'camera_name': event['srcName'], 'paren_index': event['srcParentIndex'], 'value': event['timeout'], 'status': event['status'] }, 'time': dateutil.parser.parse(event['happenTime']) }) influxdb.write_points(events, retention_policy='one_week') return jsonify({ 'code': 200 }) app.run(host='0.0.0.0', port=5001)