|
@@ -2,6 +2,7 @@
|
|
|
# -*- coding: utf-8 -*-
|
|
|
from datetime import datetime
|
|
|
from sqlalchemy.orm import Session
|
|
|
+from sqlalchemy import text
|
|
|
from utils import *
|
|
|
from utils.redis_util import *
|
|
|
from models import *
|
|
@@ -20,6 +21,7 @@ def proc():
|
|
|
db = get_db_local()
|
|
|
|
|
|
refresh_hkvideo(db)
|
|
|
+ refresh_hkvideo_list(db)
|
|
|
|
|
|
db.close()
|
|
|
|
|
@@ -48,3 +50,157 @@ def refresh_hkvideo(db: Session):
|
|
|
|
|
|
def update_assis_video_table(video_code: str, status: int, db: Session) -> None:
|
|
|
pass
|
|
|
+
|
|
|
+
|
|
|
+# def refresh_hkvideo_list(db: Session):
|
|
|
+# api = hk_video_api.HikvisionAPI()
|
|
|
+# data = api.get_cameras()
|
|
|
+# if isinstance(data,dict):
|
|
|
+# if data['code']=='0':
|
|
|
+# total = data['data']['total']
|
|
|
+# pageSize= 1000
|
|
|
+# totalPages = (total + pageSize - 1) // pageSize
|
|
|
+# infos = []
|
|
|
+# for i in range(totalPages):
|
|
|
+# data = api.get_cameras(i+1,pageSize)
|
|
|
+# if data['code'] == '0':
|
|
|
+# list = data['data']['list']
|
|
|
+# for i in list:
|
|
|
+# infos.append(TPVideoInfo(cameraIndexCode = i['cameraIndexCode'],
|
|
|
+# gbIndexCode = i['gbIndexCode'],
|
|
|
+# name = i['name'],
|
|
|
+# longitude = i['longitude'],
|
|
|
+# latitude = i['latitude'],
|
|
|
+# altitude = i['altitude'],
|
|
|
+# pixel = i['pixel'],
|
|
|
+# cameraType = i['cameraType'],
|
|
|
+# cameraTypeName = i['cameraTypeName'],
|
|
|
+# installPlace = i['installPlace'],
|
|
|
+# updateTime = i['updateTime'],
|
|
|
+# createTime = i['createTime'],
|
|
|
+# status =i['status'],
|
|
|
+# statusName = i['statusName']))
|
|
|
+# db.execute(text(f"TRUNCATE TABLE tp_video_info;"))
|
|
|
+# db.add_all(infos)
|
|
|
+# db.commit()
|
|
|
+
|
|
|
+
|
|
|
+def refresh_hkvideo_list(db: Session):
|
|
|
+ api = hk_video_api.HikvisionAPI()
|
|
|
+ data = api.get_cameras()
|
|
|
+
|
|
|
+ if isinstance(data, dict):
|
|
|
+ if data['code'] == '0':
|
|
|
+ total = data['data']['total']
|
|
|
+ page_size = 1000
|
|
|
+ total_pages = (total + page_size - 1) // page_size
|
|
|
+ infos = []
|
|
|
+
|
|
|
+ for page in range(total_pages):
|
|
|
+ print(f'视频条数{total_pages},正在获取视频信息第{page}页')
|
|
|
+ data = api.get_cameras(page + 1, page_size)
|
|
|
+ if data['code'] == '0':
|
|
|
+ camera_list = data['data']['list']
|
|
|
+ for camera_info in camera_list:
|
|
|
+ longitude= camera_info['longitude']
|
|
|
+ latitude = camera_info['latitude']
|
|
|
+ if longitude=='':
|
|
|
+ longitude = 0.0
|
|
|
+ if latitude=='':
|
|
|
+ latitude = 0.0
|
|
|
+ info = TPVideoInfo(
|
|
|
+ cameraIndexCode=camera_info['cameraIndexCode'],
|
|
|
+ gbIndexCode=camera_info['gbIndexCode'],
|
|
|
+ name=camera_info['name'],
|
|
|
+ longitude=longitude,
|
|
|
+ latitude=latitude,
|
|
|
+ altitude=camera_info['altitude'],
|
|
|
+ pixel=camera_info['pixel'],
|
|
|
+ cameraType=camera_info['cameraType'],
|
|
|
+ unitIndexCode = camera_info['unitIndexCode'],
|
|
|
+ cameraTypeName=camera_info['cameraTypeName'],
|
|
|
+ installPlace=camera_info['installPlace'],
|
|
|
+ updateTime=camera_info['updateTime'],
|
|
|
+ createTime=camera_info['createTime'],
|
|
|
+ status=camera_info['status'],
|
|
|
+ statusName=camera_info['statusName']
|
|
|
+ )
|
|
|
+ infos.append(info)
|
|
|
+ else:
|
|
|
+ print(f"Failed to fetch cameras on page {page + 1}")
|
|
|
+ return
|
|
|
+
|
|
|
+ try:
|
|
|
+ # 清空表
|
|
|
+ db.execute(text("TRUNCATE TABLE tp_video_info;"))
|
|
|
+ # 插入新数据
|
|
|
+ db.add_all(infos)
|
|
|
+ db.commit()
|
|
|
+ except Exception as e:
|
|
|
+ db.rollback() # 回滚事务
|
|
|
+ print(f"Error occurred during database operations: {e}")
|
|
|
+ else:
|
|
|
+ print("Failed to fetch initial camera data")
|
|
|
+ else:
|
|
|
+ print("API response is not in the expected format")
|
|
|
+
|
|
|
+
|
|
|
+def refresh_hkvideo_region_list(db: Session):
|
|
|
+ api = hk_video_api.HikvisionAPI()
|
|
|
+ data = api.get_regions()
|
|
|
+
|
|
|
+ if isinstance(data, dict):
|
|
|
+ if data['code'] == '0':
|
|
|
+ total = data['data']['total']
|
|
|
+ page_size = 1000
|
|
|
+ total_pages = (total + page_size - 1) // page_size
|
|
|
+ infos = []
|
|
|
+
|
|
|
+ for page in range(total_pages):
|
|
|
+ print(f'视频条数{total_pages},正在获取视频信息第{page}页')
|
|
|
+ data = api.get_regions(page + 1, page_size)
|
|
|
+ if data['code'] == '0':
|
|
|
+ region_list = data['data']['list']
|
|
|
+ for cregion_info in region_list:
|
|
|
+ pass
|
|
|
+ # longitude= camera_info['longitude']
|
|
|
+ # latitude = camera_info['latitude']
|
|
|
+ # if longitude=='':
|
|
|
+ # longitude = 0.0
|
|
|
+ # if latitude=='':
|
|
|
+ # latitude = 0.0
|
|
|
+ # info = TPVideoInfo(
|
|
|
+ # cameraIndexCode=camera_info['cameraIndexCode'],
|
|
|
+ # gbIndexCode=camera_info['gbIndexCode'],
|
|
|
+ # name=camera_info['name'],
|
|
|
+ # longitude=longitude,
|
|
|
+ # latitude=latitude,
|
|
|
+ # altitude=camera_info['altitude'],
|
|
|
+ # pixel=camera_info['pixel'],
|
|
|
+ # cameraType=camera_info['cameraType'],
|
|
|
+ # unitIndexCode = camera_info['unitIndexCode'],
|
|
|
+ # cameraTypeName=camera_info['cameraTypeName'],
|
|
|
+ # installPlace=camera_info['installPlace'],
|
|
|
+ # updateTime=camera_info['updateTime'],
|
|
|
+ # createTime=camera_info['createTime'],
|
|
|
+ # status=camera_info['status'],
|
|
|
+ # statusName=camera_info['statusName']
|
|
|
+ # )
|
|
|
+ # infos.append(info)
|
|
|
+ else:
|
|
|
+ print(f"Failed to fetch cameras on page {page + 1}")
|
|
|
+ return
|
|
|
+
|
|
|
+ try:
|
|
|
+ # 清空表
|
|
|
+ db.execute(text("TRUNCATE TABLE tp_video_region;"))
|
|
|
+ # 插入新数据
|
|
|
+ db.add_all(infos)
|
|
|
+ db.commit()
|
|
|
+ except Exception as e:
|
|
|
+ db.rollback() # 回滚事务
|
|
|
+ print(f"Error occurred during database operations: {e}")
|
|
|
+ else:
|
|
|
+ print("Failed to fetch initial camera data")
|
|
|
+ else:
|
|
|
+ print("API response is not in the expected format")
|