Добавлена автоотмена проверки обновлений книг по истечении заданного количества дней
This commit is contained in:
@@ -476,7 +476,10 @@ class Reader {
|
||||
this.dualPageMode = settings.dualPageMode;
|
||||
this.userWallpapers = settings.userWallpapers;
|
||||
this.bucEnabled = settings.bucEnabled;
|
||||
this.bucSizeDiff = settings.bucSizeDiff;
|
||||
this.bucSetOnNew = settings.bucSetOnNew;
|
||||
this.bucCancelEnabled = settings.bucCancelEnabled;
|
||||
this.bucCancelDays = settings.bucCancelDays;
|
||||
|
||||
this.readerActionByKeyCode = utils.userHotKeysObjectSwap(settings.userHotKeys);
|
||||
this.$root.readerActionByKeyEvent = (event) => {
|
||||
@@ -604,6 +607,7 @@ class Reader {
|
||||
await utils.sleep(1000);//чтобы не ддосить сервер
|
||||
}
|
||||
|
||||
const checkSetTime = {};
|
||||
//проставим новые размеры у книг
|
||||
for (const book of sorted) {
|
||||
//размер 0 считаем отсутствующим
|
||||
@@ -611,6 +615,40 @@ class Reader {
|
||||
book.bucSize = bucSize[book.url];
|
||||
await bookManager.recentSetItem(book);
|
||||
}
|
||||
|
||||
//подготовка к следующему шагу
|
||||
if (updateUrls.has(book.url)) {
|
||||
let time = checkSetTime[book.key] || 0;
|
||||
if (book.checkBucTime && book.checkBucTime > time) {
|
||||
time = book.checkBucTime;
|
||||
} else if (book.loadTime && book.loadTime > time) {
|
||||
time = book.loadTime;
|
||||
}
|
||||
|
||||
checkSetTime[book.key] = time;
|
||||
}
|
||||
}
|
||||
|
||||
//bucCancelEnabled и bucCancelDays
|
||||
//снимем флаг checkBuc у необновлявшихся bucCancelDays
|
||||
if (this.bucCancelEnabled) {
|
||||
for (const [key, time] of Object.entries(checkSetTime)) {
|
||||
if (time && Date.now() - time > this.bucCancelDays*24*3600*1000) {
|
||||
const book = await bookManager.getRecentBook({key});
|
||||
const needBookUpdate =
|
||||
book.checkBuc
|
||||
&& book.bucSize
|
||||
&& utils.hasProp(book, 'downloadSize')
|
||||
&& book.bucSize !== book.downloadSize
|
||||
&& (book.bucSize - book.downloadSize >= this.bucSizeDiff)
|
||||
;
|
||||
|
||||
if (book && !needBookUpdate) {
|
||||
book.checkBuc = undefined;//!!!
|
||||
await bookManager.recentSetItem(book);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
await this.$refs.recentBooksPage.updateTableData();
|
||||
|
||||
@@ -27,17 +27,7 @@
|
||||
|
||||
<div v-show="configBucEnabled && bucEnabled" class="item row">
|
||||
<div class="label-6"></div>
|
||||
<q-checkbox size="xs" v-model="bucSetOnNew">
|
||||
Автопроверка для вновь загружаемых
|
||||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||||
Автоматически устанавливать флаг проверки<br>
|
||||
обновлений для всех вновь загружаемых книг
|
||||
</q-tooltip>
|
||||
</q-checkbox>
|
||||
</div>
|
||||
|
||||
<div v-show="configBucEnabled && bucEnabled" class="item row">
|
||||
<div class="label-6">Разница размеров</div>
|
||||
<div class="col-5 column justify-center items-end q-pr-xs">Разница размеров</div>
|
||||
<div class="col row">
|
||||
<NumInput class="col-left" v-model="bucSizeDiff" />
|
||||
|
||||
@@ -48,3 +38,39 @@
|
||||
</q-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-show="configBucEnabled && bucEnabled" class="item row">
|
||||
<div class="label-6"></div>
|
||||
<q-checkbox size="xs" v-model="bucSetOnNew">
|
||||
Автопроверка для вновь загружаемых
|
||||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||||
Автоматически устанавливать флаг проверки<br>
|
||||
обновлений для всех вновь загружаемых книг
|
||||
</q-tooltip>
|
||||
</q-checkbox>
|
||||
</div>
|
||||
|
||||
<div v-show="configBucEnabled && bucEnabled" class="item row">
|
||||
<div class="label-6"></div>
|
||||
<q-checkbox size="xs" v-model="bucCancelEnabled">
|
||||
Отменять проверку через {{ bucCancelDays }} дней{{ (bucCancelEnabled ? ':' : '') }}
|
||||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||||
Снимать флаг проверки с книги, если не было<br>
|
||||
обновлений в течение {{ bucCancelDays }} дней
|
||||
</q-tooltip>
|
||||
</q-checkbox>
|
||||
</div>
|
||||
|
||||
<div v-show="configBucEnabled && bucEnabled && bucCancelEnabled" class="item row">
|
||||
<div class="label-6"></div>
|
||||
<div class="col-5"></div>
|
||||
<div class="col row">
|
||||
<NumInput class="col-left" v-model="bucCancelDays" :min="1" :max="10000"/>
|
||||
|
||||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||||
Снимать флаг проверки с книги, если не было<br>
|
||||
обновлений в течение {{ bucCancelDays }} дней
|
||||
</q-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -505,6 +505,8 @@ class BookManager {
|
||||
|
||||
for (const book of updateItems) {
|
||||
book.checkBuc = checkBuc;
|
||||
if (checkBuc)
|
||||
book.checkBucTime = Date.now();
|
||||
await this.recentSetItem(book);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ const settingDefaults = {
|
||||
|
||||
fontShifts: {},
|
||||
showToolButton: {},
|
||||
toolBarHideOnScroll: true,
|
||||
toolBarHideOnScroll: false,
|
||||
userHotKeys: {},
|
||||
userWallpapers: [],
|
||||
|
||||
@@ -196,6 +196,8 @@ const settingDefaults = {
|
||||
bucEnabled: true, // общее включение/выключение проверки обновлений
|
||||
bucSizeDiff: 1, // разница в размерах файла, при которой показывать наличие обновления
|
||||
bucSetOnNew: true, // автоматически включать проверку обновлений для вновь загружаемых файлов
|
||||
bucCancelEnabled: true, // вкл/выкл отмену проверки книг через bucCancelDays
|
||||
bucCancelDays: 60, // количество дней, через которое отменяется проверка книги, при условии отсутствия обновлений за это время
|
||||
|
||||
//для SettingsPage
|
||||
needUpdateSettingsView: 0,
|
||||
|
||||
Reference in New Issue
Block a user