From: Ɓukasz Rekucki Date: Fri, 2 Oct 2009 11:41:08 +0000 (+0200) Subject: More UTF-8 vs. mercurial vs. os.listdir problems. X-Git-Url: https://git.mdrn.pl/redakcja.git/commitdiff_plain/bbe3a85e8006750d52bd591086c8b196714ef759?ds=inline;hp=-c More UTF-8 vs. mercurial vs. os.listdir problems. --- bbe3a85e8006750d52bd591086c8b196714ef759 diff --git a/apps/api/handlers/library_handlers.py b/apps/api/handlers/library_handlers.py index c5c52564..3c75c81f 100644 --- a/apps/api/handlers/library_handlers.py +++ b/apps/api/handlers/library_handlers.py @@ -242,31 +242,35 @@ class DocumentHTMLHandler(BaseHandler): class DocumentGalleryHandler(BaseHandler): allowed_methods = ('GET') + def read(self, request, docid): """Read meta-data about scans for gallery of this document.""" galleries = [] + from urllib import quote for assoc in GalleryForDocument.objects.filter(document=docid): dirpath = os.path.join(settings.MEDIA_ROOT, assoc.subpath) if not os.path.isdir(dirpath): - log.info(u"[WARNING]: missing gallery %s", dirpath) + log.warn(u"[WARNING]: missing gallery %s", dirpath) continue gallery = {'name': assoc.name, 'pages': []} for file in os.listdir(dirpath): - file = file.decode('utf-8') - - log.info(file) + if not isinstance(file, unicode): + log.warn(u"File %s is gallery %s is not unicode. Ommiting."\ + % (file, dirpath) ) + continue + name, ext = os.path.splitext(os.path.basename(file)) if ext.lower() not in [u'.png', u'.jpeg', u'.jpg']: - log.info("Ignoring: %s %s", name, ext) + log.info(u"Ignoring: %s %s", name, ext) continue url = settings.MEDIA_URL + assoc.subpath + u'/' + file; - gallery['pages'].append(url) + gallery['pages'].append( quote(url.encode('utf-8')) ) gallery['pages'].sort() galleries.append(gallery)