Download working
This commit is contained in:
parent
c757b1cb64
commit
681283a0db
@ -116,10 +116,13 @@ A list of ideas and TODO. Don't hesitate to give feedback on the ones you really
|
|||||||
80. Search engine
|
80. Search engine
|
||||||
100. UTF-8 ?
|
100. UTF-8 ?
|
||||||
200. Webserver interface ? GUI ? (not likely for now…)
|
200. Webserver interface ? GUI ? (not likely for now…)
|
||||||
|
Keep multiple versions of papers
|
||||||
|
Export of bibtex
|
||||||
|
Tree à la docear ?
|
||||||
|
|
||||||
## Issues ?
|
## Issues ?
|
||||||
|
|
||||||
* Multiplication of {{}}
|
* Multiplication of {{}} => solved in bibtexparser
|
||||||
|
|
||||||
## Thanks
|
## Thanks
|
||||||
|
|
||||||
|
17
backend.py
17
backend.py
@ -8,6 +8,7 @@ import fetcher
|
|||||||
import params
|
import params
|
||||||
from bibtexparser.bparser import BibTexParser
|
from bibtexparser.bparser import BibTexParser
|
||||||
from bibtexparser.customization import homogeneize_latex_encoding
|
from bibtexparser.customization import homogeneize_latex_encoding
|
||||||
|
from codecs import open
|
||||||
|
|
||||||
|
|
||||||
def getNewName(src, bibtex, tag=''):
|
def getNewName(src, bibtex, tag=''):
|
||||||
@ -69,7 +70,7 @@ def bibtexAppend(data):
|
|||||||
data is a dict for one entry in bibtex, as the one from bibtexparser output
|
data is a dict for one entry in bibtex, as the one from bibtexparser output
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
with open(params.folder+'index.bib', 'a') as fh:
|
with open(params.folder+'index.bib', 'a', encoding='utf-8') as fh:
|
||||||
fh.write(parsed2Bibtex(data)+"\n")
|
fh.write(parsed2Bibtex(data)+"\n")
|
||||||
except:
|
except:
|
||||||
tools.warning("Unable to open index file.")
|
tools.warning("Unable to open index file.")
|
||||||
@ -80,7 +81,7 @@ def bibtexEdit(ident, modifs):
|
|||||||
"""Update ident key in bibtex file, modifications are in modifs dict"""
|
"""Update ident key in bibtex file, modifications are in modifs dict"""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(params.folder+'index.bib', 'r') as fh:
|
with open(params.folder+'index.bib', 'r', encoding='utf-8') as fh:
|
||||||
bibtex = BibTexParser(fh.read(),
|
bibtex = BibTexParser(fh.read(),
|
||||||
customization=homogeneize_latex_encoding)
|
customization=homogeneize_latex_encoding)
|
||||||
bibtex = bibtex.get_entry_dict()
|
bibtex = bibtex.get_entry_dict()
|
||||||
@ -102,7 +103,7 @@ def bibtexRewrite(data):
|
|||||||
for entry in data.keys():
|
for entry in data.keys():
|
||||||
bibtex += parsed2Bibtex(data[entry])+"\n"
|
bibtex += parsed2Bibtex(data[entry])+"\n"
|
||||||
try:
|
try:
|
||||||
with open(params.folder+'index.bib', 'w') as fh:
|
with open(params.folder+'index.bib', 'w', encoding='utf-8') as fh:
|
||||||
fh.write(bibtex)
|
fh.write(bibtex)
|
||||||
except:
|
except:
|
||||||
tools.warning("Unable to open index file.")
|
tools.warning("Unable to open index file.")
|
||||||
@ -112,7 +113,7 @@ def bibtexRewrite(data):
|
|||||||
def deleteId(ident):
|
def deleteId(ident):
|
||||||
"""Delete a file based on its id in the bibtex file"""
|
"""Delete a file based on its id in the bibtex file"""
|
||||||
try:
|
try:
|
||||||
with open(params.folder+'index.bib', 'r') as fh:
|
with open(params.folder+'index.bib', 'r', encoding='utf-8') as fh:
|
||||||
bibtex = BibTexParser(fh.read(),
|
bibtex = BibTexParser(fh.read(),
|
||||||
customization=homogeneize_latex_encoding)
|
customization=homogeneize_latex_encoding)
|
||||||
bibtex = bibtex.get_entry_dict()
|
bibtex = bibtex.get_entry_dict()
|
||||||
@ -148,7 +149,7 @@ def deleteId(ident):
|
|||||||
def deleteFile(filename):
|
def deleteFile(filename):
|
||||||
"""Delete a file based on its filename"""
|
"""Delete a file based on its filename"""
|
||||||
try:
|
try:
|
||||||
with open(params.folder+'index.bib', 'r') as fh:
|
with open(params.folder+'index.bib', 'r', encoding='utf-8') as fh:
|
||||||
bibtex = BibTexParser(fh.read(),
|
bibtex = BibTexParser(fh.read(),
|
||||||
customization=homogeneize_latex_encoding)
|
customization=homogeneize_latex_encoding)
|
||||||
bibtex = bibtex.get_entry_dict()
|
bibtex = bibtex.get_entry_dict()
|
||||||
@ -192,7 +193,7 @@ def diffFilesIndex():
|
|||||||
"""
|
"""
|
||||||
files = tools.listDir(params.folder)
|
files = tools.listDir(params.folder)
|
||||||
try:
|
try:
|
||||||
with open(params.folder+'index.bib', 'r') as fh:
|
with open(params.folder+'index.bib', 'r', encoding='utf-8') as fh:
|
||||||
index = BibTexParser(fh.read(),
|
index = BibTexParser(fh.read(),
|
||||||
customization=homogeneize_latex_encoding)
|
customization=homogeneize_latex_encoding)
|
||||||
index_diff = index.get_entry_dict()
|
index_diff = index.get_entry_dict()
|
||||||
@ -219,7 +220,7 @@ def getBibtex(entry, file_id='both'):
|
|||||||
file_id is file or id or both to search for a file / id / both
|
file_id is file or id or both to search for a file / id / both
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
with open(params.folder+'index.bib', 'r') as fh:
|
with open(params.folder+'index.bib', 'r', encoding='utf-8') as fh:
|
||||||
bibtex = BibTexParser(fh.read(),
|
bibtex = BibTexParser(fh.read(),
|
||||||
customization=homogeneize_latex_encoding)
|
customization=homogeneize_latex_encoding)
|
||||||
bibtex = bibtex.get_entry_dict()
|
bibtex = bibtex.get_entry_dict()
|
||||||
@ -244,7 +245,7 @@ def getBibtex(entry, file_id='both'):
|
|||||||
def getEntries():
|
def getEntries():
|
||||||
"""Returns the list of all entries in the bibtex index"""
|
"""Returns the list of all entries in the bibtex index"""
|
||||||
try:
|
try:
|
||||||
with open(params.folder+'index.bib', 'r') as fh:
|
with open(params.folder+'index.bib', 'r', encoding='utf-8') as fh:
|
||||||
bibtex = BibTexParser(fh.read(),
|
bibtex = BibTexParser(fh.read(),
|
||||||
customization=homogeneize_latex_encoding)
|
customization=homogeneize_latex_encoding)
|
||||||
bibtex = bibtex.get_entry_dict()
|
bibtex = bibtex.get_entry_dict()
|
||||||
|
@ -35,7 +35,7 @@ def download(url):
|
|||||||
|
|
||||||
return r.content, contenttype
|
return r.content, contenttype
|
||||||
except requests.exceptions.RequestException:
|
except requests.exceptions.RequestException:
|
||||||
tools.warning("Unable to get "+url+" using roxy "+proxy+". It " +
|
tools.warning("Unable to get "+url+" using proxy "+proxy+". It " +
|
||||||
"may not be available.")
|
"may not be available.")
|
||||||
continue
|
continue
|
||||||
return False
|
return False
|
||||||
|
16
main.py
16
main.py
@ -14,6 +14,7 @@ import tools
|
|||||||
import params
|
import params
|
||||||
from bibtexparser.bparser import BibTexParser
|
from bibtexparser.bparser import BibTexParser
|
||||||
from bibtexparser.customization import homogeneize_latex_encoding
|
from bibtexparser.customization import homogeneize_latex_encoding
|
||||||
|
from codecs import open
|
||||||
|
|
||||||
EDITOR = os.environ.get('EDITOR') if os.environ.get('EDITOR') else 'vim'
|
EDITOR = os.environ.get('EDITOR') if os.environ.get('EDITOR') else 'vim'
|
||||||
|
|
||||||
@ -159,8 +160,11 @@ def addFile(src, filetype, manual):
|
|||||||
sys.exit("Unable to move file to library dir " + params.folder+".")
|
sys.exit("Unable to move file to library dir " + params.folder+".")
|
||||||
|
|
||||||
# Remove first page of IOP papers
|
# Remove first page of IOP papers
|
||||||
|
try:
|
||||||
if 'IOP' in bibtex['publisher'] and bibtex['type'] == 'article':
|
if 'IOP' in bibtex['publisher'] and bibtex['type'] == 'article':
|
||||||
tearpages.tearpage(new_name)
|
tearpages.tearpage(new_name)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
backend.bibtexAppend(bibtex)
|
backend.bibtexAppend(bibtex)
|
||||||
return new_name
|
return new_name
|
||||||
@ -210,8 +214,8 @@ def editEntry(entry, file_id='both'):
|
|||||||
os.path.dirname(bibtex['file']))
|
os.path.dirname(bibtex['file']))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(params.folder+'index.bib', 'r') as fh:
|
with open(params.folder+'index.bib', 'r', encoding='utf-8') as fh:
|
||||||
index = BibTexParser(fh.read().encode('utf-8'),
|
index = BibTexParser(fh.read(),
|
||||||
customization=homogeneize_latex_encoding)
|
customization=homogeneize_latex_encoding)
|
||||||
index = index.get_entry_dict()
|
index = index.get_entry_dict()
|
||||||
except:
|
except:
|
||||||
@ -224,13 +228,15 @@ def editEntry(entry, file_id='both'):
|
|||||||
|
|
||||||
|
|
||||||
def downloadFile(url, filetype, manual):
|
def downloadFile(url, filetype, manual):
|
||||||
|
print('Downloading '+url)
|
||||||
dl, contenttype = fetcher.download(url)
|
dl, contenttype = fetcher.download(url)
|
||||||
|
|
||||||
if dl is not False:
|
if dl is not False:
|
||||||
|
print('Download finished')
|
||||||
tmp = tempfile.NamedTemporaryFile(suffix='.'+contenttype)
|
tmp = tempfile.NamedTemporaryFile(suffix='.'+contenttype)
|
||||||
|
|
||||||
with open(tmp.name, 'w+') as fh:
|
with open(tmp.name, 'w+') as fh:
|
||||||
fh.write(dl.encode('utf-8'))
|
fh.write(dl)
|
||||||
new_name = addFile(tmp.name, filetype, manual)
|
new_name = addFile(tmp.name, filetype, manual)
|
||||||
tmp.close()
|
tmp.close()
|
||||||
return new_name
|
return new_name
|
||||||
@ -241,8 +247,8 @@ def downloadFile(url, filetype, manual):
|
|||||||
|
|
||||||
def openFile(ident):
|
def openFile(ident):
|
||||||
try:
|
try:
|
||||||
with open(params.folder+'index.bib', 'r') as fh:
|
with open(params.folder+'index.bib', 'r', encoding='utf-8') as fh:
|
||||||
bibtex = BibTexParser(fh.read().encode('utf-8'),
|
bibtex = BibTexParser(fh.read(),
|
||||||
customization=homogeneize_latex_encoding)
|
customization=homogeneize_latex_encoding)
|
||||||
bibtex = bibtex.get_entry_dict()
|
bibtex = bibtex.get_entry_dict()
|
||||||
except:
|
except:
|
||||||
|
Loading…
Reference in New Issue
Block a user