Further bugfixes for python3
This commit is contained in:
parent
ed449e17e2
commit
3c88752cf9
@ -31,6 +31,9 @@ from libbmc.config import Config
|
||||
|
||||
config = Config()
|
||||
default_socket = socket.socket
|
||||
stdout_encoding = sys.stdout.encoding
|
||||
if stdout_encoding is None:
|
||||
stdout_encoding = 'UTF-8'
|
||||
|
||||
|
||||
def download(url):
|
||||
@ -64,8 +67,11 @@ def download(url):
|
||||
socket.socket = socks.socksocket
|
||||
try:
|
||||
r = urlopen(url)
|
||||
size = int(r.headers.getheader('content-length').strip())
|
||||
dl = ""
|
||||
try:
|
||||
size = int(dict(r.info())['Content-Length'].strip())
|
||||
except KeyError:
|
||||
size = 1
|
||||
dl = b""
|
||||
dl_size = 0
|
||||
while True:
|
||||
buf = r.read(1024)
|
||||
@ -79,10 +85,13 @@ def download(url):
|
||||
else:
|
||||
break
|
||||
contenttype = False
|
||||
if 'pdf' in r.headers.getheader('content-type'):
|
||||
try:
|
||||
if 'pdf' in dict(r.info())['Content-Type']:
|
||||
contenttype = 'pdf'
|
||||
elif 'djvu' in r.headers.getheader('content-type'):
|
||||
elif 'djvu' in dict(r.info())['Content-Type']:
|
||||
contenttype = 'djvu'
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
if r.getcode() != 200 or contenttype is False:
|
||||
continue
|
||||
@ -120,7 +129,7 @@ def findISBN(src):
|
||||
return False
|
||||
|
||||
while totext.poll() is None:
|
||||
extractfull = ' '.join([i.strip() for i in totext.stdout.readlines()])
|
||||
extractfull = ' '.join([i.decode(stdout_encoding).strip() for i in totext.stdout.readlines()])
|
||||
extractISBN = isbn_re.search(extractfull.lower().replace('Œ',
|
||||
'-'))
|
||||
if extractISBN:
|
||||
@ -178,7 +187,7 @@ def findDOI(src):
|
||||
|
||||
extractfull = ''
|
||||
while totext.poll() is None:
|
||||
extractfull += ' '.join([i.strip() for i in totext.stdout.readlines()])
|
||||
extractfull += ' '.join([i.decode(stdout_encoding).strip() for i in totext.stdout.readlines()])
|
||||
extractDOI = doi_re.search(extractfull.lower().replace('Œ', '-'))
|
||||
if not extractDOI:
|
||||
# PNAS fix
|
||||
@ -234,10 +243,13 @@ def doi2Bib(doi):
|
||||
try:
|
||||
r = urlopen(req)
|
||||
|
||||
if r.headers.getheader('content-type') == 'application/x-bibtex':
|
||||
try:
|
||||
if dict(r.info())['Content-Type'] == 'application/x-bibtex':
|
||||
return r.read()
|
||||
else:
|
||||
return ''
|
||||
except KeyError:
|
||||
return ''
|
||||
except URLError:
|
||||
tools.warning('Unable to contact remote server to get the bibtex ' +
|
||||
'entry for doi '+doi)
|
||||
@ -266,7 +278,7 @@ def findArXivId(src):
|
||||
|
||||
extractfull = ''
|
||||
while totext.poll() is None:
|
||||
extractfull += ' '.join([i.strip() for i in totext.stdout.readlines()])
|
||||
extractfull += ' '.join([i.decode(stdout_encoding).strip() for i in totext.stdout.readlines()])
|
||||
extractID = arXiv_re.search(extractfull)
|
||||
if extractID:
|
||||
totext.terminate()
|
||||
@ -295,7 +307,7 @@ def arXiv2Bib(arxiv):
|
||||
else:
|
||||
fetched_bibtex = BibTexParser(bib.bibtex())
|
||||
fetched_bibtex = fetched_bibtex.get_entry_dict()
|
||||
fetched_bibtex = fetched_bibtex[fetched_bibtex.keys()[0]]
|
||||
fetched_bibtex = fetched_bibtex[list(fetched_bibtex.keys())[0]]
|
||||
try:
|
||||
del(fetched_bibtex['file'])
|
||||
except KeyError:
|
||||
@ -325,7 +337,7 @@ def findHALId(src):
|
||||
return False
|
||||
|
||||
while totext.poll() is None:
|
||||
extractfull = ' '.join([i.strip() for i in totext.stdout.readlines()])
|
||||
extractfull = ' '.join([i.decode(stdout_encoding).strip() for i in totext.stdout.readlines()])
|
||||
extractID = HAL_re.search(extractfull)
|
||||
if extractID:
|
||||
totext.terminate()
|
||||
|
Loading…
Reference in New Issue
Block a user