Author: duncan
Date: Sun Dec 31 07:44:24 2006
New Revision: 8878
Modified:
branches/rel-1/freevo/freevo
branches/rel-1/freevo/src/www/htdocs/fileinfo.rpy
branches/rel-1/freevo/src/www/htdocs/library.rpy
Log:
Various bug fixes and cacheing of images allied
Modified: branches/rel-1/freevo/freevo
==============================================================================
--- branches/rel-1/freevo/freevo (original)
+++ branches/rel-1/freevo/freevo Sun Dec 31 07:44:24 2006
@@ -190,7 +190,8 @@
os.kill(pid, SIGTERM)
return 1
except OSError, e:
- print e
+ #print e
+ pass
return 0
Modified: branches/rel-1/freevo/src/www/htdocs/fileinfo.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/fileinfo.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/fileinfo.rpy Sun Dec 31 07:44:24 2006
@@ -60,6 +60,7 @@
print medium
title = ""
info = "<table>"
+ (basedir, item) = os.path.split(file)
fxd_file = file[:file.rindex('.')] + ".fxd"
if os.path.exists(fxd_file):
@@ -70,11 +71,15 @@
info += "<tr><td><b>" + fxd_info.keys()[i] + ":
</b></td><td>"+fxd_info.values()[i]+"</td></tr>"
i +=1
title=fxd_info['title']
- if title == "":
- title = util.mediainfo.get(file)['title']
+ if not title:
+ title = util.mediainfo.get(item)['title']
+ if not title:
+ title = item
else:
media_info = util.mediainfo.get(file)
title = media_info['title']
+ if not title:
+ title = item
#audio info
if media_info['artist']:
info+='<tr><td><b>Artist:
</b></td><td>'+media_info['artist'] +'</td></tr>'
Modified: branches/rel-1/freevo/src/www/htdocs/library.rpy
==============================================================================
--- branches/rel-1/freevo/src/www/htdocs/library.rpy (original)
+++ branches/rel-1/freevo/src/www/htdocs/library.rpy Sun Dec 31 07:44:24 2006
@@ -71,12 +71,26 @@
return FALSE
def convert_dir(self, dir_str):
+ '''
+ Converts a direct file location to a link that twisted can display.
+ If the file exists in one of the child resources of twisted, then
+ this method converts the file to a proper child resource link that
+ twiseted knows about.
+ If above case fails, the original file link will be returned.
+ '''
print 'convert_dir(self, dir_str=%r)' % (dir_str)
- for i in range(len(self.allowed_dirs)):
- val = self.allowed_dirs[i][1]
- if dir_str.startswith(val):
- return val.replace("/", "_") + dir_str[len(val):]
- return dir_str
+ child_res = ""
+ ### if the file starts with FREEVO_CACHEDIR return converted file
+ if dir_str.startswith(config.FREEVO_CACHEDIR):
+ child_res = config.FREEVO_CACHEDIR
+ else:
+ for i in range(len(self.allowed_dirs)):
+ val = self.allowed_dirs[i][1]
+ if dir_str.startswith(val):
+ child_res = val
+ break
+
+ return child_res.replace("/", "_") + dir_str[len(child_res):]
def get_suffixes (self, media):
print 'get_suffixes (self, media=\"%s\")' % (media)
@@ -452,11 +466,11 @@
status = 'favorite'
### show image
if action_mediatype == "images":
- image_link = self.convert_dir(filepath)
size = (info['width'], info['height'])
- new_size = self.resize_image(image_link, size)
+ (scaled_image, new_size) =
self.get_scaled_image_and_size(filepath, size)
+ image_link = self.convert_dir(filepath)
fv.tableCell('<a
href="javascript:openfoto(\''+image_link+'\','+str(size[0])+','+str(size[1])+')">'\
- +'<img src="'+image_link+'"
height="'+str(new_size[1])+'px" width="'+str(new_size[0])+'px" />'\
+ +'<img src="'+scaled_image+'"
height="'+str(new_size[1])+'px" width="'+str(new_size[0])+'px" />'\
+'<br />'+Unicode(title)+'</a>',
'class="'+status+'" colspan="1"')
### show movie
elif action_mediatype == "movies" or action_mediatype ==
"rectv":
@@ -593,8 +607,8 @@
new_height = 200
return [int(new_width), int(new_height + 0.5)]
- def resize_image_to_square(self, image, size):
- print 'resize_image_to_square(self, image=%s, size=%s)' % (image, size)
+ def get_fit_to_square_size(self, size):
+ print 'get_fit_to_square_size(self, size=%s)' % str(size)
### if aspect ratio > 1 then scale width to 200
new_size = [200, 200]
try:
@@ -609,6 +623,27 @@
pass
return new_size
+ def get_scaled_image_and_size(self, filepath, size):
+ '''
+ Returns the location of a scaled image and size of the scaled image
+ as a 2-tuple. Eg. ("/var/cache/freevo/test.jpg", [200, 150]).
+ The image will be scaled only if it larger than a certain prefixed
+ size. May be in future the prefixed image size could be a config
+ variable.
+ '''
+ threshold_size = [800, 600]
+ new_size = self.get_fit_to_square_size(size)
+ scaled_image_path = self.cache_dir + filepath.replace("/",
"_").replace(".", "_") + ".jpg"
+ if not os.path.exists(scaled_image_path):
+ if size[0] > threshold_size[0] or size[1] > threshold_size[1]:
+ image = imlib2.open(filepath)
+ new_image = image.scale(new_size)
+ new_image.save(scaled_image_path)
+ else:
+ scaled_image_path = filepath
+ scaled_image_path = self.convert_dir(scaled_image_path)
+ return (scaled_image_path, new_size)
+
def get_fxd_title(self, fxd_file):
fxd_info = ""
parser = util.fxdparser.FXD(fxd_file)
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog