Import updated
* Added djvu support * Nice mask for file renaming TODO : Append to bibtex index + test if file already exists
This commit is contained in:
parent
1420cf37a9
commit
c304eb2578
39
main.py
39
main.py
@ -35,11 +35,17 @@ def replaceAll(text, dic):
|
|||||||
return text
|
return text
|
||||||
|
|
||||||
|
|
||||||
def PDF2Doi(pdf):
|
def findDOI(src):
|
||||||
pdftotext = subprocess.Popen(["pdftotext", pdf, "-"],
|
if src.endswith(".pdf"):
|
||||||
|
totext = subprocess.Popen(["pdftotext", src, "-"],
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.PIPE)
|
stderr=subprocess.PIPE)
|
||||||
extractfull = pdftotext.communicate()
|
elif src.endswith(".djvu"):
|
||||||
|
totext = subprocess.Popen(["djvutxt", src],
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE)
|
||||||
|
|
||||||
|
extractfull = totext.communicate()
|
||||||
if extractfull[1] is not "":
|
if extractfull[1] is not "":
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -98,11 +104,9 @@ def addFile(src):
|
|||||||
"""
|
"""
|
||||||
Add a file to the library
|
Add a file to the library
|
||||||
"""
|
"""
|
||||||
# TODO : Handle books + djvu
|
# TODO : Handle books (ISBN)
|
||||||
if src.endswith(".pdf"):
|
# Check file already exist
|
||||||
doi = PDF2Doi(src)
|
doi = findDOI(src)
|
||||||
elif src.endswith(".djvu"):
|
|
||||||
raise Exception("TODO")
|
|
||||||
|
|
||||||
if doi is False:
|
if doi is False:
|
||||||
print("Could not determine the DOI for "+src+", switching to manual " +
|
print("Could not determine the DOI for "+src+", switching to manual " +
|
||||||
@ -114,17 +118,30 @@ def addFile(src):
|
|||||||
bibtex = doi2Bib(doi).strip().replace(',', ",\n")
|
bibtex = doi2Bib(doi).strip().replace(',', ",\n")
|
||||||
bibtex = StringIO(bibtex)
|
bibtex = StringIO(bibtex)
|
||||||
bibtex = BibTexParser(bibtex).get_entry_dict()
|
bibtex = BibTexParser(bibtex).get_entry_dict()
|
||||||
|
bibtex_name = bibtex.keys()[0]
|
||||||
|
bibtex = bibtex[bibtex_name]
|
||||||
|
|
||||||
# TODO : Rename
|
authors = re.split(' and ', bibtex['author'])
|
||||||
new_name = params.folder+"/"+doi
|
|
||||||
|
|
||||||
bibtex[bibtex.keys()[0]]['file'] = new_name
|
new_name = params.format
|
||||||
|
new_name = new_name.replace("%f", authors[0].split(',')[0].strip())
|
||||||
|
new_name = new_name.replace("%l", authors[-1].split(',')[0].strip())
|
||||||
|
new_name = new_name.replace("%j", bibtex['journal'].replace('.', '')
|
||||||
|
.replace(' ', '_'))
|
||||||
|
new_name = new_name.replace("%Y", bibtex['year'])
|
||||||
|
new_name = new_name.replace("%t", bibtex['title'])
|
||||||
|
new_name = new_name.replace("%a", ', '.join([i.split(',')[0].strip()
|
||||||
|
for i in authors]))
|
||||||
|
|
||||||
|
new_name = params.folder+new_name+src[src.rfind('.'):]
|
||||||
|
bibtex['file'] = new_name
|
||||||
|
|
||||||
try:
|
try:
|
||||||
shutil.copy2(src, new_name)
|
shutil.copy2(src, new_name)
|
||||||
except IOError:
|
except IOError:
|
||||||
sys.exit("Unable to move file to library dir " + params.folder+".")
|
sys.exit("Unable to move file to library dir " + params.folder+".")
|
||||||
|
|
||||||
|
# TODO
|
||||||
bibtexAppend(bibtex)
|
bibtexAppend(bibtex)
|
||||||
print("File " + src + " successfully imported.")
|
print("File " + src + " successfully imported.")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user