Could we make the images size a variable that could be also set from the local_conf? I would personally like the image to be 100x100.
You could use 'if hasattr(conf, 'WWW_IMAGE_SIZE'):' then fall back to 200x200 if its not set Chandan Pitta wrote: > Hi Duncan, > > I think these patches must have got lost in the noise. I sent the > patches on 28, but to save you some trouble I am reattaching the files > again and pasting the message for reference. > > Hello Duncan and Wout, > > I fixed the issue where you can have ITEMS which may not be a tuple > (like in the case of web radio). So Duncan with the new patch you > should be able to use webserver without any modifications and > (hopefully) no crashes :-). Before adding child resources to twisted I > check to make sure the each item is a tuple. If you think users may > use lists, then we need to add that check as well. But I think we are > good to go for now. > > As for images, I modified the code to scale images that are larger > than 800x600 to 200x200 (maintaining aspect ratio of course). Does > that answer your queries Wout? May be we can make the 800x600 value a > config variable. Or you guys decide what would be a proper value. This > change will speed up image downloads. Oh I also made sure that when > you click on the links the original image files are opened. > > Yes I see that TV recordings work now. Excellent! > > Regards, > Chandan > > Please check and merge to svn. > > Thanks > Chandan > > > > > On 12/28/06, Duncan Webb <[EMAIL PROTECTED]> wrote: >> wout clymans wrote: >> > Chandan Pitta wrote: >> >> On 12/28/06, Duncan Webb <[EMAIL PROTECTED]> wrote: >> >> >> >>> Chandan Pitta wrote: >> >> I think it is a good idea, but this has to be done only for >> >> media=images. I will take a look at it. >> >> >> > If you need any help, let me know! >> > Question i already have: >> > do we need to resize all images or just the images that are larger >> than >> > 800x600 (as example) and what will be the new default size? >> >> The page with lots of small images would load nice and quickly if the >> images were 200x200, these should be scaled and cached. >> >> A full size image doesn't really need scaling but does need a max width >> and max height for the browser, something in local_conf.py. Then it is >> easy to keep the aspect ratio and fill either the width or height. >> >> >>> >> >>> >> >>>> However I could not solve one problem, I am unable to click on >> >>>> recorded TV programs from webpage. They are not active links. Is >> >>>> anyone facing the same problem? >> >>>> >> >>> These didn't work in the original patch either. >> >>> >> >>> >> >> >> >> Hmm, one more item in my TODO list then. >> >> >> > This should be fixed in svn. >> >> Works now but some of the fields in the popup window are not correct, >> eg: Year and recorded time. Recorded time needs a time.localtime and a >> time.strftime. >> >> I must say the the freevo web interface is starting to look really good >> now, possibly a killer feature. Many thanks to you both for this. >> >> Duncan >> >> >> ------------------------------------------------------------------------- >> >> 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-devel mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/freevo-devel >> > ------------------------------------------------------------------------ > > Index: src/www/htdocs/library.rpy > =================================================================== > --- src/www/htdocs/library.rpy (revision 8853) > +++ src/www/htdocs/library.rpy (working copy) > @@ -71,13 +71,27 @@ > 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) > suffixes = [] > @@ -452,11 +466,11 @@ > status = 'favorite' > ### show image > if action_mediatype == "images": > + size = (info['width'], info['height']) > + (scaled_image, new_size) = > self.get_scaled_image_and_size(filepath, size) > image_link = self.convert_dir(filepath) > - size = (info['width'], info['height']) > - new_size = self.resize_image(image_link, size) > 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) > > > ------------------------------------------------------------------------ > > Index: src/helpers/webserver.py > =================================================================== > --- src/helpers/webserver.py (revision 8853) > +++ src/helpers/webserver.py (working copy) > @@ -92,14 +92,21 @@ > > root = static.File(docRoot) > root.processors = { '.rpy': script.ResourceScript, } > - for (item, dir_str) in config.VIDEO_ITEMS: > - root.putChild(dir_str.replace("/", "_"), static.File(dir_str)) > - for (item, dir_str) in config.AUDIO_ITEMS: > - root.putChild(dir_str.replace("/", "_"), static.File(dir_str)) > - for (item, dir_str) in config.IMAGE_ITEMS: > - root.putChild(dir_str.replace("/", "_"), static.File(dir_str)) > + for item in config.VIDEO_ITEMS: > + if isinstance(item, tuple) and len(item) == 2: > + dir_str = item[1] > + root.putChild(dir_str.replace("/", "_"), static.File(dir_str)) > + for item in config.AUDIO_ITEMS: > + if isinstance(item, tuple) and len(item) == 2: > + dir_str = item[1] > + root.putChild(dir_str.replace("/", "_"), static.File(dir_str)) > + for item in config.IMAGE_ITEMS: > + if isinstance(item, tuple) and len(item) == 2: > + dir_str = item[1] > + root.putChild(dir_str.replace("/", "_"), static.File(dir_str)) > root.putChild(config.TV_RECORD_DIR.replace("/", "_"), > static.File(config.TV_RECORD_DIR)) > - > + root.putChild(config.FREEVO_CACHEDIR.replace("/", "_"), > static.File(config.FREEVO_CACHEDIR)) > + > root.putChild('vhost', vhost.VHostMonsterResource()) > rewriter = rewrite.RewriterResource(root, helpimagesrewrite) > if (config.DEBUG == 0): > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > 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-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/freevo-devel > ------------------------------------------------------------------------- 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-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freevo-devel
