@@ -194,10 +194,10 @@ def update(self, values):
194
194
"""Update camera information."""
195
195
self .name = values ['name' ]
196
196
self ._status = values ['active' ]
197
- self .thumbnail = "{}{}.jpg" .format (
198
- self .urls .base_url , values ['thumbnail' ])
199
197
self .clip = "{}{}" .format (
200
198
self .urls .base_url , values ['video' ])
199
+ thumb_from_clip = self .clip [0 :- 4 ]
200
+ self .thumbnail = "{}.jpg" .format (thumb_from_clip )
201
201
self ._battery_string = values ['battery' ]
202
202
self .notifications = values ['notifications' ]
203
203
@@ -221,7 +221,8 @@ def update(self, values):
221
221
# Check if the most recent clip is included in the last_record list
222
222
# and that the last_record list is populated
223
223
try :
224
- new_clip = self .blink .videos [self .name ][0 ]['clip' ]
224
+ records = sorted (self .blink .record_dates [self .name ])
225
+ new_clip = records .pop ()
225
226
if new_clip not in self .last_record and self .last_record :
226
227
self .motion_detected = True
227
228
self .last_record .insert (0 , new_clip )
@@ -244,9 +245,10 @@ def image_refresh(self):
244
245
for element in response :
245
246
try :
246
247
if str (element ['device_id' ]) == self .id :
248
+ clip = element ['video' ]
247
249
self .thumbnail = (
248
250
"{}{}.jpg" .format (
249
- self .urls .base_url , element [ 'thumbnail' ])
251
+ self .urls .base_url , clip [ 0 : - 4 ])
250
252
)
251
253
return self .thumbnail
252
254
except KeyError :
@@ -293,6 +295,7 @@ def __init__(self, username=None, password=None):
293
295
self ._video_count = 0
294
296
self ._all_videos = {}
295
297
self ._summary = None
298
+ self .record_dates = dict ()
296
299
297
300
@property
298
301
def camera_thumbs (self ):
@@ -376,6 +379,7 @@ def refresh(self):
376
379
def get_videos (self , start_page = 0 , end_page = 1 ):
377
380
"""Retrieve last recorded videos per camera."""
378
381
videos = list ()
382
+ all_dates = dict ()
379
383
for page_num in range (start_page , end_page + 1 ):
380
384
this_page = self ._video_request (page_num )
381
385
if not this_page :
@@ -388,6 +392,12 @@ def get_videos(self, start_page=0, end_page=1):
388
392
camera_name = entry ['camera_name' ]
389
393
clip_addr = entry ['address' ]
390
394
thumb_addr = entry ['thumbnail' ]
395
+ clip_date = clip_addr .split ('_' )[- 6 :]
396
+ clip_date = '_' .join (clip_date )
397
+ clip_date = clip_date .split ('.' )[0 ]
398
+ if camera_name not in all_dates :
399
+ all_dates [camera_name ] = list ()
400
+ all_dates [camera_name ].append (clip_date )
391
401
try :
392
402
self ._all_videos [camera_name ].append (
393
403
{
@@ -402,6 +412,7 @@ def get_videos(self, start_page=0, end_page=1):
402
412
'thumb' : thumb_addr ,
403
413
}
404
414
]
415
+ self .record_dates = all_dates
405
416
406
417
def get_cameras (self ):
407
418
"""Find and creates cameras."""
0 commit comments