mirror of
https://github.com/KevinMidboe/fetch-the-release.git
synced 2025-10-29 09:30:24 +00:00
Read and write to cache, kindof broken because of async writing to file
This commit is contained in:
22
index.js
22
index.js
@@ -1,6 +1,6 @@
|
|||||||
require('dotenv').config()
|
require('dotenv').config()
|
||||||
const fetch = require('node-fetch')
|
const fetch = require('node-fetch')
|
||||||
const { whoAmI, printAll } = require('./utils')
|
const { whoAmI, printAll, writeCache, readCache } = require('./utils')
|
||||||
|
|
||||||
const BASE_PATH = process.env.BASE_PATH
|
const BASE_PATH = process.env.BASE_PATH
|
||||||
|
|
||||||
@@ -10,6 +10,7 @@ const mapResult = (result) => {
|
|||||||
year: result.year,
|
year: result.year,
|
||||||
id: result.id,
|
id: result.id,
|
||||||
status: result.status,
|
status: result.status,
|
||||||
|
type: result.type,
|
||||||
date: result.date
|
date: result.date
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -25,6 +26,7 @@ function fetchRequestMedia() {
|
|||||||
const { results, total_results } = {...result}
|
const { results, total_results } = {...result}
|
||||||
|
|
||||||
const media = results.map(mapResult)
|
const media = results.map(mapResult)
|
||||||
|
// console.log('requested: ', media)
|
||||||
return media
|
return media
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -37,15 +39,25 @@ function fetchReleases(media) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(resp => resp.json())
|
.then(resp => resp.json())
|
||||||
|
// .then(resp => { writeToFile(resp); return resp })
|
||||||
.then(result => {
|
.then(result => {
|
||||||
const { results } = { ...result }
|
const { results } = { ...result }
|
||||||
console.log(`Releases for ${media.title} returned: ${results.length}`)
|
console.log(`Releases for ${media.title} returned: ${results.length}`)
|
||||||
return results ? {catch: media, release: results } : null
|
return results ? {media: media, release: results } : null
|
||||||
})
|
})
|
||||||
.catch(console.error)
|
.catch(console.error)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function seasonedReleases(release) {
|
||||||
|
const { media, releases } = release
|
||||||
|
console.log(media.title)
|
||||||
|
if (releases)
|
||||||
|
console.log(releases[0])
|
||||||
|
console.log()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
async function Fetch() {
|
async function Fetch() {
|
||||||
const media = await fetchRequestMedia()
|
const media = await fetchRequestMedia()
|
||||||
printAll(media)
|
printAll(media)
|
||||||
@@ -64,7 +76,11 @@ async function Release(media) {
|
|||||||
function main() {
|
function main() {
|
||||||
console.info("👋🎣 lets do some fetch-and-releasin'\n")
|
console.info("👋🎣 lets do some fetch-and-releasin'\n")
|
||||||
|
|
||||||
Fetch().then(Release)
|
fetchRequestMedia()
|
||||||
|
.then(media => Promise.all(media.map(fetchReleases)))
|
||||||
|
.then(async(releases) => releases.map(await writeCache))
|
||||||
|
// readCache()
|
||||||
|
// .then(releases => releases.filter(seasonedReleases))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
24
utils.js
24
utils.js
@@ -1,3 +1,4 @@
|
|||||||
|
const fs = require('fs')
|
||||||
|
|
||||||
const whoAmI = (result) => {
|
const whoAmI = (result) => {
|
||||||
return `${result.title} (${result.year}) - ${result.status}`
|
return `${result.title} (${result.year}) - ${result.status}`
|
||||||
@@ -9,4 +10,25 @@ const printAll = (media) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { whoAmI, printAll }
|
const writeCache = async (releases) => {
|
||||||
|
console.log(releases)
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
fs.writeFile('./releases.cache', JSON.stringify(releases), (err) => {
|
||||||
|
if (err)
|
||||||
|
return console.log(err)
|
||||||
|
|
||||||
|
resolve()
|
||||||
|
console.log('releases cache saved')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const readCache = () => {
|
||||||
|
return Promise.resolve(fs.readFile('./releases.cache', 'utf-8', (err, data) => {
|
||||||
|
if (err) throw err;
|
||||||
|
console.log(data)
|
||||||
|
return JSON.parse(data)
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { whoAmI, printAll, writeCache, readCache }
|
||||||
|
|||||||
Reference in New Issue
Block a user