Fix filter by visits
This commit is contained in:
parent
4c6721aabb
commit
b19389776d
1 changed files with 19 additions and 10 deletions
29
extension/background.js
Normal file → Executable file
29
extension/background.js
Normal file → Executable file
|
@ -1,20 +1,29 @@
|
||||||
/* global defaultValues */
|
/* global defaultValues */
|
||||||
|
|
||||||
|
// brute force history items with visitCount or less visits
|
||||||
async function filterByVisits(visitCount, end) {
|
async function filterByVisits(visitCount, end) {
|
||||||
// brute force history items with visitCount or less visits
|
let start = 0;
|
||||||
let search = 1000;
|
|
||||||
let history = await browser.history.search({text: "", maxResults: search, startTime: 0, endTime: end});
|
let totalHistory = [];
|
||||||
while (search < history.length) {
|
|
||||||
search += 1000;
|
let history = await browser.history.search({
|
||||||
history = await browser.history.search({text: "", maxResults: search, startTime: 0, endTime: end});
|
text: "",
|
||||||
|
startTime: start,
|
||||||
|
endTime: end,
|
||||||
|
maxResults: 1
|
||||||
|
});
|
||||||
|
while (history.length > 0) {
|
||||||
|
totalHistory = totalHistory.concat(history);
|
||||||
|
start = history[history.length - 1].lastVisitTime + 1;
|
||||||
|
history = await browser.history.search({text: "", startTime: start, endTime: end, maxResults: 1});
|
||||||
}
|
}
|
||||||
return history.filter(item => item.visitCount <= visitCount);
|
return totalHistory.filter(item => item.visitCount <= visitCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function deleteByVisits(visitCount, end) {
|
async function deleteByVisits(visitCount, end) {
|
||||||
let history = await filterByVisits(visitCount, end);
|
let history = await filterByVisits(visitCount, end);
|
||||||
for (let item of history) {
|
for (let item of history) {
|
||||||
browser.history.deleteUrl({url: item.url});
|
browser.history.deleteUrl({ url: item.url });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,13 +43,13 @@ async function deleteOlderThan(state) {
|
||||||
if (res.deleteMode === "days") {
|
if (res.deleteMode === "days") {
|
||||||
// delete by range OR visit count and range
|
// delete by range OR visit count and range
|
||||||
if (res.visitCount === 0) {
|
if (res.visitCount === 0) {
|
||||||
browser.history.deleteRange({startTime: 0, endTime: endDate});
|
browser.history.deleteRange({ startTime: 0, endTime: endDate });
|
||||||
} else {
|
} else {
|
||||||
deleteByVisits(res.visitCount, endDate);
|
deleteByVisits(res.visitCount, endDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (res.deleteMode === "visits") {
|
} else if (res.deleteMode === "visits") {
|
||||||
deleteByVisits(res.visitCount, new Date().getTime());
|
deleteByVisits(res.visitCount, Date.now());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue