mirror of
https://github.com/ThatGuySam/doesitarm.git
synced 2026-05-18 06:44:46 -07:00
Enable generating device list
This commit is contained in:
parent
00f1f1397c
commit
1d5a4d059b
3 changed files with 57 additions and 3 deletions
|
|
@ -5,6 +5,7 @@ import buildAppList from './helpers/build-app-list.js'
|
||||||
import buildGamesList from './helpers/build-game-list.js'
|
import buildGamesList from './helpers/build-game-list.js'
|
||||||
import buildHomebrewList from './helpers/build-homebrew-list.js'
|
import buildHomebrewList from './helpers/build-homebrew-list.js'
|
||||||
import buildVideoList from './helpers/build-video-list.js'
|
import buildVideoList from './helpers/build-video-list.js'
|
||||||
|
import buildDeviceList from './helpers/build-device-list.js'
|
||||||
|
|
||||||
import { videosRelatedToApp } from './helpers/related.js'
|
import { videosRelatedToApp } from './helpers/related.js'
|
||||||
import { buildVideoPayload, buildAppBenchmarkPayload } from './helpers/build-payload.js'
|
import { buildVideoPayload, buildAppBenchmarkPayload } from './helpers/build-payload.js'
|
||||||
|
|
@ -14,6 +15,7 @@ import {
|
||||||
getAppType,
|
getAppType,
|
||||||
getAppEndpoint,
|
getAppEndpoint,
|
||||||
getVideoEndpoint,
|
getVideoEndpoint,
|
||||||
|
isVideo
|
||||||
} from './helpers/app-derived.js'
|
} from './helpers/app-derived.js'
|
||||||
import { makeSearchableList } from './helpers/searchable-list.js'
|
import { makeSearchableList } from './helpers/searchable-list.js'
|
||||||
|
|
||||||
|
|
@ -61,6 +63,11 @@ class BuildLists {
|
||||||
path: '/static/homebrew-list.json',
|
path: '/static/homebrew-list.json',
|
||||||
buildMethod: buildHomebrewList,
|
buildMethod: buildHomebrewList,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'device',
|
||||||
|
path: '/static/device-list.json',
|
||||||
|
buildMethod: buildDeviceList,
|
||||||
|
},
|
||||||
|
|
||||||
// Secondary Derivative built lists
|
// Secondary Derivative built lists
|
||||||
// Always goes after initial lists
|
// Always goes after initial lists
|
||||||
|
|
@ -225,10 +232,10 @@ class BuildLists {
|
||||||
|
|
||||||
this.lists[listKey].forEach( app => {
|
this.lists[listKey].forEach( app => {
|
||||||
|
|
||||||
const isVideo = (app.category === undefined)
|
// const isVideo = (app.category === undefined)
|
||||||
const appType = getAppType( app )
|
const appType = getAppType( app )
|
||||||
|
|
||||||
if ( isVideo ) {
|
if ( isVideo( app ) ) {
|
||||||
// this.endpointMaps.eleventy.add({
|
// this.endpointMaps.eleventy.add({
|
||||||
// route: getVideoEndpoint(app),
|
// route: getVideoEndpoint(app),
|
||||||
// payload: buildVideoPayload( app, this.allVideoAppsList, this.lists.video )
|
// payload: buildVideoPayload( app, this.allVideoAppsList, this.lists.video )
|
||||||
|
|
@ -273,9 +280,14 @@ class BuildLists {
|
||||||
relatedVideos
|
relatedVideos
|
||||||
} )
|
} )
|
||||||
|
|
||||||
|
} else if ( appType === 'device' ) {
|
||||||
|
// Add device endpoint
|
||||||
|
// console.log('Added to nuxt endpoints', app.endpoint )
|
||||||
|
this.endpointMaps.nuxt.set( app.endpoint , { listing: app } )
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Add game or other endpoint
|
// Add game or other endpoint
|
||||||
// console.log('Added to nuxt endpoints', getAppEndpoint(app))
|
// console.log('Added to nuxt endpoints', app.endpoint )
|
||||||
this.endpointMaps.nuxt.set( getAppEndpoint(app), { app } )
|
this.endpointMaps.nuxt.set( getAppEndpoint(app), { app } )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
// App Data that is derived from other app data
|
// App Data that is derived from other app data
|
||||||
|
|
||||||
|
export function isDevice ( listing ) {
|
||||||
|
if ( !listing.hasOwnProperty('endpoint') ) return false
|
||||||
|
|
||||||
|
return listing.endpoint.startsWith('/device/')
|
||||||
|
}
|
||||||
|
|
||||||
export function isVideo ( app ) {
|
export function isVideo ( app ) {
|
||||||
return app.hasOwnProperty('thumbnail') && app.hasOwnProperty('timestamps')
|
return app.hasOwnProperty('thumbnail') && app.hasOwnProperty('timestamps')
|
||||||
|
|
@ -13,6 +18,10 @@ export function getAppType ( app ) {
|
||||||
return 'video'
|
return 'video'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( isDevice( app ) ) {
|
||||||
|
return 'device'
|
||||||
|
}
|
||||||
|
|
||||||
if(app.category !== Object(app.category)) {
|
if(app.category !== Object(app.category)) {
|
||||||
console.warn('app has no categories', app)
|
console.warn('app has no categories', app)
|
||||||
|
|
||||||
|
|
|
||||||
33
helpers/build-device-list.js
Normal file
33
helpers/build-device-list.js
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
import axios from 'axios'
|
||||||
|
|
||||||
|
import { makeSlug } from './slug.js'
|
||||||
|
|
||||||
|
export function getDeviceEndpoint ( slug ) {
|
||||||
|
return `/device/${ slug }`
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export default async function () {
|
||||||
|
|
||||||
|
const devicesJsonUrl = `${process.env.VFUNCTIONS_URL}/api/devices`
|
||||||
|
|
||||||
|
const rawDeviceList = await axios.get(devicesJsonUrl)
|
||||||
|
.then( response => {
|
||||||
|
return response.data
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
// handle error
|
||||||
|
console.warn('Error fetching device list', error)
|
||||||
|
})
|
||||||
|
|
||||||
|
return rawDeviceList.map( device => {
|
||||||
|
const slug = makeSlug( device.name )
|
||||||
|
|
||||||
|
return {
|
||||||
|
...device,
|
||||||
|
slug,
|
||||||
|
endpoint: getDeviceEndpoint( slug ),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue