-
Notifications
You must be signed in to change notification settings - Fork 0
/
bulk_import_playground.py
60 lines (51 loc) · 2 KB
/
bulk_import_playground.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from util import *
from bibdb import *
import bibtexparser
review = Review.select().where(Review.name == 'General Visualization Reading').get()
path = 'C:/Users/Nels/SkyDrive/Reading/Vis/'
bib = path + 'bibliography.bib'
with open(bib) as f:
parsed_bib = bibtexparser.loads(f.read())
with_files = [e for e in parsed_bib.entries if e.has_key('file')]
for e in with_files:
e['file'] = e['file'].replace('OneDrive','C:/Users/Nels/SkyDrive')
e['file'] = e['file'].replace('\\', '/')
for e in with_files:
try:
contents, md5 = get_binary_file(e['file'])
md5.update(review.name.encode('utf-8'))
file_digest = md5.hexdigest()
file_name = file_digest+'.pdf'
with open(DOCS_ROOT+'/'+file_name,'wb') as f:
f.write(contents)
b = bibtexparser.bibdatabase.BibDatabase()
b.entries = [e]
cite = bibtexparser.dumps(b)
d = Document(md5=file_digest, name=e['title'], bib=cite.strip(' \t\n\r'), notes="", review=review)
d.save(force_insert=True)
except:
print('Missing file, or something')
@db.atomic()
def normalize_keyword_delimitter():
for d in review.documents:
bib = bibtexparser.loads(d.bib)
if bib.entries[0].has_key('keyword'):
bib.entries[0]['keyword'] = bib.entries[0]['keyword'].replace(';',',')
d.bib = bibtexparser.dumps(bib)
d.save()
@db.atomic()
def normalize_keyword_case():
for d in review.documents:
bib = bibtexparser.loads(d.bib)
if bib.entries[0].has_key('keyword'):
bib.entries[0]['keyword'] = bib.entries[0]['keyword'].lower()
d.bib = bibtexparser.dumps(bib)
d.save()
@db.atomic()
def normalize_keyword_visualization():
for d in review.documents:
bib = bibtexparser.loads(d.bib)
if bib.entries[0].has_key('keyword'):
bib.entries[0]['keyword'] = bib.entries[0]['keyword'].replace('visualis','visualiz')
d.bib = bibtexparser.dumps(bib)
d.save()