Filter pre-order videos (fix #1682)

This commit is contained in:
the1812 2021-04-07 18:38:18 +08:00
parent 3f959e029b
commit 404de5d867
4 changed files with 38 additions and 30 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -414,6 +414,9 @@ export const isVideoCardBlocked = (card: Pick<VideoCardInfo, 'title' | 'dynamic'
username: card.upName,
})
}
export const isPreOrderedVideo = (card: any) => {
return _.get(card, 'extra.is_reserve_recall', 0) === 1
}
export const getVideoFeeds = async (type: 'video' | 'bangumi' = 'video'): Promise<VideoCardInfo[]> => {
if (!getUID()) {
@ -557,5 +560,6 @@ export default {
addMenuItem,
isCardBlocked,
isVideoCardBlocked,
isPreOrderedVideo,
},
}

View File

@ -163,7 +163,7 @@ export class Activities extends NavbarComponent {
this.setNotifyCount(json.data.update_num)
}
async init() {
const { isVideoCardBlocked, isCardBlocked } = await import('../../../activity/feeds-apis')
const { isVideoCardBlocked, isCardBlocked, isPreOrderedVideo } = await import('../../../activity/feeds-apis')
Vue.component('activity-loading', {
template: /*html*/`
<div v-if="loading" class="loading">
@ -419,18 +419,20 @@ export class Activities extends NavbarComponent {
</div>
`,
handleJson: async function (json) {
const cards = _.get<any[]>(json, 'data.cards', []).map((card: any) => {
const cardJson = JSON.parse(card.card)
return {
title: cardJson.apiSeasonInfo.title,
coverUrl: cardJson.apiSeasonInfo.cover,
epCoverUrl: cardJson.cover,
epTitle: cardJson.new_desc,
url: cardJson.url,
id: card.desc.dynamic_id_str,
get new() { return Activities.isNewID(this.id) },
}
})
const cards = _.get<any[]>(json, 'data.cards', [])
.filter((card: any) => !isPreOrderedVideo(card))
.map((card: any) => {
const cardJson = JSON.parse(card.card)
return {
title: cardJson.apiSeasonInfo.title,
coverUrl: cardJson.apiSeasonInfo.cover,
epCoverUrl: cardJson.cover,
epTitle: cardJson.new_desc,
url: cardJson.url,
id: card.desc.dynamic_id_str,
get new() { return Activities.isNewID(this.id) },
}
})
this.cards = _.uniqBy(cards.concat(this.cards), it => it.id)
.sort((a, b) => {
return b.id > a.id ? 1 : -1
@ -482,21 +484,23 @@ export class Activities extends NavbarComponent {
</div>
`,
handleJson: async function (json) {
const cards = _.get<any[]>(json, 'data.cards', []).map((card: any) => {
const cardJson = JSON.parse(card.card)
return {
covers: cardJson.image_urls,
originalCovers: cardJson.origin_image_urls,
upName: cardJson.author.name,
faceUrl: cardJson.author.face,
upUrl: `https://space.bilibili.com/${cardJson.author.mid}`,
title: cardJson.title,
description: cardJson.summary,
url: `https://www.bilibili.com/read/cv${cardJson.id}`,
id: card.desc.dynamic_id_str,
get new() { return Activities.isNewID(this.id) },
}
})
const cards = _.get<any[]>(json, 'data.cards', [])
.filter((card: any) => !isPreOrderedVideo(card))
.map((card: any) => {
const cardJson = JSON.parse(card.card)
return {
covers: cardJson.image_urls,
originalCovers: cardJson.origin_image_urls,
upName: cardJson.author.name,
faceUrl: cardJson.author.face,
upUrl: `https://space.bilibili.com/${cardJson.author.mid}`,
title: cardJson.title,
description: cardJson.summary,
url: `https://www.bilibili.com/read/cv${cardJson.id}`,
id: card.desc.dynamic_id_str,
get new() { return Activities.isNewID(this.id) },
}
})
this.cards = _.uniqBy(cards.concat(this.cards), it => it.id)
.sort((a, b) => {
return b.id > a.id ? 1 : -1