zotero-lib 1.0.84 → 1.0.85
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/local-db/api.d.ts +6 -0
- package/build/local-db/api.js +57 -0
- package/build/local-db/api.js.map +1 -0
- package/build/local-db/db.d.ts +25 -0
- package/build/local-db/db.js +532 -0
- package/build/local-db/db.js.map +1 -0
- package/build/local-db/saveToFile.d.ts +1 -0
- package/build/local-db/saveToFile.js +8 -0
- package/build/local-db/saveToFile.js.map +1 -0
- package/build/local-db/types.d.ts +21 -0
- package/build/local-db/types.js +3 -0
- package/build/local-db/types.js.map +1 -0
- package/build/utils/formatAsCrossRefXML.d.ts +14 -0
- package/build/utils/formatAsCrossRefXML.js +402 -0
- package/build/utils/formatAsCrossRefXML.js.map +1 -0
- package/build/utils/formatAsXMP.d.ts +8 -0
- package/build/utils/formatAsXMP.js +58 -0
- package/build/utils/formatAsXMP.js.map +1 -0
- package/build/utils/formatAsZenodoJson.d.ts +20 -0
- package/build/utils/formatAsZenodoJson.js +163 -0
- package/build/utils/formatAsZenodoJson.js.map +1 -0
- package/build/utils/index.d.ts +7 -0
- package/build/utils/index.js +70 -0
- package/build/utils/index.js.map +1 -0
- package/build/utils/md5-file.d.ts +13 -0
- package/build/utils/md5-file.js +27 -0
- package/build/utils/md5-file.js.map +1 -0
- package/build/utils/md5-file.test.d.ts +1 -0
- package/build/utils/md5-file.test.js +28 -0
- package/build/utils/md5-file.test.js.map +1 -0
- package/build/utils/newVanityDOI.d.ts +1 -0
- package/build/utils/newVanityDOI.js +23 -0
- package/build/utils/newVanityDOI.js.map +1 -0
- package/build/utils/printJSON.d.ts +1 -0
- package/build/utils/printJSON.js +7 -0
- package/build/utils/printJSON.js.map +1 -0
- package/build/utils/processExtraField.d.ts +1 -0
- package/build/utils/processExtraField.js +69 -0
- package/build/utils/processExtraField.js.map +1 -0
- package/build/utils/sleep.d.ts +1 -0
- package/build/utils/sleep.js +7 -0
- package/build/utils/sleep.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RequestArgs } from './types';
|
|
2
|
+
export declare function fetchCurrentKey(options?: RequestArgs): Promise<any>;
|
|
3
|
+
export declare function fetchGroups(options?: RequestArgs): Promise<any>;
|
|
4
|
+
export declare function fetchGroupData(options?: RequestArgs): Promise<any>;
|
|
5
|
+
export declare function getChangedItemsForGroup(options: any): Promise<any>;
|
|
6
|
+
export declare function fetchItemsByIds(options: any): Promise<any>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchItemsByIds = exports.getChangedItemsForGroup = exports.fetchGroupData = exports.fetchGroups = exports.fetchCurrentKey = void 0;
|
|
4
|
+
const axios = require('axios');
|
|
5
|
+
function getZoteroURL(subpath = '') {
|
|
6
|
+
const BASE_URL = 'https://api.zotero.org';
|
|
7
|
+
if (subpath.trim().length) {
|
|
8
|
+
return `${BASE_URL}/${subpath}`;
|
|
9
|
+
}
|
|
10
|
+
return BASE_URL;
|
|
11
|
+
}
|
|
12
|
+
async function fetchCurrentKey(options = { api_key: '' }) {
|
|
13
|
+
const { api_key } = options;
|
|
14
|
+
const headers = { Authorization: `Bearer ${api_key}` };
|
|
15
|
+
return axios
|
|
16
|
+
.get(getZoteroURL('keys/current'), { headers })
|
|
17
|
+
.then((res) => res.data);
|
|
18
|
+
}
|
|
19
|
+
exports.fetchCurrentKey = fetchCurrentKey;
|
|
20
|
+
async function fetchGroups(options = { api_key: '', user_id: '' }) {
|
|
21
|
+
const { api_key, user_id } = options;
|
|
22
|
+
const headers = { Authorization: `Bearer ${api_key}` };
|
|
23
|
+
return axios
|
|
24
|
+
.get(getZoteroURL(`users/${user_id}/groups/?format=versions`), { headers })
|
|
25
|
+
.then((res) => res.data);
|
|
26
|
+
}
|
|
27
|
+
exports.fetchGroups = fetchGroups;
|
|
28
|
+
async function fetchGroupData(options = { api_key: '', user_id: '' }) {
|
|
29
|
+
const { api_key, group_id } = options;
|
|
30
|
+
const headers = { Authorization: `Bearer ${api_key}` };
|
|
31
|
+
const requestURL = getZoteroURL(`groups/${group_id}`);
|
|
32
|
+
return axios.get(requestURL, { headers }).then((res) => {
|
|
33
|
+
return res.data;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
exports.fetchGroupData = fetchGroupData;
|
|
37
|
+
async function getChangedItemsForGroup(options) {
|
|
38
|
+
const { api_key, group, version = 0 } = options;
|
|
39
|
+
const headers = { Authorization: `Bearer ${api_key}` };
|
|
40
|
+
return axios
|
|
41
|
+
.get(getZoteroURL(`groups/${group}/items?since=${version}&format=versions&includeTrashed=1`), { headers })
|
|
42
|
+
.then((res) => res.data);
|
|
43
|
+
}
|
|
44
|
+
exports.getChangedItemsForGroup = getChangedItemsForGroup;
|
|
45
|
+
const superagent = require('superagent');
|
|
46
|
+
async function fetchItemsByIds(options) {
|
|
47
|
+
const { api_key, group, itemIds } = options;
|
|
48
|
+
const headers = { Authorization: `Bearer ${api_key}` };
|
|
49
|
+
return superagent
|
|
50
|
+
.get(getZoteroURL(`groups/${group}/items/?itemKey=${itemIds}`))
|
|
51
|
+
.set(headers);
|
|
52
|
+
return axios.get(getZoteroURL(`groups/${group}/items/?itemKey=${itemIds}`), {
|
|
53
|
+
headers,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
exports.fetchItemsByIds = fetchItemsByIds;
|
|
57
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/local-db/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare function initDB(dbName: any): any;
|
|
2
|
+
export declare function createDBConnection(database: any): any;
|
|
3
|
+
export declare function getAllGroups(): Promise<any>;
|
|
4
|
+
export declare function saveGroup(groupData: any): Promise<void>;
|
|
5
|
+
export declare function createGroup(groupData: any): Promise<unknown>;
|
|
6
|
+
export declare function updateGroup(groupData: any): Promise<unknown>;
|
|
7
|
+
export declare function getAllCollections({ database }: {
|
|
8
|
+
database: any;
|
|
9
|
+
}): Promise<unknown>;
|
|
10
|
+
export declare function test(allFetchedItems: any, lastModifiedVersion: any, groupId: any): Promise<void>;
|
|
11
|
+
export declare function saveZoteroItems({ allFetchedItems, database, lastModifiedVersion, }: {
|
|
12
|
+
allFetchedItems: any;
|
|
13
|
+
database: any;
|
|
14
|
+
lastModifiedVersion: any;
|
|
15
|
+
}): Promise<unknown>;
|
|
16
|
+
export declare function fetchAllItems({ database, filters, }: {
|
|
17
|
+
database: string;
|
|
18
|
+
filters?: {
|
|
19
|
+
keys: Array<string>;
|
|
20
|
+
errors: boolean;
|
|
21
|
+
};
|
|
22
|
+
}): Promise<Array<{
|
|
23
|
+
id: string;
|
|
24
|
+
data: string;
|
|
25
|
+
}>>;
|
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchAllItems = exports.saveZoteroItems = exports.test = exports.getAllCollections = exports.updateGroup = exports.createGroup = exports.saveGroup = exports.getAllGroups = exports.createDBConnection = exports.initDB = void 0;
|
|
4
|
+
const { PrismaClient } = require('@prisma/client');
|
|
5
|
+
const prisma = new PrismaClient();
|
|
6
|
+
const sqlite3 = require('sqlite3').verbose();
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
function initDB(dbName) {
|
|
9
|
+
let db = new sqlite3.Database(dbName);
|
|
10
|
+
db.exec(`CREATE TABLE IF NOT EXISTS groups (
|
|
11
|
+
id INT PRIMARY KEY NOT NULL,
|
|
12
|
+
version INT,
|
|
13
|
+
itemsVersion INT,
|
|
14
|
+
data TEXT,
|
|
15
|
+
createdAt TEXT NOT NULL,
|
|
16
|
+
updatedAt TEXT NOT NULL
|
|
17
|
+
);`);
|
|
18
|
+
db.exec(`CREATE TABLE IF NOT EXISTS collections (
|
|
19
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
20
|
+
createdAt TEXT NOT NULL,
|
|
21
|
+
updatedAt TEXT NOT NULL
|
|
22
|
+
);`);
|
|
23
|
+
db.exec(`CREATE TABLE IF NOT EXISTS items (
|
|
24
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
25
|
+
version INT,
|
|
26
|
+
synced BOOLEAN,
|
|
27
|
+
data TEXT,
|
|
28
|
+
inconsistent BOOLEAN,
|
|
29
|
+
group_id INT ,
|
|
30
|
+
createdAt TEXT NOT NULL,
|
|
31
|
+
updatedAt TEXT NOT NULL,
|
|
32
|
+
FOREIGN KEY(group_id) REFERENCES groups(id)
|
|
33
|
+
);`);
|
|
34
|
+
db.exec(`CREATE TABLE IF NOT EXISTS item_Collection (
|
|
35
|
+
item_id TEXT NOT NULL,
|
|
36
|
+
collection_id TEXT NOT NULL,
|
|
37
|
+
createdAt TEXT NOT NULL,
|
|
38
|
+
updatedAt TEXT NOT NULL,
|
|
39
|
+
FOREIGN KEY(collection_id) REFERENCES collections(id),
|
|
40
|
+
FOREIGN KEY(item_id) REFERENCES items(id)
|
|
41
|
+
);`);
|
|
42
|
+
db.exec(`CREATE TABLE IF NOT EXISTS alsoKnownAs (
|
|
43
|
+
item_id TEXT NOT NULL,
|
|
44
|
+
group_id INT NOT NULL,
|
|
45
|
+
alsoKnownAs TEXT NOT NULL,
|
|
46
|
+
createdAt TEXT NOT NULL,
|
|
47
|
+
updatedAt TEXT NOT NULL,
|
|
48
|
+
FOREIGN KEY(item_id) REFERENCES items(id),
|
|
49
|
+
FOREIGN KEY(group_id) REFERENCES groups(id)
|
|
50
|
+
);`);
|
|
51
|
+
return db;
|
|
52
|
+
}
|
|
53
|
+
exports.initDB = initDB;
|
|
54
|
+
function createDBConnection(database) {
|
|
55
|
+
//TODO: if database is not string, it means it could be an initilized connection? so just use it? we need to make this check more rigours, it will execute even if database is not string but also not a valid conection
|
|
56
|
+
if (typeof database !== 'string') {
|
|
57
|
+
console.log('connection already opened');
|
|
58
|
+
return database;
|
|
59
|
+
}
|
|
60
|
+
if (!fs.existsSync(database)) {
|
|
61
|
+
return initDB(database);
|
|
62
|
+
}
|
|
63
|
+
return new sqlite3.Database(database);
|
|
64
|
+
}
|
|
65
|
+
exports.createDBConnection = createDBConnection;
|
|
66
|
+
async function getAllGroups() {
|
|
67
|
+
const groups = await prisma.groups.findMany();
|
|
68
|
+
//await saveGroup();
|
|
69
|
+
return groups;
|
|
70
|
+
}
|
|
71
|
+
exports.getAllGroups = getAllGroups;
|
|
72
|
+
5;
|
|
73
|
+
async function saveGroup(groupData) {
|
|
74
|
+
const groups = await prisma.groups.findMany();
|
|
75
|
+
const groupIds = groups.map((group) => group.id);
|
|
76
|
+
for (const group of groupData) {
|
|
77
|
+
const { id, version } = group;
|
|
78
|
+
if (groupIds.includes(id)) {
|
|
79
|
+
await prisma.groups.update({
|
|
80
|
+
where: {
|
|
81
|
+
id: id,
|
|
82
|
+
},
|
|
83
|
+
data: {
|
|
84
|
+
version: parseInt(version),
|
|
85
|
+
updatedAt: new Date(),
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
await prisma.groups.create({
|
|
91
|
+
data: {
|
|
92
|
+
id: id,
|
|
93
|
+
version: parseInt(version),
|
|
94
|
+
itemsVersion: 0,
|
|
95
|
+
createdAt: new Date(),
|
|
96
|
+
updatedAt: new Date(),
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// if (group) {
|
|
102
|
+
// await prisma.groups.update({
|
|
103
|
+
// where: {
|
|
104
|
+
// id: groupData.id,
|
|
105
|
+
// },
|
|
106
|
+
// data: {
|
|
107
|
+
// version: parseInt(groupData.version),
|
|
108
|
+
// updatedAt: new Date(),
|
|
109
|
+
// },
|
|
110
|
+
// });
|
|
111
|
+
// } else {
|
|
112
|
+
// await prisma.groups.create({
|
|
113
|
+
// data: {
|
|
114
|
+
// id: groupData.id,
|
|
115
|
+
// version: parseInt(groupData.version),
|
|
116
|
+
// itemsVersion: 0,
|
|
117
|
+
// createdAt: new Date(),
|
|
118
|
+
// updatedAt: new Date(),
|
|
119
|
+
// },
|
|
120
|
+
// });
|
|
121
|
+
// }
|
|
122
|
+
}
|
|
123
|
+
exports.saveGroup = saveGroup;
|
|
124
|
+
async function createGroup(groupData) {
|
|
125
|
+
const { database, group } = groupData;
|
|
126
|
+
return new Promise((res, rej) => {
|
|
127
|
+
const db = createDBConnection(database);
|
|
128
|
+
db.run(`INSERT into groups (id,version,data,createdAt,updatedAt) VALUES ($id, $version, $data, datetime('now'), datetime('now'))`, {
|
|
129
|
+
$id: group.id,
|
|
130
|
+
$version: group.version,
|
|
131
|
+
$data: JSON.stringify(group),
|
|
132
|
+
}, (err, row) => {
|
|
133
|
+
if (err) {
|
|
134
|
+
rej(err);
|
|
135
|
+
db.close();
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
res(row);
|
|
139
|
+
db.close();
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
exports.createGroup = createGroup;
|
|
144
|
+
async function updateGroup(groupData) {
|
|
145
|
+
const { database, group } = groupData;
|
|
146
|
+
return new Promise((res, rej) => {
|
|
147
|
+
const db = createDBConnection(database);
|
|
148
|
+
db.run(`UPDATE groups SET version=$version, data=$data, updatedAt=datetime('now') WHERE id=$id`, {
|
|
149
|
+
$id: group.id,
|
|
150
|
+
$version: group.version,
|
|
151
|
+
$data: JSON.stringify(group),
|
|
152
|
+
}, (err, row) => {
|
|
153
|
+
if (err) {
|
|
154
|
+
rej(err);
|
|
155
|
+
db.close();
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
res(row);
|
|
159
|
+
db.close();
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
exports.updateGroup = updateGroup;
|
|
164
|
+
// get all collections
|
|
165
|
+
function getAllCollections({ database }) {
|
|
166
|
+
const db = createDBConnection(database);
|
|
167
|
+
const sql = 'SELECT * FROM collections';
|
|
168
|
+
return new Promise((resolve, reject) => {
|
|
169
|
+
db.all(sql, (err, rows) => {
|
|
170
|
+
if (err) {
|
|
171
|
+
reject(err);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
resolve(rows);
|
|
175
|
+
}
|
|
176
|
+
db.close();
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
exports.getAllCollections = getAllCollections;
|
|
181
|
+
// get alsoKnownAs for a group and item
|
|
182
|
+
async function test(allFetchedItems, lastModifiedVersion, groupId) {
|
|
183
|
+
const allItems = await prisma.items.findMany({
|
|
184
|
+
where: {
|
|
185
|
+
group_id: parseInt(groupId),
|
|
186
|
+
},
|
|
187
|
+
});
|
|
188
|
+
const allItemsIds = allItems.map((item) => item.id);
|
|
189
|
+
const allCollections = await prisma.collections.findMany();
|
|
190
|
+
const allCollectionsIds = allCollections.map((collection) => collection.id);
|
|
191
|
+
const alsoKnownAs = await prisma.alsoKnownAs.findMany();
|
|
192
|
+
const allGroups = await prisma.groups.findMany();
|
|
193
|
+
const allGroupsIds = allGroups.map((group) => group.id);
|
|
194
|
+
Object.entries(lastModifiedVersion).forEach(async ([group]) => {
|
|
195
|
+
if (!allGroupsIds.includes(parseInt(group))) {
|
|
196
|
+
await prisma.groups.create({
|
|
197
|
+
data: {
|
|
198
|
+
id: parseInt(group),
|
|
199
|
+
version: 0,
|
|
200
|
+
itemsVersion: 0,
|
|
201
|
+
createdAt: new Date(),
|
|
202
|
+
updatedAt: new Date(),
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
for await (const items of allFetchedItems) {
|
|
208
|
+
for await (const item of items) {
|
|
209
|
+
console.log(item.data.deleted);
|
|
210
|
+
if (!allItemsIds.includes(item.key)) {
|
|
211
|
+
await prisma.items.create({
|
|
212
|
+
data: {
|
|
213
|
+
id: item.key,
|
|
214
|
+
version: item.version,
|
|
215
|
+
data: item,
|
|
216
|
+
inconsistent: item.inconsistent,
|
|
217
|
+
group_id: item.library.id,
|
|
218
|
+
createdAt: new Date(),
|
|
219
|
+
updatedAt: new Date(),
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
// else if (allItemsIds.includes(item.key) && item.data.deleted==1)
|
|
224
|
+
// {
|
|
225
|
+
// await prisma.items.delete({
|
|
226
|
+
// where: {
|
|
227
|
+
// id: item.key,
|
|
228
|
+
// },
|
|
229
|
+
// });
|
|
230
|
+
// let alsoknownas = await prisma.alsoKnownAs.findMany({
|
|
231
|
+
// where: {
|
|
232
|
+
// data:{
|
|
233
|
+
// constains: item.key
|
|
234
|
+
// }
|
|
235
|
+
// },
|
|
236
|
+
// });
|
|
237
|
+
// // remove this item from alsoKnownAs and keep the rest
|
|
238
|
+
// alsoknownas.forEach(async (also) => {
|
|
239
|
+
// let data = also.data;
|
|
240
|
+
// let index = data.indexOf(item.key);
|
|
241
|
+
// if (index > -1) {
|
|
242
|
+
// // delete 8 letters from the array after the index and 8 letters before the index
|
|
243
|
+
// data.splice(index, 8);
|
|
244
|
+
// data.splice(index-8, 8);
|
|
245
|
+
// }
|
|
246
|
+
// await prisma.alsoKnownAs.update({
|
|
247
|
+
// where: {
|
|
248
|
+
// id: also.id,
|
|
249
|
+
// },
|
|
250
|
+
// data: {
|
|
251
|
+
// data: data,
|
|
252
|
+
// },
|
|
253
|
+
// });
|
|
254
|
+
// }
|
|
255
|
+
// );
|
|
256
|
+
// }
|
|
257
|
+
else {
|
|
258
|
+
await prisma.items.update({
|
|
259
|
+
where: {
|
|
260
|
+
id: item.key,
|
|
261
|
+
},
|
|
262
|
+
data: {
|
|
263
|
+
version: item.version,
|
|
264
|
+
data: item,
|
|
265
|
+
updatedAt: new Date(),
|
|
266
|
+
},
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
if (item.data.collections) {
|
|
270
|
+
for await (const collection of item.data.collections) {
|
|
271
|
+
if (!allCollectionsIds.includes(collection)) {
|
|
272
|
+
await prisma.collections.create({
|
|
273
|
+
data: {
|
|
274
|
+
id: collection,
|
|
275
|
+
createdAt: new Date(),
|
|
276
|
+
updatedAt: new Date(),
|
|
277
|
+
},
|
|
278
|
+
});
|
|
279
|
+
await prisma.collection_items.create({
|
|
280
|
+
data: {
|
|
281
|
+
item_id: item.key,
|
|
282
|
+
collection_id: collection,
|
|
283
|
+
createdAt: new Date(),
|
|
284
|
+
updatedAt: new Date(),
|
|
285
|
+
},
|
|
286
|
+
});
|
|
287
|
+
allCollectionsIds.push(collection);
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
await prisma.collections.update({
|
|
291
|
+
where: {
|
|
292
|
+
id: collection,
|
|
293
|
+
},
|
|
294
|
+
data: {
|
|
295
|
+
updatedAt: new Date(),
|
|
296
|
+
},
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
if (item.data.extra) {
|
|
302
|
+
if (alsoKnownAs.some((i) => i.item_id === item.key && i.group_id === item.library.id)) {
|
|
303
|
+
await prisma.alsoKnownAs.updateMany({
|
|
304
|
+
where: {
|
|
305
|
+
item_id: item.key,
|
|
306
|
+
group_id: item.library.id,
|
|
307
|
+
},
|
|
308
|
+
data: {
|
|
309
|
+
data: item.data.extra,
|
|
310
|
+
updatedAt: new Date(),
|
|
311
|
+
},
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
await prisma.alsoKnownAs.create({
|
|
316
|
+
data: {
|
|
317
|
+
item_id: item.key,
|
|
318
|
+
group_id: item.library.id,
|
|
319
|
+
data: item.data.extra,
|
|
320
|
+
createdAt: new Date(),
|
|
321
|
+
updatedAt: new Date(),
|
|
322
|
+
},
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
Object.entries(lastModifiedVersion).forEach(async ([group, version]) => {
|
|
329
|
+
await prisma.groups.update({
|
|
330
|
+
where: {
|
|
331
|
+
id: parseInt(group),
|
|
332
|
+
},
|
|
333
|
+
data: {
|
|
334
|
+
itemsVersion: parseInt(version.toString()),
|
|
335
|
+
updatedAt: new Date(),
|
|
336
|
+
},
|
|
337
|
+
});
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
exports.test = test;
|
|
341
|
+
function saveZoteroItems({ allFetchedItems, database, lastModifiedVersion, }) {
|
|
342
|
+
//batch inserts
|
|
343
|
+
// batch updates
|
|
344
|
+
//fetch all keys from db first to see which items need to be created/updated
|
|
345
|
+
// write one big query to insert and update all items at once
|
|
346
|
+
console.log('test');
|
|
347
|
+
return new Promise(async (resolve, reject) => {
|
|
348
|
+
// get all items from prisma
|
|
349
|
+
//const allItems = await prisma.items.findMany();
|
|
350
|
+
// await db.all('SELECT * from items', async (err, rows) => {
|
|
351
|
+
// if (err) {
|
|
352
|
+
// return reject(err);
|
|
353
|
+
// }
|
|
354
|
+
// // get only value of id
|
|
355
|
+
// const dbItems = rows.map((row) => row.id);
|
|
356
|
+
// // get all id of collections
|
|
357
|
+
// const allCollections = await getAllCollections({ database });
|
|
358
|
+
// //@ts-ignore
|
|
359
|
+
// const allCollectionsIds = allCollections.map(
|
|
360
|
+
// (collection) => collection.id,
|
|
361
|
+
// );
|
|
362
|
+
// // console.log('allCollectionsIds', allCollectionsIds.length);
|
|
363
|
+
// // console.log('dbItems', dbItems.length);
|
|
364
|
+
// // const existingItemIdsMap = rows.reduce(
|
|
365
|
+
// // (a, c) => ({ ...a, [c.id]: c }),
|
|
366
|
+
// // {},
|
|
367
|
+
// // );
|
|
368
|
+
// // const existingCollectionIdsMap = rows.reduce(
|
|
369
|
+
// // (a, c) => ({ ...a, [c.id]: c }),
|
|
370
|
+
// // {},
|
|
371
|
+
// // );
|
|
372
|
+
// let collections = [];
|
|
373
|
+
// const insertSql = `INSERT into items (id,version,data,inconsistent,createdAt,updatedAt, group_id ) VALUES ($id, $version, $data, $inconsistent, datetime('now'), datetime('now'), $group_id)`;
|
|
374
|
+
// const updateSql = `UPDATE items SET version=$version, data=$data, inconsistent=$inconsistent, updatedAt=datetime('now') WHERE id=$id`;
|
|
375
|
+
// const itemsLastVersionSql = `UPDATE groups SET itemsVersion=$version, updatedAt=datetime('now') WHERE id=$id`;
|
|
376
|
+
// const insertCollectionSql = `INSERT into collections (id,createdAt,updatedAt) VALUES ($id, datetime('now'), datetime('now'))`;
|
|
377
|
+
// const insertItemCollectionSql = `INSERT into item_Collection (item_id,collection_id,createdAt,updatedAt) VALUES ($item_id, $collection_id, datetime('now'), datetime('now'))`;
|
|
378
|
+
// const insertAlsoKnownAsSql = `INSERT into alsoKnownAs (item_id,group_id,alsoKnownAs,createdAt,updatedAt) VALUES ($item_id, $group_id, $alsoKnownAs, datetime('now'), datetime('now'))`;
|
|
379
|
+
// await db.serialize(async function () {
|
|
380
|
+
// await db.run('BEGIN');
|
|
381
|
+
// let createStmt = await db.prepare(insertSql);
|
|
382
|
+
// let updateStmt = await db.prepare(updateSql);
|
|
383
|
+
// let itemsLastVersionUpdateStmt = await db.prepare(itemsLastVersionSql);
|
|
384
|
+
// let insertCollectionStmt = await db.prepare(insertCollectionSql);
|
|
385
|
+
// let insertItemCollectionStmt = await db.prepare(
|
|
386
|
+
// insertItemCollectionSql,
|
|
387
|
+
// );
|
|
388
|
+
// let insertAlsoKnownAsStmt = await db.prepare(insertAlsoKnownAsSql);
|
|
389
|
+
// await allFetchedItems.forEach(async (groupItems) => {
|
|
390
|
+
// await Promise.resolve(groupItems).then(async (items) => {
|
|
391
|
+
// items.forEach(async (item) => {
|
|
392
|
+
// await Promise.resolve(item).then(async (i) => {
|
|
393
|
+
// if (i.data.collections) {
|
|
394
|
+
// i.data.collections.forEach(async (collection) => {
|
|
395
|
+
// //console.log('collections', collection);
|
|
396
|
+
// if (
|
|
397
|
+
// !allCollectionsIds.includes(collection) &&
|
|
398
|
+
// !collections.includes(collection) &&
|
|
399
|
+
// collection
|
|
400
|
+
// ) {
|
|
401
|
+
// // console.log(
|
|
402
|
+
// // 'condtion',
|
|
403
|
+
// // !existingCollectionIdsMap[collection],
|
|
404
|
+
// // !collections.includes(collection),
|
|
405
|
+
// // collection,
|
|
406
|
+
// // );
|
|
407
|
+
// collections.push(collection);
|
|
408
|
+
// await insertCollectionStmt.run({
|
|
409
|
+
// $id: collection,
|
|
410
|
+
// });
|
|
411
|
+
// }
|
|
412
|
+
// });
|
|
413
|
+
// }
|
|
414
|
+
// // create or update item and check if it has a collection
|
|
415
|
+
// if (!dbItems.includes(i.key)) {
|
|
416
|
+
// await createStmt.run({
|
|
417
|
+
// $id: i.key,
|
|
418
|
+
// $version: i.version,
|
|
419
|
+
// $data: JSON.stringify(i.data),
|
|
420
|
+
// $inconsistent: i.inconsistent,
|
|
421
|
+
// $group_id: i.library.id,
|
|
422
|
+
// });
|
|
423
|
+
// if (i.data.extra) {
|
|
424
|
+
// await insertAlsoKnownAsStmt.run({
|
|
425
|
+
// $item_id: i.key,
|
|
426
|
+
// $group_id: i.library.id,
|
|
427
|
+
// $alsoKnownAs: JSON.stringify(i.data.extra),
|
|
428
|
+
// });
|
|
429
|
+
// }
|
|
430
|
+
// }
|
|
431
|
+
// if (dbItems.includes(i.key)) {
|
|
432
|
+
// await updateStmt.run({
|
|
433
|
+
// $id: i.key,
|
|
434
|
+
// $version: i.version,
|
|
435
|
+
// $data: JSON.stringify(i.data),
|
|
436
|
+
// $inconsistent: i.inconsistent,
|
|
437
|
+
// });
|
|
438
|
+
// }
|
|
439
|
+
// // check if item has a collection
|
|
440
|
+
// if (i.data.collections) {
|
|
441
|
+
// i.data.collections.forEach(async (collection) => {
|
|
442
|
+
// if (collection) {
|
|
443
|
+
// // console.log(' item', i.key, 'collection', collection);
|
|
444
|
+
// await insertItemCollectionStmt.run({
|
|
445
|
+
// $item_id: i.key,
|
|
446
|
+
// $collection_id: collection,
|
|
447
|
+
// });
|
|
448
|
+
// }
|
|
449
|
+
// });
|
|
450
|
+
// }
|
|
451
|
+
// });
|
|
452
|
+
// // const existingItem = existingItemIdsMap[item.key];
|
|
453
|
+
// // if (existingItem) {
|
|
454
|
+
// // updateStmt.run({
|
|
455
|
+
// // $id: item.key,
|
|
456
|
+
// // $version: item.version,
|
|
457
|
+
// // $data: JSON.stringify(item),
|
|
458
|
+
// // $inconsistent: false,
|
|
459
|
+
// // });
|
|
460
|
+
// // } else {
|
|
461
|
+
// // createStmt.run({
|
|
462
|
+
// // $id: item.key,
|
|
463
|
+
// // $version: item.version,
|
|
464
|
+
// // $data: JSON.stringify(item),
|
|
465
|
+
// // $inconsistent: false,
|
|
466
|
+
// // });
|
|
467
|
+
// // }
|
|
468
|
+
// });
|
|
469
|
+
// // get key and value from last modified item and update group
|
|
470
|
+
// // await itemsLastVersionUpdateStmt.run({
|
|
471
|
+
// // $id: groupItems.groupId,
|
|
472
|
+
// // $version: lastModifiedVersion,
|
|
473
|
+
// // });
|
|
474
|
+
// });
|
|
475
|
+
// // groupItems.forEach((item) => {
|
|
476
|
+
// // if (item.key in existingItemIdsMap) {
|
|
477
|
+
// // // console.log('updating: ', item.key);
|
|
478
|
+
// // updateStmt.run({
|
|
479
|
+
// // $id: item.key,
|
|
480
|
+
// // $version: item.version,
|
|
481
|
+
// // $inconsistent: item.inconsistent,
|
|
482
|
+
// // $data: JSON.stringify(item),
|
|
483
|
+
// // });
|
|
484
|
+
// // } else {
|
|
485
|
+
// // // console.log('creating: ', item.key);
|
|
486
|
+
// // createStmt.run({
|
|
487
|
+
// // $id: item.key,
|
|
488
|
+
// // $inconsistent: item.inconsistent,
|
|
489
|
+
// // $version: item.version,
|
|
490
|
+
// // $data: JSON.stringify(item),
|
|
491
|
+
// // });
|
|
492
|
+
// // }
|
|
493
|
+
// // });
|
|
494
|
+
// });
|
|
495
|
+
// console.log(lastModifiedVersion);
|
|
496
|
+
// await Object.entries(lastModifiedVersion).forEach(
|
|
497
|
+
// ([group, version]) => {
|
|
498
|
+
// itemsLastVersionUpdateStmt.run({ $id: group, $version: version });
|
|
499
|
+
// },
|
|
500
|
+
// );
|
|
501
|
+
// await Object.entries(lastModifiedVersion).forEach(([group, version]) =>
|
|
502
|
+
// console.log('group', group, 'version', version),
|
|
503
|
+
// );
|
|
504
|
+
// await createStmt.finalize();
|
|
505
|
+
// await updateStmt.finalize();
|
|
506
|
+
// await insertCollectionStmt.finalize();
|
|
507
|
+
// await insertItemCollectionStmt.finalize();
|
|
508
|
+
// await insertAlsoKnownAsStmt.finalize();
|
|
509
|
+
// await itemsLastVersionUpdateStmt.finalize();
|
|
510
|
+
// try {
|
|
511
|
+
// await db.run('COMMIT', () => {
|
|
512
|
+
// db.close();
|
|
513
|
+
// resolve(true);
|
|
514
|
+
// });
|
|
515
|
+
// } catch (error) {
|
|
516
|
+
// console.log('error', error);
|
|
517
|
+
// }
|
|
518
|
+
// // sleep for 1 second
|
|
519
|
+
// await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
520
|
+
// });
|
|
521
|
+
// });
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
exports.saveZoteroItems = saveZoteroItems;
|
|
525
|
+
async function fetchAllItems({ database, filters, }) {
|
|
526
|
+
// get all items count from database
|
|
527
|
+
const allItemsCount = await prisma.items.count();
|
|
528
|
+
console.log('total items found', allItemsCount);
|
|
529
|
+
return undefined;
|
|
530
|
+
}
|
|
531
|
+
exports.fetchAllItems = fetchAllItems;
|
|
532
|
+
//# sourceMappingURL=db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/local-db/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function saveToFile(name: any, data: any): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saveToFile.js","sourceRoot":"","sources":["../../src/local-db/saveToFile.ts"],"names":[],"mappings":";;AAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzB,SAAwB,UAAU,CAAC,IAAI,EAAE,IAAI;IAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AAFD,6BAEC"}
|