mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Correct nicebook max result problem
This commit is contained in:
parent
c5cbaffd20
commit
9c30a41612
@ -5,7 +5,6 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
import sys, textwrap, re, traceback, socket
|
import sys, textwrap, re, traceback, socket
|
||||||
from urllib import urlencode
|
from urllib import urlencode
|
||||||
from functools import partial
|
|
||||||
from math import ceil
|
from math import ceil
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
|
||||||
@ -147,7 +146,7 @@ class Query(object):
|
|||||||
#direct hit
|
#direct hit
|
||||||
return [feed]
|
return [feed]
|
||||||
|
|
||||||
nbpagetoquery = ceil(min(nbresults, self.max_results)/10)
|
nbpagetoquery = int(ceil(float(min(nbresults, self.max_results))/10))
|
||||||
pages =[feed]
|
pages =[feed]
|
||||||
if nbpagetoquery > 1:
|
if nbpagetoquery > 1:
|
||||||
for i in xrange(2, nbpagetoquery + 1):
|
for i in xrange(2, nbpagetoquery + 1):
|
||||||
@ -193,11 +192,9 @@ class ResultList(list):
|
|||||||
for x in author.getiterator('dt'):
|
for x in author.getiterator('dt'):
|
||||||
if self.reauteur.match(x.text):
|
if self.reauteur.match(x.text):
|
||||||
elt = x.getnext()
|
elt = x.getnext()
|
||||||
i = 0
|
while elt.tag == 'dd':
|
||||||
while elt.tag <> 'dt' and i < 20:
|
|
||||||
authortext.append(unicode(elt.text_content()))
|
authortext.append(unicode(elt.text_content()))
|
||||||
elt = elt.getnext()
|
elt = elt.getnext()
|
||||||
i += 1
|
|
||||||
break
|
break
|
||||||
if len(authortext) == 1:
|
if len(authortext) == 1:
|
||||||
authortext = [self.reautclean.sub('', authortext[0])]
|
authortext = [self.reautclean.sub('', authortext[0])]
|
||||||
@ -291,29 +288,32 @@ class ResultList(list):
|
|||||||
return feed.xpath("//div[@id='container']")[0]
|
return feed.xpath("//div[@id='container']")[0]
|
||||||
|
|
||||||
def populate(self, entries, browser, verbose=False):
|
def populate(self, entries, browser, verbose=False):
|
||||||
for x in entries:
|
#single entry
|
||||||
|
if len(entries) ==1:
|
||||||
try:
|
try:
|
||||||
entry = self.get_individual_metadata(browser, x, verbose)
|
entry = entries[0].xpath("//div[@id='container']")[0]
|
||||||
title = self.get_title(entry)
|
title = self.get_title(entry)
|
||||||
authors = self.get_authors(entry)
|
authors = self.get_authors(entry)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
if verbose:
|
if verbose:
|
||||||
print 'Failed to get all details for an entry'
|
print 'Failed to get all details for an entry'
|
||||||
print e
|
print e
|
||||||
continue
|
return
|
||||||
self.append(self.fill_MI(entry, title, authors, verbose))
|
self.append(self.fill_MI(entry, title, authors, verbose))
|
||||||
|
else:
|
||||||
|
#multiple entries
|
||||||
|
for x in entries:
|
||||||
|
try:
|
||||||
|
entry = self.get_individual_metadata(browser, x, verbose)
|
||||||
|
title = self.get_title(entry)
|
||||||
|
authors = self.get_authors(entry)
|
||||||
|
except Exception, e:
|
||||||
|
if verbose:
|
||||||
|
print 'Failed to get all details for an entry'
|
||||||
|
print e
|
||||||
|
continue
|
||||||
|
self.append(self.fill_MI(entry, title, authors, verbose))
|
||||||
|
|
||||||
def populate_single(self, feed, verbose=False):
|
|
||||||
try:
|
|
||||||
entry = feed.xpath("//div[@id='container']")[0]
|
|
||||||
title = self.get_title(entry)
|
|
||||||
authors = self.get_authors(entry)
|
|
||||||
except Exception, e:
|
|
||||||
if verbose:
|
|
||||||
print 'Failed to get all details for an entry'
|
|
||||||
print e
|
|
||||||
return
|
|
||||||
self.append(self.fill_MI(entry, title, authors, verbose))
|
|
||||||
|
|
||||||
class NiceBooksError(Exception):
|
class NiceBooksError(Exception):
|
||||||
pass
|
pass
|
||||||
@ -375,10 +375,7 @@ def search(title=None, author=None, publisher=None, isbn=None,
|
|||||||
|
|
||||||
#List of entry
|
#List of entry
|
||||||
ans = ResultList()
|
ans = ResultList()
|
||||||
if len(entries) > 1:
|
ans.populate(entries, br, verbose)
|
||||||
ans.populate(entries, br, verbose)
|
|
||||||
else:
|
|
||||||
ans.populate_single(entries[0], verbose)
|
|
||||||
return ans
|
return ans
|
||||||
|
|
||||||
def check_for_cover(isbn):
|
def check_for_cover(isbn):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user