-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathsync_bib_zotero.py
83 lines (52 loc) · 1.24 KB
/
sync_bib_zotero.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# coding: utf-8
# In[96]:
import requests, json, sys
from bib.models import Book
from orea.settings.ksenia_local import Z_USER_ID, Z_COLLECTION, Z_API_KEY
# In[97]:
root = "https://api.zotero.org/users/"
params = "{}/collections/{}/items/top?v=3&key={}".format(
Z_USER_ID, Z_COLLECTION, Z_API_KEY
)
url = root + params + "&sort=dateModified&limit=100"
# In[98]:
try:
r = requests.get(url)
except:
sys.exit("aa! errors!")
# In[86]:
response = r.json()
# In[95]:
failed = []
saved = []
for x in response:
NewBook = Book(
zoterokey=x["data"]["key"],
item_type=x["data"]["itemType"],
author=x["data"]["creators"][0]["name"],
title=x["data"]["title"],
short_title=x["data"]["shortTitle"],
)
try:
NewBook.save()
saved.append(x["data"])
except:
failed.append(x["data"])
print("saved: {} objects \nfailed: {} objects".format(len(saved), len(failed)))
# In[53]:
datalist = response[1]
# In[54]:
type(datalist)
# In[57]:
c = 0
failed = []
saved = []
for row in datalist.items:
print(row)
print("saved: {} objects \n failed: {} objects".format(len(saved), len(failed)))
# In[47]:
failed
# In[37]:
for row in response:
print(row["data"])
# In[ ]: