os.stat is avoided now for faster file list loading
authorCalin Crisan <ccrisan@gmail.com>
Sat, 16 Nov 2013 21:08:52 +0000 (23:08 +0200)
committerCalin Crisan <ccrisan@gmail.com>
Sat, 16 Nov 2013 21:08:52 +0000 (23:08 +0200)
src/handlers.py
src/mediafiles.py
static/js/main.js

index f32b62f76528d0a139146f21c491e723edd39882..d8fd132d1292a6b42f9bec57c2bd226bdf9a197c 100644 (file)
@@ -553,7 +553,7 @@ class PictureHandler(BaseHandler):
         else:
             def on_response(jpg):
                 if jpg is None:
-                    self.finish({})
+                    self.finish()
                     
                 else:
                     self.finish(jpg)
index 111916586ecbbdd2491e7880ea8c066eb7550cd4..32bfc86f95859e472337ee0a1582ca5e2b0755d3 100644 (file)
@@ -90,7 +90,8 @@ def make_movie_preview(camera_config, full_path):
     framerate = camera_config['framerate']
     pre_capture = camera_config['pre_capture']
     offs = pre_capture / framerate
-    
+    offs *= 2
+
     cmd = 'ffmpeg -i "%(path)s" -f mjpeg -vframes 1 -ss %(offs)s -y %(path)s.thumb' % {
             'path': full_path, 'offs': offs}
     
@@ -149,12 +150,24 @@ def list_media(camera_config, media_type):
         path = p[len(target_dir):]
         if not path.startswith('/'):
             path = '/' + path
+            
+#         try:
+#             stat = os.stat(p)
+#         
+#         except Exception as e:
+#             logging.error('stat call failed for file %(path)s: %(msg)s' % {
+#                     'path': path, 'msg': unicode(e)})
+#             
+#             continue
+#         
+#         timestamp = stat.st_mtime
+#         size = stat.st_size
         
         media_files.append({
             'path': path,
-            'momentStr': utils.pretty_date_time(datetime.datetime.fromtimestamp(os.path.getmtime(p))),
-            'sizeStr': utils.pretty_size(os.path.getsize(p)),
-            'timestamp': os.path.getmtime(p)
+            #'momentStr': utils.pretty_date_time(datetime.datetime.fromtimestamp(timestamp)),
+            #'sizeStr': utils.pretty_size(size),
+            #'timestamp': timestamp
         })
     
     # TODO files listed here may not belong to the given camera
index c47dcd4955e0ea2301f8356f4d31d56cb5f54113..9dde0175b7f86b125d8e8deffe8132a272cc7849 100644 (file)
@@ -1395,9 +1395,14 @@ function runMediaDialog(cameraId, mediaType) {
                 var nameDiv = $('<div class="media-list-entry-name">' + entry.name + '</div>');
                 entryDiv.append(nameDiv);
                 
-                var detailsDiv = $('<div class="media-list-entry-details"></div>');
-                detailsDiv.html(entry.momentStr + ' | ' + entry.sizeStr);
-                entryDiv.append(detailsDiv);
+                if (entry.momentStr && entry.sizeStr) {
+                    var detailsDiv = $('<div class="media-list-entry-details"></div>');
+                    detailsDiv.html(entry.momentStr + ' | ' + entry.sizeStr);
+                    entryDiv.append(detailsDiv);
+                }
+                else {
+                    nameDiv.css('line-height', '2.3em');
+                }
                 
                 downloadButton[0]._onClick = function () {
                     window.location.href = '/picture/' + cameraId + '/download' + entry.path;