hkvideo.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from fastapi import APIRouter, Request, Depends
  4. from database import get_db
  5. from sqlalchemy.orm import Session
  6. from utils import hk_video_api
  7. from common import PTZApi
  8. from utils.StripTagsHTMLParser import *
  9. import json
  10. router = APIRouter()
  11. @router.get('/get_video_url_by_id')
  12. async def get_video_url_by_id(
  13. request: Request,
  14. id: str,
  15. protocol: str = 'hlss',
  16. db: Session = Depends(get_db)
  17. ):
  18. video_url = hk_video_api.get_video_url(id=id, protocol=protocol)
  19. print('video_url', video_url)
  20. return {
  21. "code": 200,
  22. "msg": "操作成功",
  23. "data": video_url
  24. }
  25. @router.get("/get_ptz_info")
  26. async def get_ptz_info(
  27. request: Request,
  28. code: str,
  29. db: Session = Depends(get_db)
  30. ):
  31. try:
  32. data = PTZApi.get_ptz_info(code)
  33. return {
  34. "code": 200,
  35. "msg": "操作成功",
  36. "data": data
  37. }
  38. except:
  39. return {
  40. "code": 500,
  41. "msg": "操作失败"
  42. }
  43. @router.get("/indexCode")
  44. async def indexCode(
  45. request: Request,
  46. code: str,
  47. db: Session = Depends(get_db)
  48. ):
  49. try:
  50. data = hk_video_api.indexCode(code)
  51. if isinstance(data,str):
  52. data = json.loads(data)
  53. return {
  54. "code": 200,
  55. "msg": "操作成功",
  56. "data": data
  57. }
  58. except:
  59. return {
  60. "code": 500,
  61. "msg": "操作失败"
  62. }
  63. @router.post("/controlling")
  64. async def controlling(
  65. request: Request,
  66. body=Depends(remove_xss_json),
  67. db: Session = Depends(get_db)
  68. ):
  69. try:
  70. cameraIndexCode = body['cameraIndexCode']
  71. action = body['action']
  72. command = body['command']
  73. speed = body['speed']
  74. presetIndex = body['presetIndex']
  75. data = hk_video_api.controlling(cameraIndexCode, action, command, speed, presetIndex)
  76. return {
  77. "code": 200,
  78. "msg": "操作成功"
  79. }
  80. except:
  81. return {
  82. "code": 500,
  83. "msg": "操作失败"
  84. }