diff --git a/app.js b/app.js index 120becc..463c2f2 100644 --- a/app.js +++ b/app.js @@ -75,7 +75,7 @@ app.use(function(err, req, res, next) { error: {} }); }); - +api.checkSnapState(); api.getSnapByTimer(); module.exports = app; diff --git a/database/db.js b/database/db.js index a606b3d..fcf53fa 100644 --- a/database/db.js +++ b/database/db.js @@ -561,6 +561,21 @@ db.getTagsBookmarks = function(bookmark_ids) { }); } +db.getBookmarks = function() { + var sql = "SELECT id, snap_state FROM `bookmarks`"; // 如果是空的,那查一个不存在的就行了。 + console.log('getBookmarks', sql); + + return new Promise(function(resolve, reject) { + client.query(sql, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); +} + db.getBookmarkWaitSnap = function(today) { var todayNotSnap = today + 31; var sql = "SELECT id, url, snap_state FROM `bookmarks` WHERE `snap_state`>=0 AND `snap_state` <= 64 AND snap_state != " + todayNotSnap + " ORDER BY created_at DESC LIMIT 0, 1"; diff --git a/routes/api.js b/routes/api.js index da737e8..66a2055 100644 --- a/routes/api.js +++ b/routes/api.js @@ -527,13 +527,13 @@ api.post('/uploadBookmarkFile', upload.single('bookmark'), function(req, res) { var tags = []; item.tags.forEach((tag) => { - allTags.forEach((at) => { - if (at.name == tag) { - tags.push(at.id); - } + allTags.forEach((at) => { + if (at.name == tag) { + tags.push(at.id); + } + }) }) - }) - // 插入书签 + // 插入书签 db.addBookmark(userId, bookmark) // 插入书签 .then((bookmark_id) => { db.delBookmarkTags(bookmark_id); // 不管3721,先删掉旧的分类 @@ -617,6 +617,23 @@ api.post('/getTitle', function(req, response) { }); }) +api.checkSnapState = function() { + db.getBookmarks() + .then((bookmarks) => { + bookmarks.forEach(bookmark => { + var id = bookmark.id; + var snap_state = bookmark.snap_state; + var finePath = './public/images/snap/' + id + '.png' + fs.exists(finePath, function(exists) { + if (!exists && snap_state == -1) { + db.updateBookmarkSnapState(id, 0); + } + }); + }) + }) + .catch((err) => console.log('getBookmarks err', err)); +} + api.getSnapByTimer = function() { console.log('getSnapByTimer...........'); var timeout = 5000