|
14 | 14 | unescape_pattern = re.compile('\\\\([{}%])') |
15 | 15 |
|
16 | 16 | csvwriter = csv.writer(sys.stdout, quoting=csv.QUOTE_ALL) |
17 | | -csvwriter.writerow(["cc_project_author","post_title","cc_project_url", |
18 | | - "cc_project_category","post_date"]) |
| 17 | +column_names = [ |
| 18 | + # old website csv |
| 19 | + "cc_project_author", |
| 20 | + "post_title", |
| 21 | + "cc_project_url", |
| 22 | + "cc_project_category", # always 'papers' |
| 23 | + "post_date", |
| 24 | + # full csv |
| 25 | + "keywords", |
| 26 | + "abstract", |
| 27 | + "cc_author_affiliation", # removed from cc_project_author |
| 28 | + "cc_class", |
| 29 | + "cc_snippet", |
| 30 | + "cc_dataset_used", |
| 31 | + "cc_derived_dataset_about", |
| 32 | + "cc_derived_dataset_used", |
| 33 | + "cc_derived_dataset_cited", |
| 34 | +] |
| 35 | +csvwriter.writerow(column_names) |
19 | 36 |
|
20 | 37 | for bib_id in bibdata.entries: |
21 | 38 | entry = bibdata.entries[bib_id] |
22 | 39 | b = entry.fields |
23 | 40 | authorstr = '' |
24 | | - title = None |
25 | | - year = None |
26 | | - affiliation = '' |
27 | 41 | url = '' |
| 42 | + |
28 | 43 | # try to fill all required fields |
29 | 44 | authors = entry.persons['author'] |
30 | 45 | for author in authors: |
|
41 | 56 | if authorstr != '': |
42 | 57 | authorstr += ' ' |
43 | 58 | authorstr += ' '.join(author.last_names) |
44 | | - if 'year' in b: |
45 | | - year = b['year'] |
46 | | - for f in ['title']: |
47 | | - if f in b: |
48 | | - title = b[f] |
49 | | - break |
50 | 59 | for f in ['URL', 'pdf', 'doi']: |
51 | 60 | if f in b: |
52 | 61 | url = b[f] |
53 | 62 | break |
54 | 63 |
|
| 64 | + year = b.get('year') |
| 65 | + title = b.get('title') |
| 66 | + keywords = b.get('keywords') |
| 67 | + abstract = b.get('abstract') |
| 68 | + cc_author_affiliation = b.get('cc-author-affiliation') |
| 69 | + cc_class = b.get('cc-class') |
| 70 | + cc_snippet = b.get('cc-snippet') |
| 71 | + cc_dataset_used = b.get('cc-dataset-used') |
| 72 | + cc_derived_dataset_about = b.get('cc-derived-dataset-about') |
| 73 | + cc_derived_dataset_used = b.get('cc-derived-dataset-used') |
| 74 | + cc_derived_dataset_cited = b.get('cc-derived-dataset-cited') |
| 75 | + |
55 | 76 | if authorstr == '': |
56 | 77 | sys.stderr.write("No author: {} - {}\n".format(bib_id)) |
57 | 78 | continue |
|
73 | 94 | title = re.sub(clean_pattern, '', title) |
74 | 95 | title = re.sub(unescape_pattern, '\1', title) |
75 | 96 |
|
76 | | - csvwriter.writerow([authorstr, title, url, 'papers', '{}0101Z00:00:00'.format(year)]) |
| 97 | + row = [ |
| 98 | + authorstr, title, url, 'papers', '{}0101Z00:00:00'.format(year), |
| 99 | + keywords, |
| 100 | + abstract, |
| 101 | + cc_author_affiliation, |
| 102 | + cc_class, |
| 103 | + cc_snippet, |
| 104 | + cc_dataset_used, |
| 105 | + cc_derived_dataset_about, |
| 106 | + cc_derived_dataset_used, |
| 107 | + cc_derived_dataset_cited, |
| 108 | + ] |
| 109 | + csvwriter.writerow(row) |
0 commit comments