py3 support
This commit is contained in:
parent
98795d3a25
commit
0b80bebf15
26 changed files with 168 additions and 111 deletions
|
|
@ -1,10 +1,11 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# vi:si:et:sw=4:sts=4:ts=4
|
||||
from __future__ import division
|
||||
from __future__ import division, print_function, absolute_import
|
||||
|
||||
import os.path
|
||||
import hashlib
|
||||
|
||||
from six.moves import urllib
|
||||
from django.db import models
|
||||
from django.core.files.base import ContentFile
|
||||
|
||||
|
|
@ -12,7 +13,8 @@ from lookup.models import MovieId
|
|||
|
||||
def getCovers(isbn, url_prefix='', limit=lambda x, y: 0.3 < x/y < 1):
|
||||
covers = {}
|
||||
if url_prefix.endswith('/'): url_prefix = url_prefix[:-1]
|
||||
if url_prefix.endswith('/'):
|
||||
url_prefix = url_prefix[:-1]
|
||||
for p in CoverCache.objects.all().filter(isbn=isbn, failed=False).order_by('id'):
|
||||
if p.site not in covers:
|
||||
covers[p.site] = []
|
||||
|
|
@ -24,15 +26,17 @@ def getCovers(isbn, url_prefix='', limit=lambda x, y: 0.3 < x/y < 1):
|
|||
pjson['height'] = cover.height
|
||||
if p.site not in ['other', 'wikipedia.org'] or limit(cover.width, cover.height):
|
||||
covers[p.site].append(pjson)
|
||||
for p in covers.keys():
|
||||
if not covers[p]:
|
||||
del covers[p]
|
||||
for p in list(covers):
|
||||
if not covers[p]:
|
||||
del covers[p]
|
||||
covers = Cover.objects.filter(isbn=isbn).exclude(cover='')
|
||||
if cover.count() > 0:
|
||||
covers['local'] = [p.cover.url]
|
||||
return covers
|
||||
|
||||
def cover_path(url, filename):
|
||||
if not isinstance(url, bytes):
|
||||
url = url.encode('utf-8')
|
||||
h = hashlib.sha1(url).hexdigest()
|
||||
ext = 'jpg'
|
||||
if filename.endswith('.png'):
|
||||
|
|
@ -66,13 +70,13 @@ class CoverCache(models.Model):
|
|||
try:
|
||||
data = ox.net.read_url(url)
|
||||
self.image.save(name, ContentFile(data))
|
||||
except ox.net.urllib2.HTTPError, e:
|
||||
except urllib.error.HTTPError as e:
|
||||
#import traceback
|
||||
#print traceback.print_exc()
|
||||
self.status = e.code
|
||||
self.failed = True
|
||||
self.save()
|
||||
except ox.net.urllib2.URLError, e:
|
||||
except urllib.error.URLError as e:
|
||||
#import traceback
|
||||
#print traceback.print_exc()
|
||||
self.status = e.reason
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue