From 2e017d0df3cca1000a45a869892b5f058f9d01e9 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Fri, 6 May 2011 21:12:51 -0400 Subject: [PATCH] Polishing... --- scanner/PhotoAlbum.py | 5 ++++- scanner/TreeWalker.py | 20 +++++++++++++++++++- web/js/010-control.js | 14 ++++++++++---- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/scanner/PhotoAlbum.py b/scanner/PhotoAlbum.py index ec227f9..18cd425 100644 --- a/scanner/PhotoAlbum.py +++ b/scanner/PhotoAlbum.py @@ -87,7 +87,7 @@ class Album(object): return None class Photo(object): - thumb_sizes = [ (150, True), (640, False), (800, False), (1024, False) ] + thumb_sizes = [ (75, True), (150, True), (640, False), (800, False), (1024, False) ] def __init__(self, path, thumb_path=None, attributes=None): self._path = trim_base(path) self.is_valid = True @@ -192,6 +192,9 @@ class Photo(object): def __str__(self): return self.name @property + def path(self): + return self._path + @property def image_caches(self): return [image_cache(self._path, size[0], size[1]) for size in Photo.thumb_sizes] @property diff --git a/scanner/TreeWalker.py b/scanner/TreeWalker.py index 17b9b54..96ca5e5 100644 --- a/scanner/TreeWalker.py +++ b/scanner/TreeWalker.py @@ -1,8 +1,9 @@ import os import os.path from datetime import datetime -from PhotoAlbum import Photo, Album +from PhotoAlbum import Photo, Album, PhotoAlbumEncoder from CachePath import json_cache, set_cache_path_base, file_mtime +import json class TreeWalker: def __init__(self, album_path, cache_path): @@ -12,6 +13,7 @@ class TreeWalker: self.all_albums = list() self.all_photos = list() self.walk(self.album_path) + self.big_lists() self.remove_stale() def walk(self, path): print "Walking %s" % path @@ -51,7 +53,23 @@ class TreeWalker: album.cache(self.cache_path) self.all_albums.append(album) return album + def big_lists(self): + photo_list = [] + self.all_photos.sort() + for photo in self.all_photos: + photo_list.append(photo.path) + print "Writing all photos list." + fp = open(os.path.join(self.cache_path, "all_photos.json"), 'w') + json.dump(photo_list, fp, cls=PhotoAlbumEncoder) + fp.close() + photo_list.reverse() + print "Writing latest photos list." + fp = open(os.path.join(self.cache_path, "latest_photos.json"), 'w') + json.dump(photo_list[0:27], fp, cls=PhotoAlbumEncoder) + fp.close() + def remove_stale(self): + print "Removing stale cache entries." for cache in os.listdir(self.cache_path): match = False for album in self.all_albums: diff --git a/web/js/010-control.js b/web/js/010-control.js index ab4be0f..ab3a410 100644 --- a/web/js/010-control.js +++ b/web/js/010-control.js @@ -56,6 +56,12 @@ $(document).ready(function() { showPhoto(); setTitle(); } + function trimExtension(title) { + var index = title.lastIndexOf("."); + if (index != -1) + return title.substring(0, index) + return title; + } function setTitle() { var title = ""; var components; @@ -78,14 +84,14 @@ $(document).ready(function() { } } if (current_photo_cache != null) - title += current_photo.name; + title += trimExtension(current_photo.name); $("#title").html(title); } function showAlbum() { $("html, body").animate({ scrollTop: 0 }, "slow"); var photos = ""; for (var i = 0; i < current_album.photos.length; ++i) - photos += ""; + photos += "\"""; $("#thumbs").html(photos); if (current_album.albums.length) $("#subalbums-title").show(); @@ -96,7 +102,7 @@ $(document).ready(function() { for (var i = current_album.albums.length - 1; i >= 0; --i) { var path = cachePath(current_album.path + "/" + current_album.albums[i].path); var id = "album-" + path; - subalbums += "
" + current_album.albums[i].path + "
"; + subalbums += "
" + current_album.albums[i].path + "
"; thumbFinderList.push({ path: path, id: escapeId(id) }); } $("#subalbums").html(subalbums); @@ -131,7 +137,7 @@ $(document).ready(function() { .attr("width", width).attr("height", height) .attr("src", imagePath(current_photo.name, current_album.path, maxSize, false)) .attr("alt", current_photo.name) - .attr("title", current_photo.name) + .attr("title", current_photo.date) .load(function() { $(this).css("width", "auto").css("height", "100%"); }); var nextLink = "#" + current_album_cache + "/" + cachePath(current_album.photos[ (current_photo_index + 1 >= current_album.photos.length) ? 0 : (current_photo_index + 1)