added live urls for in and out
Browse files- .gitignore +2 -2
- core/utils.py +33 -2
- main.py +10 -2
- models.py +2 -0
- routers/profile.py +9 -1
- test.db +0 -0
.gitignore
CHANGED
@@ -2,7 +2,7 @@ __pycache__
|
|
2 |
log.txt
|
3 |
env3.*
|
4 |
env
|
|
|
5 |
docs_build
|
6 |
site_build
|
7 |
-
venv
|
8 |
-
test.db
|
|
|
2 |
log.txt
|
3 |
env3.*
|
4 |
env
|
5 |
+
.env
|
6 |
docs_build
|
7 |
site_build
|
8 |
+
venv
|
|
core/utils.py
CHANGED
@@ -3,7 +3,7 @@ from sqlmodel import Session, SQLModel, create_engine
|
|
3 |
from passlib.context import CryptContext
|
4 |
from jose import jwt
|
5 |
from config import settings
|
6 |
-
|
7 |
|
8 |
db_url = settings.DB_SQLITE
|
9 |
|
@@ -44,5 +44,36 @@ def create_access_token(data: dict, expires_delta: timedelta | None = None):
|
|
44 |
encoded_jwt = jwt.encode(to_encode, settings.SECRET_KEY, algorithm=settings.ALGORITHM)
|
45 |
return encoded_jwt
|
46 |
|
|
|
|
|
47 |
def diff_time_stamp(mins: int):
|
48 |
-
return datetime.now()+timedelta(minutes=mins)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
from passlib.context import CryptContext
|
4 |
from jose import jwt
|
5 |
from config import settings
|
6 |
+
import requests
|
7 |
|
8 |
db_url = settings.DB_SQLITE
|
9 |
|
|
|
44 |
encoded_jwt = jwt.encode(to_encode, settings.SECRET_KEY, algorithm=settings.ALGORITHM)
|
45 |
return encoded_jwt
|
46 |
|
47 |
+
|
48 |
+
|
49 |
def diff_time_stamp(mins: int):
|
50 |
+
return datetime.now()+timedelta(minutes=mins)
|
51 |
+
|
52 |
+
|
53 |
+
|
54 |
+
def get_key():
|
55 |
+
response = requests.post('https://open.ezvizlife.com/api/lapp/token/get',
|
56 |
+
headers={"Content-Type": "application/x-www-form-urlencoded"},
|
57 |
+
data={"appKey": settings.EZV_KEY,
|
58 |
+
"appSecret": settings.EZV_SECRET}
|
59 |
+
)
|
60 |
+
if response.status_code == 200:
|
61 |
+
return response.json()["data"]["accessToken"]
|
62 |
+
else:
|
63 |
+
return ""
|
64 |
+
|
65 |
+
def get_feed_url(accessToken, deviceSerial, code=654321, expireTime=90000, channelNo=1, protocol=2):
|
66 |
+
response = requests.post('https://isgpopen.ezvizlife.com/api/lapp/live/address/get',
|
67 |
+
headers={"Content-Type": "application/x-www-form-urlencoded"},
|
68 |
+
data={"accessToken": accessToken,
|
69 |
+
"deviceSerial": deviceSerial,
|
70 |
+
"code": code,
|
71 |
+
"expireTime": expireTime,
|
72 |
+
"channelNo": channelNo,
|
73 |
+
"protocol": protocol,
|
74 |
+
}
|
75 |
+
)
|
76 |
+
if response.status_code == 200:
|
77 |
+
return response.json()["data"]["url"]
|
78 |
+
else:
|
79 |
+
return ""
|
main.py
CHANGED
@@ -75,7 +75,7 @@ def seed_db(*,
|
|
75 |
u3 = User(username="cs_is_admin", password=utils.get_password_hash("csisa"), disabled=False)
|
76 |
u4 = User(username="ee_admin", password=utils.get_password_hash("eea"), disabled=False)
|
77 |
s1 = Site(name="CS Dept", location="MCS", in_camera="2a")
|
78 |
-
s2 = Site(name="IS Dept", location="NRB", in_camera="
|
79 |
s3 = Site(name="EE Dept", location="MCS", in_camera="1a")
|
80 |
u1.sites.append(s1)
|
81 |
u2.sites.append(s2)
|
@@ -132,4 +132,12 @@ def seed_db(*,
|
|
132 |
session.add(Visit(time_in=utils.diff_time_stamp(65).time(), time_out=utils.diff_time_stamp(10).time(), is_group=True, is_female=False, is_new=True, site_id=2))
|
133 |
session.add(Visit(time_in=utils.diff_time_stamp(68).time(), time_out=utils.diff_time_stamp(9).time(), is_group=False, is_female=False, is_new=True, site_id=2))
|
134 |
session.add(Visit(time_in=utils.diff_time_stamp(70).time(), time_out=utils.diff_time_stamp(7).time(), is_group=False, is_female=True, is_new=True, site_id=2))
|
135 |
-
session.commit()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
u3 = User(username="cs_is_admin", password=utils.get_password_hash("csisa"), disabled=False)
|
76 |
u4 = User(username="ee_admin", password=utils.get_password_hash("eea"), disabled=False)
|
77 |
s1 = Site(name="CS Dept", location="MCS", in_camera="2a")
|
78 |
+
s2 = Site(name="IS Dept", location="NRB", in_camera="AA4823505", out_camera="AB9438217")
|
79 |
s3 = Site(name="EE Dept", location="MCS", in_camera="1a")
|
80 |
u1.sites.append(s1)
|
81 |
u2.sites.append(s2)
|
|
|
132 |
session.add(Visit(time_in=utils.diff_time_stamp(65).time(), time_out=utils.diff_time_stamp(10).time(), is_group=True, is_female=False, is_new=True, site_id=2))
|
133 |
session.add(Visit(time_in=utils.diff_time_stamp(68).time(), time_out=utils.diff_time_stamp(9).time(), is_group=False, is_female=False, is_new=True, site_id=2))
|
134 |
session.add(Visit(time_in=utils.diff_time_stamp(70).time(), time_out=utils.diff_time_stamp(7).time(), is_group=False, is_female=True, is_new=True, site_id=2))
|
135 |
+
session.commit()
|
136 |
+
|
137 |
+
|
138 |
+
|
139 |
+
# @app.get("/feed_url/")
|
140 |
+
# def get_feed(*,
|
141 |
+
# session: Session = Depends(utils.get_session),
|
142 |
+
# user: Annotated[User, Depends(crud.get_current_super_user)],
|
143 |
+
# ):
|
models.py
CHANGED
@@ -85,6 +85,8 @@ class SiteBase(SQLModel):
|
|
85 |
contact: str | None = None
|
86 |
in_camera: str | None = Field(default=None, unique=True)
|
87 |
out_camera: str | None = Field(default=None, unique=True)
|
|
|
|
|
88 |
|
89 |
class Site(SiteBase, table=True):
|
90 |
id: int | None = Field(default=None, primary_key=True)
|
|
|
85 |
contact: str | None = None
|
86 |
in_camera: str | None = Field(default=None, unique=True)
|
87 |
out_camera: str | None = Field(default=None, unique=True)
|
88 |
+
in_url: str | None
|
89 |
+
out_url: str | None
|
90 |
|
91 |
class Site(SiteBase, table=True):
|
92 |
id: int | None = Field(default=None, primary_key=True)
|
routers/profile.py
CHANGED
@@ -75,7 +75,15 @@ def read_site(*,
|
|
75 |
current_user: Annotated[User, Depends(crud.get_current_active_user)],
|
76 |
site_id: int
|
77 |
):
|
78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
|
80 |
|
81 |
|
|
|
75 |
current_user: Annotated[User, Depends(crud.get_current_active_user)],
|
76 |
site_id: int
|
77 |
):
|
78 |
+
current_site = crud.get_current_site(session, current_user, site_id)
|
79 |
+
access_token = utils.get_key()
|
80 |
+
in_url= utils.get_feed_url(access_token, current_site.in_camera)
|
81 |
+
out_url= utils.get_feed_url(access_token, current_site.out_camera)
|
82 |
+
current_site.in_url = in_url
|
83 |
+
current_site.out_url = out_url
|
84 |
+
session.add(current_site)
|
85 |
+
session.commit()
|
86 |
+
return current_site
|
87 |
|
88 |
|
89 |
|
test.db
CHANGED
Binary files a/test.db and b/test.db differ
|
|