def _get_all(query, limit=0, offset=0): query['type'] = "camera" fetch = mongodb.device.find(query) if fetch is None: logging.warning("camera-all (%s) returns empty", query) return [], 0 results = resize_mongo_result(fetch, limit=limit, offset=offset) return [Camera(mongo_id_to_str(r)) for r in results], fetch.count()
def confirm(query, user_name, user_id): """确认报警""" mongodb.alerts.update_one(query, {'$set': { "affirmed": True, "affirm_time": int(time.time()), "affirm": user_name, "affirm_id": user_id }}) result = mongo_id_to_str(mongodb.alerts.find_one(query)) return Alert(result)
def translate(data): if isinstance(data, list): res = [] for i in data: res.append(translate(i)) return res elif isinstance(data, dict): res = {} for i, v in data.items(): res[i] = translate(v) return res elif isinstance(data, MongoBase): return mongo_id_to_str(data.data) else: return data
def close(query, user_name, user_id): """关闭报警""" mongodb.alerts.update_many(query, {'$set': { "status": "closed", "operator_time": int(time.time()), "operator": user_name, "operator_id": user_id }}) results = mongodb.alerts.find(query) alerts = [] if results: for result in results: data = mongo_id_to_str(result) alerts.append(Alert(data)) return alerts
def get_rand_one(): fetch = mongodb.device.find_one() if fetch is None: raise RuntimeError("no such camera in database") return Camera(mongo_id_to_str(fetch))
def get_one(face_id): fetch = mongodb.facedata.find_one({"faceid": face_id}) if fetch is None: raise RuntimeError("no such face ({}) in database".format(face_id)) return Face(mongo_id_to_str(fetch))
def get_all(query, limit=0, offset=0): """查询报警""" fetch = mongodb.alerts.find(query, sort=[('status', -1), ('create_time', -1)]) results = resize_mongo_result(fetch, limit=limit, offset=offset) return [Alert(mongo_id_to_str(it)) for it in results], fetch.count()