Синхронизация recent, пока не оптимизировано
This commit is contained in:
@@ -294,10 +294,13 @@ class Reader extends Vue {
|
||||
this.debouncedUpdateRoute();
|
||||
}
|
||||
|
||||
bookManagerEvent(eventName) {
|
||||
async bookManagerEvent(eventName) {
|
||||
const serverStorage = this.$refs.serverStorage;
|
||||
if (eventName == 'load-meta-finish') {
|
||||
serverStorage.init();
|
||||
const result = await bookManager.cleanRecentBooks();
|
||||
if (result)
|
||||
this.debouncedSaveRecent();
|
||||
}
|
||||
|
||||
if (eventName == 'recent-changed') {
|
||||
@@ -305,8 +308,12 @@ class Reader extends Vue {
|
||||
const oldBook = this.mostRecentBookReactive;
|
||||
const newBook = bookManager.mostRecentBook();
|
||||
|
||||
if (oldBook && newBook && oldBook.key != newBook.key) {
|
||||
if (oldBook && newBook) {
|
||||
if (oldBook.key != newBook.key) {
|
||||
await this.loadBook(newBook);
|
||||
} else if (oldBook.bookPos != newBook.bookPos) {
|
||||
this.bookPosChanged({bookPos: newBook.bookPos});
|
||||
}
|
||||
}
|
||||
|
||||
this.debouncedSaveRecent();
|
||||
|
||||
@@ -403,8 +403,9 @@ class ServerStorage extends Vue {
|
||||
|
||||
if (result.state == 'reject') {
|
||||
await this.loadRecent(true);
|
||||
const newRecent = utils.applyObjDiff(bm.recent, diff);
|
||||
await bm.setRecent(newRecent);
|
||||
//похоже это лишнее
|
||||
/*const newRecent = utils.applyObjDiff(bm.recent, diff);
|
||||
await bm.setRecent(newRecent);*/
|
||||
}
|
||||
|
||||
tries++;
|
||||
|
||||
@@ -99,7 +99,9 @@ class BookManager {
|
||||
}
|
||||
}*/
|
||||
await this.cleanBooks();
|
||||
await this.cleanRecentBooks();
|
||||
|
||||
//очистка позже
|
||||
//await this.cleanRecentBooks();
|
||||
|
||||
this.booksCached = {};
|
||||
for (const key in this.books) {
|
||||
@@ -316,12 +318,17 @@ class BookManager {
|
||||
|
||||
const sorted = this.getSortedRecent();
|
||||
|
||||
let isDel = false;
|
||||
for (let i = 1000; i < sorted.length; i++) {
|
||||
await bmRecentStore.removeItem(sorted[i].key);
|
||||
delete this.recent[sorted[i].key];
|
||||
isDel = true;
|
||||
}
|
||||
|
||||
this.sortedRecentCached = null;
|
||||
await bmCacheStore.setItem('recent', this.recent);
|
||||
|
||||
return isDel;
|
||||
}
|
||||
|
||||
mostRecentBook() {
|
||||
@@ -356,16 +363,19 @@ class BookManager {
|
||||
return result;
|
||||
}
|
||||
|
||||
async setRecent(newRecent) {
|
||||
//this.recent = newRecent;
|
||||
async setRecent(value) {
|
||||
const mergedRecent = _.cloneDeep(this.recent);
|
||||
|
||||
Object.assign(mergedRecent, newRecent);
|
||||
Object.assign(mergedRecent, value);
|
||||
const newRecent = {};
|
||||
for (const rec of Object.values(mergedRecent)) {
|
||||
if (rec.key) {
|
||||
await bmRecentStore.setItem(rec.key, rec);
|
||||
newRecent[rec.key] = rec;
|
||||
}
|
||||
}
|
||||
|
||||
this.recent = mergedRecent;
|
||||
this.recent = newRecent;
|
||||
await bmCacheStore.setItem('recent', this.recent);
|
||||
|
||||
this.recentLast = null;
|
||||
@@ -375,18 +385,18 @@ class BookManager {
|
||||
this.emit('recent-changed');
|
||||
}
|
||||
|
||||
async setRecentRev(newRecentRev) {
|
||||
await bmRecentStore.setItem('recent-rev', newRecentRev);
|
||||
this.recentRev = newRecentRev;
|
||||
async setRecentRev(value) {
|
||||
await bmRecentStore.setItem('recent-rev', value);
|
||||
this.recentRev = value;
|
||||
}
|
||||
|
||||
async setRecentLast(newRecentLast) {
|
||||
this.recentLast = newRecentLast;
|
||||
async setRecentLast(value) {
|
||||
this.recentLast = value;
|
||||
}
|
||||
|
||||
async setRecentLastRev(newRecentLastRev) {
|
||||
bmRecentStore.setItem('recent-last-rev', newRecentLastRev);
|
||||
this.recentLastRev = newRecentLastRev;
|
||||
async setRecentLastRev(value) {
|
||||
bmRecentStore.setItem('recent-last-rev', value);
|
||||
this.recentLastRev = value;
|
||||
}
|
||||
|
||||
addEventListener(listener) {
|
||||
|
||||
Reference in New Issue
Block a user