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