获取favicon触发timer设定一个哨兵
This commit is contained in:
parent
75b4d1d9f1
commit
dce319f283
|
|
@ -719,7 +719,7 @@ db.getBookmarks = function() {
|
||||||
|
|
||||||
db.getBookmarkWaitSnap = function(today) {
|
db.getBookmarkWaitSnap = function(today) {
|
||||||
var todayNotSnap = today + 31;
|
var todayNotSnap = today + 31;
|
||||||
var sql = "SELECT id, url, snap_state, favicon_state FROM `bookmarks` WHERE `snap_state`>=0 AND `snap_state` <= 64 AND snap_state != " + todayNotSnap + " ORDER BY created_at DESC LIMIT 0, 1";
|
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";
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
client.query(sql, (err, result) => {
|
client.query(sql, (err, result) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
@ -733,7 +733,7 @@ db.getBookmarkWaitSnap = function(today) {
|
||||||
|
|
||||||
db.getBookmarkWaitFavicon = function(today) {
|
db.getBookmarkWaitFavicon = function(today) {
|
||||||
var todayNotSnap = today + 31;
|
var todayNotSnap = today + 31;
|
||||||
var sql = "SELECT id, url, snap_state, favicon_state FROM `bookmarks` WHERE `favicon_state`>=0 AND `favicon_state` <= 64 AND favicon_state != " + todayNotSnap + " ORDER BY created_at DESC LIMIT 0, 1";
|
var sql = "SELECT id, url, favicon_state FROM `bookmarks` WHERE `favicon_state`>=0 AND `favicon_state` <= 64 AND favicon_state != " + todayNotSnap + " ORDER BY created_at DESC LIMIT 0, 1";
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
client.query(sql, (err, result) => {
|
client.query(sql, (err, result) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
|
||||||
|
|
@ -930,8 +930,14 @@ api.getSnapByTimer = function() {
|
||||||
|
|
||||||
api.getFaviconByTimer = function() {
|
api.getFaviconByTimer = function() {
|
||||||
console.log('getFaviconByTimer...........');
|
console.log('getFaviconByTimer...........');
|
||||||
var timeout = 3000
|
var timeout = 3000;
|
||||||
|
var busy = false;
|
||||||
setInterval(function() {
|
setInterval(function() {
|
||||||
|
if (busy) {
|
||||||
|
console.log('getFaviconByTimer is busy')
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
busy = true;
|
||||||
var today = new Date().getDate();
|
var today = new Date().getDate();
|
||||||
db.getBookmarkWaitFavicon(today)
|
db.getBookmarkWaitFavicon(today)
|
||||||
.then((bookmarks) => {
|
.then((bookmarks) => {
|
||||||
|
|
@ -944,12 +950,26 @@ api.getFaviconByTimer = function() {
|
||||||
|
|
||||||
if (!/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/.test(url)) {
|
if (!/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/.test(url)) {
|
||||||
copyFile(defaultFile, faviconPath);
|
copyFile(defaultFile, faviconPath);
|
||||||
db.updateBookmarkFaviconState(id, today + 31);
|
db.updateBookmarkFaviconState(id, today + 31)
|
||||||
}else{
|
.then((affectedRows) => {
|
||||||
|
busy = false
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log('updateBookmarkFaviconState err', err);
|
||||||
|
busy = false
|
||||||
|
});
|
||||||
|
} else {
|
||||||
var faviconUrl = "http://g.soz.im/" + url;
|
var faviconUrl = "http://g.soz.im/" + url;
|
||||||
download(faviconUrl).then(data => {
|
download(faviconUrl).then(data => {
|
||||||
fs.writeFileSync(faviconPath, data);
|
fs.writeFileSync(faviconPath, data);
|
||||||
db.updateBookmarkFaviconState(id, -1);
|
db.updateBookmarkFaviconState(id, -1)
|
||||||
|
.then((affectedRows) => {
|
||||||
|
busy = false;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log('updateBookmarkFaviconState err', err);
|
||||||
|
busy = false;
|
||||||
|
});
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
var newFaviconState = -1;
|
var newFaviconState = -1;
|
||||||
console.log("boomarkid = " + id + ", download over", err)
|
console.log("boomarkid = " + id + ", download over", err)
|
||||||
|
|
@ -959,12 +979,22 @@ api.getFaviconByTimer = function() {
|
||||||
newFaviconState = today + 31;
|
newFaviconState = today + 31;
|
||||||
copyFile(defaultFile, faviconPath);
|
copyFile(defaultFile, faviconPath);
|
||||||
}
|
}
|
||||||
db.updateBookmarkFaviconState(id, newFaviconState);
|
db.updateBookmarkFaviconState(id, newFaviconState)
|
||||||
|
.then((affectedRows) => {
|
||||||
|
busy = false;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log('updateBookmarkFaviconState err', err);
|
||||||
|
busy = false;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => console.log('getFaviconByTimer err', err));
|
.catch((err) => {
|
||||||
|
console.log('getFaviconByTimer err', err);
|
||||||
|
busy = false;
|
||||||
|
});
|
||||||
}, timeout);
|
}, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -972,7 +1002,7 @@ function md5(str) {
|
||||||
return crypto.createHash('md5').update(str).digest('hex');
|
return crypto.createHash('md5').update(str).digest('hex');
|
||||||
};
|
};
|
||||||
|
|
||||||
function copyFile(sourceFile, destFile){
|
function copyFile(sourceFile, destFile) {
|
||||||
fs.exists(sourceFile, function(exists) {
|
fs.exists(sourceFile, function(exists) {
|
||||||
if (exists) {
|
if (exists) {
|
||||||
var readStream = fs.createReadStream(sourceFile);
|
var readStream = fs.createReadStream(sourceFile);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue