From 49c480061b096dc775724c9e9483a041c45ddd79 Mon Sep 17 00:00:00 2001 From: haiyangcui Date: Wed, 28 Oct 2020 18:08:03 +0100 Subject: [PATCH 1/4] =?UTF-8?q?=E6=94=B6=E8=97=8F=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=87=8C=E8=AE=B0=E5=BD=95detail=E6=89=80=E6=9C=89=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Detail.vue | 6 +---- src/components/Film.vue | 23 +++++++++-------- src/components/Play.vue | 25 +++++++++---------- src/components/Star.vue | 52 ++++++++++++++++++++------------------- src/lib/dexie/dexie.js | 2 +- 5 files changed, 52 insertions(+), 56 deletions(-) diff --git a/src/components/Detail.vue b/src/components/Detail.vue index 6c08233..cfbde8f 100644 --- a/src/components/Detail.vue +++ b/src/components/Detail.vue @@ -181,11 +181,7 @@ export default { ids: this.info.id, site: this.detail.site, name: this.info.name, - type: this.info.type, - year: this.info.year, - note: this.info.note, - last: this.info.last - + detail: this.info } star.add(docs).then(res => { this.$message.success('收藏成功') diff --git a/src/components/Film.vue b/src/components/Film.vue index b700721..552315f 100644 --- a/src/components/Film.vue +++ b/src/components/Film.vue @@ -331,18 +331,17 @@ export default { if (db) { this.$message.info('已存在') } else { - const docs = { - key: site.key, - ids: e.id, - site: site, - name: e.name, - type: e.type, - year: e.year, - last: e.last, - note: e.note - } - star.add(docs).then(res => { - this.$message.success('收藏成功') + zy.detail(site.key, e.id).then(detailRes => { + const docs = { + key: site.key, + ids: e.id, + site: site, + name: e.name, + detail: detailRes + } + star.add(docs).then(res => { + this.$message.success('收藏成功') + }) }) } }, diff --git a/src/components/Play.vue b/src/components/Play.vue index a9eeca5..7335060 100644 --- a/src/components/Play.vue +++ b/src/components/Play.vue @@ -532,19 +532,18 @@ export default { } }) } else { - const docs = { - key: this.video.key, - ids: info.id, - name: info.name, - type: info.type, - year: info.year, - last: info.last, - note: info.note, - index: info.index - } - star.add(docs).then(res => { - this.$message.success('收藏成功') - this.isStar = true + zy.detail(this.video.key, info.id).then(detailRes => { + const docs = { + key: this.video.key, + ids: info.id, + name: info.name, + detail: detailRes, + index: info.index + } + star.add(docs).then(res => { + this.$message.success('收藏成功') + this.isStar = true + }) }) } }, diff --git a/src/components/Star.vue b/src/components/Star.vue index f75435b..7961f09 100644 --- a/src/components/Star.vue +++ b/src/components/Star.vue @@ -21,34 +21,34 @@ label="片名"> - @@ -207,24 +207,19 @@ export default { } }, updateEvent (e) { - zy.detail(e.key, e.ids).then(res => { + zy.detail(e.key, e.ids).then(detailRes => { var doc = { id: e.id, key: e.key, - ids: res.id, - site: res.site, - name: res.name, - type: res.type, - year: res.year, - note: res.note, - index: res.index, - last: res.last, - hasUpdate: res.hasUpdate + ids: e.ids, + site: e.site, + name: e.name, + detail: detailRes, + index: e.index } star.get(e.id).then(resStar => { - doc.hasUpdate = resStar.hasUpdate var msg = '' - if (e.last === res.last) { + if (e.detail.last === detailRes.last) { msg = `同步"${e.name}"成功, 未查询到更新。` this.$message.info(msg) } else { @@ -352,12 +347,19 @@ export default { ids: ele.ids, site: ele.site === undefined ? ele.site = this.sites.find(x => x.key === ele.key) : ele.site, name: ele.name, - type: ele.type, - year: ele.year, - note: ele.note, + hasUpdate: ele.hasUpdate, index: ele.index, - last: ele.last, - hasUpdate: ele.hasUpdate + detail: ele.detail === undefined ? { + director: ele.director, + actor: ele.actor, + type: ele.type, + area: ele.area, + lang: ele.lang, + year: ele.year, + last: ele.last, + note: ele.note, + rate: ele.rate + } : ele.detail } starList.push(doc) } diff --git a/src/lib/dexie/dexie.js b/src/lib/dexie/dexie.js index 86d4140..f6b1214 100644 --- a/src/lib/dexie/dexie.js +++ b/src/lib/dexie/dexie.js @@ -8,7 +8,7 @@ db.version(4).stores({ iptvSearch: '++id, keywords', setting: 'id, theme, site, shortcut, view, externalPlayer, searchAllSites, excludeRootClasses, excludeR18Films, forwardTimeInSec', shortcut: 'name, key, desc', - star: '++id, [key+ids], site, name, type, year, note, index, last, hasUpdate', + star: '++id, [key+ids], site, name, detail, index, hasUpdate', sites: '++id, key, name, api, download, isActive, group', history: '++id, [site+ids], name, type, year, index, time', mini: 'id, site, ids, name, index, time', From 9fd8c60dd53216645e7e1c3fab0e18fe654b700f Mon Sep 17 00:00:00 2001 From: haiyangcui Date: Wed, 28 Oct 2020 23:29:39 +0100 Subject: [PATCH 2/4] =?UTF-8?q?"=E8=8E=B7=E5=8F=96=E8=B1=86=E7=93=A3?= =?UTF-8?q?=E8=AF=84=E5=88=86"=E5=8A=9F=E8=83=BD=E5=88=B0tools.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Detail.vue | 33 ++---------------------------- src/lib/site/tools.js | 43 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 31 deletions(-) diff --git a/src/components/Detail.vue b/src/components/Detail.vue index cfbde8f..adfcd57 100644 --- a/src/components/Detail.vue +++ b/src/components/Detail.vue @@ -277,38 +277,9 @@ export default { }) }, getDoubanRate () { - const axios = require('axios') - const cheerio = require('cheerio') const name = this.detail.info.name.trim() - // 豆瓣搜索链接 - var doubanSearchLink = 'https://www.douban.com/search?q=' + name - axios.get(doubanSearchLink).then(res => { - const $ = cheerio.load(res.data) - // 比较第一和第二给豆瓣搜索结果, 看名字是否相符 - var link = '' - var nameInDouban = $($('div.result')[0]).find('div>div>h3>a').first() - if (name.replace(/\s/g, '') === nameInDouban.text().replace(/\s/g, '')) { - link = nameInDouban.attr('href') - } else { - nameInDouban = $($('div.result')[1]).find('div>div>h3>a').first() - if (name.replace(/\s/g, '') === nameInDouban.text().replace(/\s/g, '')) { - link = nameInDouban.attr('href') - } - } - // 如果找到链接,就打开该链接获取评分 - if (link) { - axios.get(link).then(response => { - const parsedHtml = cheerio.load(response.data) - var rating = parsedHtml('body').find('#interest_sectl').first().find('strong').first() - if (rating.text()) { - this.info.rate = rating.text() - } else { - this.info.rate = '暂无评分' - } - }) - } else { - this.info.rate = '暂无评分' - } + zy.doubanRate(name).then(res => { + this.info.rate = res }) }, getDetailInfo () { diff --git a/src/lib/site/tools.js b/src/lib/site/tools.js index 432ce9a..96a75ff 100644 --- a/src/lib/site/tools.js +++ b/src/lib/site/tools.js @@ -1,6 +1,8 @@ import { sites } from '../dexie' import axios from 'axios' import parser from 'fast-xml-parser' +import cheerio from 'cheerio' + const zy = { xmlConfig: { // XML 转 JSON 配置 trimValues: true, @@ -210,6 +212,47 @@ const zy = { } catch (e) { return false } + }, + /** + * 获取豆瓣评分 + * @param {*} name 视频名称 + * @returns 豆瓣评分 + */ + doubanRate (name) { + return new Promise((resolve, reject) => { + // 豆瓣搜索链接 + var doubanSearchLink = 'https://www.douban.com/search?q=' + name + axios.get(doubanSearchLink).then(res => { + const $ = cheerio.load(res.data) + // 比较第一和第二给豆瓣搜索结果, 看名字是否相符 + var link = '' + var nameInDouban = $($('div.result')[0]).find('div>div>h3>a').first() + if (name.replace(/\s/g, '') === nameInDouban.text().replace(/\s/g, '')) { + link = nameInDouban.attr('href') + } else { + nameInDouban = $($('div.result')[1]).find('div>div>h3>a').first() + if (name.replace(/\s/g, '') === nameInDouban.text().replace(/\s/g, '')) { + link = nameInDouban.attr('href') + } + } + // 如果找到链接,就打开该链接获取评分 + if (link) { + axios.get(link).then(response => { + const parsedHtml = cheerio.load(response.data) + var rating = parsedHtml('body').find('#interest_sectl').first().find('strong').first() + if (rating.text()) { + resolve(rating.text()) + } + }).catch(err => { + reject(err) + }) + } else { + resolve('暂无评分') + } + }).catch(err => { + reject(err) + }) + }) } } From 42dd8fe5e40484670502db05f09b06641771fbe8 Mon Sep 17 00:00:00 2001 From: haiyangcui Date: Wed, 28 Oct 2020 23:58:06 +0100 Subject: [PATCH 3/4] =?UTF-8?q?star=E6=B7=BB=E5=8A=A0=E8=B1=86=E7=93=A3?= =?UTF-8?q?=E8=AF=84=E5=88=86=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Detail.vue | 3 ++- src/components/Star.vue | 36 +++++++++++++++++------------------- src/lib/dexie/dexie.js | 2 +- src/lib/site/tools.js | 2 ++ 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/components/Detail.vue b/src/components/Detail.vue index adfcd57..558dea6 100644 --- a/src/components/Detail.vue +++ b/src/components/Detail.vue @@ -181,7 +181,8 @@ export default { ids: this.info.id, site: this.detail.site, name: this.info.name, - detail: this.info + detail: this.info, + rate: this.info.rate } star.add(docs).then(res => { this.$message.success('收藏成功') diff --git a/src/components/Star.vue b/src/components/Star.vue index 7961f09..117c779 100644 --- a/src/components/Star.vue +++ b/src/components/Star.vue @@ -37,14 +37,11 @@ align="center"> + label="源站"> + + e.key === key) - if (site) { - return site.name + getSiteName (row) { + if (row.site) { + return row.site.name + } else { + var site = this.sites.find(e => e.key === row.key) + if (site) { + return site.name + } } }, getHistoryNote (index) { @@ -349,6 +347,7 @@ export default { name: ele.name, hasUpdate: ele.hasUpdate, index: ele.index, + rate: ele.rate, detail: ele.detail === undefined ? { director: ele.director, actor: ele.actor, @@ -357,8 +356,7 @@ export default { lang: ele.lang, year: ele.year, last: ele.last, - note: ele.note, - rate: ele.rate + note: ele.note } : ele.detail } starList.push(doc) diff --git a/src/lib/dexie/dexie.js b/src/lib/dexie/dexie.js index f6b1214..c9c114f 100644 --- a/src/lib/dexie/dexie.js +++ b/src/lib/dexie/dexie.js @@ -8,7 +8,7 @@ db.version(4).stores({ iptvSearch: '++id, keywords', setting: 'id, theme, site, shortcut, view, externalPlayer, searchAllSites, excludeRootClasses, excludeR18Films, forwardTimeInSec', shortcut: 'name, key, desc', - star: '++id, [key+ids], site, name, detail, index, hasUpdate', + star: '++id, [key+ids], site, name, detail, index, rate, hasUpdate', sites: '++id, key, name, api, download, isActive, group', history: '++id, [site+ids], name, type, year, index, time', mini: 'id, site, ids, name, index, time', diff --git a/src/lib/site/tools.js b/src/lib/site/tools.js index 96a75ff..e7fd6a0 100644 --- a/src/lib/site/tools.js +++ b/src/lib/site/tools.js @@ -242,6 +242,8 @@ const zy = { var rating = parsedHtml('body').find('#interest_sectl').first().find('strong').first() if (rating.text()) { resolve(rating.text()) + } else { + resolve('暂无评分') } }).catch(err => { reject(err) From bea1ef4c733b15e4544ffab11c8682a7fb4fdc59 Mon Sep 17 00:00:00 2001 From: haiyangcui Date: Thu, 29 Oct 2020 09:12:33 +0100 Subject: [PATCH 4/4] =?UTF-8?q?=E6=94=B6=E8=97=8F=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A7=86=E5=9B=BE=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Star.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/Star.vue b/src/components/Star.vue index 117c779..dd5c1fd 100644 --- a/src/components/Star.vue +++ b/src/components/Star.vue @@ -2,12 +2,13 @@
+ 导出 导入 清空 同步所有收藏
-
+