khawir commited on
Commit
4c0f818
·
1 Parent(s): 0b6838e

added live urls for in and out

Browse files
Files changed (6) hide show
  1. .gitignore +2 -2
  2. core/utils.py +33 -2
  3. main.py +10 -2
  4. models.py +2 -0
  5. routers/profile.py +9 -1
  6. 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="3a")
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
- return crud.get_current_site(session, current_user, site_id)
 
 
 
 
 
 
 
 
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