mirror of
https://github.com/pawelmalak/flame.git
synced 2025-07-27 14:59:37 +02:00
Added promise to saveCategories.
This commit is contained in:
parent
1aedb87bf4
commit
60a8ead973
3 changed files with 40 additions and 27 deletions
|
@ -52,7 +52,7 @@ export const FileButton = (props: Props): JSX.Element => {
|
||||||
ref={imageRef}
|
ref={imageRef}
|
||||||
type="file"
|
type="file"
|
||||||
style={{ display: 'none' }}
|
style={{ display: 'none' }}
|
||||||
accept="image/*"
|
accept=".html"
|
||||||
onChange={handleChange}
|
onChange={handleChange}
|
||||||
/>
|
/>
|
||||||
{body}
|
{body}
|
||||||
|
|
|
@ -140,7 +140,6 @@ export const importBookmark =
|
||||||
type: ActionType.importBookmark,
|
type: ActionType.importBookmark,
|
||||||
payload: res.data.data,
|
payload: res.data.data,
|
||||||
});
|
});
|
||||||
dispatch<any>(sortBookmarks(res.data.data.categoryId));
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
const parse = require('node-bookmarks-parser');
|
const parse = require('node-bookmarks-parser');
|
||||||
var sqlite3 = require('sqlite3').verbose();
|
var sqlite3 = require('sqlite3');
|
||||||
const File = require('./File');
|
const File = require('./File');
|
||||||
const databaseFilePath = 'data/db.sqlite';
|
const databaseFilePath = 'data/db.sqlite';
|
||||||
|
|
||||||
|
@ -41,35 +41,46 @@ function saveBookmarks() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveCategories() {
|
function saveCategories() {
|
||||||
let db = new sqlite3.Database(databaseFilePath);
|
return new Promise((resolve, reject) => {
|
||||||
let uniqueCats = [...new Set(bookmarks.map((r) => r.category))];
|
let db = new sqlite3.Database(databaseFilePath);
|
||||||
const importDate = new Date().toString();
|
let uniqueCats = [...new Set(bookmarks.map((r) => r.category))];
|
||||||
|
const importDate = new Date().toString();
|
||||||
|
|
||||||
db.serialize(() => {
|
let tasks = {};
|
||||||
db.all(`SELECT * FROM categories`, (err, data) => {
|
|
||||||
if (err) {
|
|
||||||
console.error(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const newCaterory of uniqueCats) {
|
db.serialize(() => {
|
||||||
for (const category of data) {
|
db.all(`SELECT * FROM categories`, (err, data) => {
|
||||||
if (category.name.toLowerCase() === newCaterory.toLowerCase()) {
|
if (err) {
|
||||||
continue;
|
console.error(err);
|
||||||
}
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let stmt = db.prepare(
|
for (const newCaterory of uniqueCats) {
|
||||||
'INSERT INTO categories (name, createdAt, updatedAt) VALUES(?,?,?)'
|
for (const category of data) {
|
||||||
);
|
if (category.name.toLowerCase() === newCaterory.toLowerCase()) {
|
||||||
stmt.run(newCaterory, importDate, importDate, (err) => {
|
continue;
|
||||||
if (err) {
|
}
|
||||||
console.error(err);
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
stmt.finalize();
|
|
||||||
}
|
|
||||||
|
|
||||||
saveBookmarks();
|
let stmt = db.prepare(
|
||||||
|
'INSERT INTO categories (name, createdAt, updatedAt) VALUES(?,?,?)'
|
||||||
|
);
|
||||||
|
tasks[newCaterory] = false;
|
||||||
|
stmt.run(newCaterory, importDate, importDate, (err) => {
|
||||||
|
tasks[newCaterory] = true;
|
||||||
|
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Object.keys(tasks).every(function(k){ return tasks[k] })){
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
stmt.finalize();
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -99,5 +110,8 @@ module.exports = function importBookmark(path) {
|
||||||
crawlBookmarks(bookmark);
|
crawlBookmarks(bookmark);
|
||||||
}
|
}
|
||||||
|
|
||||||
saveCategories();
|
saveCategories()
|
||||||
|
.then((r) => {
|
||||||
|
saveBookmarks();
|
||||||
|
})
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue