@@ -164,6 +168,8 @@ export default {
multipleSelection: [],
areas: [],
types: [],
+ // Update
+ numNoUpdate: 0,
// Toolbar
showToolbar: false,
selectedAreas: [],
@@ -216,6 +222,14 @@ export default {
set (val) {
this.SET_SETTING(val)
}
+ },
+ DetailCache: {
+ get () {
+ return this.$store.getters.getDetailCache
+ },
+ set (val) {
+ this.SET_DetailCache(val)
+ }
}
},
watch: {
@@ -233,10 +247,46 @@ export default {
this.refreshFilteredList()
},
deep: true
+ },
+ numNoUpdate () {
+ // 如果所有历史都没有更新的话
+ if (this.numNoUpdate === this.list.length) {
+ this.numNoUpdate = 0
+ this.$message.warning('未查询到任何更新')
+ }
}
},
methods: {
...mapMutations(['SET_VIEW', 'SET_DETAIL', 'SET_VIDEO', 'SET_SHARE', 'SET_SETTING']),
+ updateAllEvent () {
+ this.numNoUpdate = 0
+ this.list.forEach(e => {
+ this.updateEvent(e)
+ })
+ },
+ async updateEvent (e) {
+ try {
+ if (!this.DetailCache[e.site + '@' + e.ids]) {
+ this.DetailCache[e.site + '@' + e.ids] = await zy.detail(e.site, e.ids)
+ }
+ const newDetail = this.DetailCache[e.site + '@' + e.ids]
+ history.get(e.id).then(res => {
+ if (!e.hasUpdate && e.detail.last !== newDetail.last) {
+ res.hasUpdate = true
+ res.detail = newDetail
+ const msg = `检查到"${e.name}"有更新。`
+ this.$message.success(msg)
+ } else {
+ this.numNoUpdate += 1
+ }
+ history.update(e.id, res)
+ this.getAllhistory()
+ })
+ } catch (err) {
+ const msg = `更新"${e.name}"失败, 请重试。`
+ this.$message.warning(msg, err)
+ }
+ },
toggleViewMode () {
this.setting.historyViewMode = this.setting.historyViewMode === 'picture' ? 'table' : 'picture'
if (this.setting.historyViewMode === 'table') {
@@ -341,8 +391,19 @@ export default {
} else {
this.video = { key: e.site, info: { id: e.ids, name: e.name, index: 0 } }
}
+ if (e.hasUpdate) {
+ this.clearHasUpdateFlag(e)
+ }
this.view = 'Play'
},
+ async clearHasUpdateFlag (e) {
+ const db = await history.find({ id: e.id })
+ if (db) {
+ db.hasUpdate = false
+ history.update(e.id, db)
+ this.getAllhistory()
+ }
+ },
shareEvent (e) {
this.share = {
show: true,
diff --git a/src/components/Star.vue b/src/components/Star.vue
index 20be019..1113095 100644
--- a/src/components/Star.vue
+++ b/src/components/Star.vue
@@ -4,7 +4,7 @@
导出
导入
{{ multipleSelection.length === 0 ? "清空" : "删除所选" }}
- 同步所有收藏
+ 检查更新
@@ -441,7 +441,7 @@ export default {
star.get(e.id).then(resStar => {
if (!e.hasUpdate && e.detail.last !== doc.detail.last) {
doc.hasUpdate = true
- const msg = `同步"${e.name}"成功, 检查到更新。`
+ const msg = `检查到"${e.name}"有更新。`
this.$message.success(msg)
} else {
this.numNoUpdate += 1
@@ -450,7 +450,7 @@ export default {
this.getFavorites()
})
} catch (err) {
- const msg = `同步"${e.name}"失败, 请重试。`
+ const msg = `更新"${e.name}"失败, 请重试。`
this.$message.warning(msg, err)
}
},
diff --git a/src/lib/dexie/dexie.js b/src/lib/dexie/dexie.js
index 435706f..5e9df57 100644
--- a/src/lib/dexie/dexie.js
+++ b/src/lib/dexie/dexie.js
@@ -59,6 +59,10 @@ db.version(8).stores({
})
})
+db.version(9).stores({
+ history: '++id, [site+ids], name, type, year, index, time, duration, detail, onlinePlay, hasUpdate'
+})
+
db.on('populate', () => {
db.setting.bulkAdd(setting)
db.sites.bulkAdd(sites)
diff --git a/src/lib/dexie/history.js b/src/lib/dexie/history.js
index fc4062a..72b4b4b 100644
--- a/src/lib/dexie/history.js
+++ b/src/lib/dexie/history.js
@@ -19,6 +19,9 @@ export default {
async remove (id) {
return await history.delete(id)
},
+ async get (id) {
+ return await history.get(id)
+ },
async clear () {
return await history.clear()
}