Pull video data from payload

This commit is contained in:
Sam Carlton 2021-01-02 16:11:20 -06:00
parent bca074498e
commit 147bf74190
13 changed files with 167 additions and 65 deletions

55
helpers/build-payload.js Normal file
View file

@ -0,0 +1,55 @@
import { appsRelatedToVideo, videosRelatedToVideo, videosRelatedToApp } from './related.js'
// import videoList from '~/static/video-list.json'
export function buildVideoPayload ( video, allVideoAppsList, videoList ) {
// const { appsRelatedToVideo, videosRelatedToVideo } = await import('~/helpers/related.js')
// const { default: videoList } = await import('~/static/video-list.json')
// Find the video for our current page
// const video = videoList.find(video => (video.slug === slug))
// Get featured apps
const featuredApps = appsRelatedToVideo( video, allVideoAppsList )
// Get related videos
const relatedVideos = videosRelatedToVideo( video, allVideoAppsList, videoList )
return {
video,
featuredApps,
// If no related video found just get the 12 newest ones
relatedVideos: (relatedVideos.length !== 0) ? relatedVideos : videoList.slice(0, 12)
}
}
export function buildAppBenchmarkPayload ( app, allVideoAppsList, videoList ) {
// const { allVideoAppsList } = await import('~/helpers/get-list.js')
// const { videosRelatedToApp } = await import('~/helpers/related.js')
// const app = allVideoAppsList.find(app => (app.slug === slug))
const submitVideoCard = {
endpoint: `https://docs.google.com/forms/d/e/1FAIpQLSeEVGM9vE7VcfLMy6fJkfU70X2VZ60rHDyhDQLtnAN4nso0WA/viewform?usp=pp_url&entry.1018125313=${app.name}`
}
// const featuredApps = []
const relatedVideos = videosRelatedToApp( app, videoList ).map(video => {
// console.log('video', video)
return {
...video,
// endpoint: `#${video.id}`
}
})
return {
app,
allVideos: relatedVideos,
submitVideoCard
}
}

View file

@ -21,9 +21,9 @@ export const allList = [
]
export function makeAppSearchLinks (app) {
export function makeAppSearchLinks ( app, videoList ) {
const videos = videosRelatedToApp(app)
const videos = videosRelatedToApp( app, videoList )
// If there are no videos
// then skip

View file

@ -1,15 +1,16 @@
import { allVideoAppsList } from '~/helpers/get-list.js'
import videoList from '~/static/video-list.json'
// import { allVideoAppsList } from '~/helpers/get-list.js'
// import videoList from '~/static/video-list.json'
export function matchesWholeWord (needle, haystack) {
return new RegExp('\\b' + needle + '\\b').test(haystack)
}
export function appsRelatedToVideo ( video ) {
export function appsRelatedToVideo ( video, allVideoAppsList ) {
const relatedApps = []
// Find the apps listed in this video
for (const app of allVideoAppsList) {
// console.log('video', video)
// Skip this app if it's not listed in the videos apps
if (!video.apps.includes(app.slug)) continue
@ -20,14 +21,18 @@ export function appsRelatedToVideo ( video ) {
return relatedApps
}
export function videosRelatedToVideo ( video ) {
export function videosRelatedToVideo ( video, allVideoAppsList, videoList ) {
const relatedVideos = {}
const featuredApps = appsRelatedToVideo( video )
// console.log('videoList', videoList[0])
// console.log('allVideoAppsList', allVideoAppsList[0])
const featuredApps = appsRelatedToVideo( video, allVideoAppsList )
// Find other videos that also feature this video's app
for (const otherVideo of videoList) {
for (const app of featuredApps) {
// console.log('otherVideo', otherVideo)
// Skip if this app is not in the other video's apps
if (!otherVideo.apps.includes(app.slug)) continue
@ -43,7 +48,8 @@ export function videosRelatedToVideo ( video ) {
}
export function videosRelatedToApp ( app ) {
export function videosRelatedToApp ( app, videoList ) {
const relatedVideos = {}
// Find other videos that also feature this video's app