Allow passing local JSON instead of downloading
This way, if you have the JSON already there locally, you don't have to bother downloading it from online. Especially useful if the JSON is passed to you some other way, like through a browser for example
This commit is contained in:
parent
0d9ecfd8f5
commit
198f576123
1 changed files with 11 additions and 3 deletions
12
functions.js
12
functions.js
|
@ -31,13 +31,19 @@ class Seance {
|
|||
*/
|
||||
}
|
||||
|
||||
async fetchFromMedium (mediumUrl) {
|
||||
async fetchFromMedium (mediumUrl, options = {
|
||||
json: null,
|
||||
}) {
|
||||
console.info(`Fetching: ${mediumUrl}`);
|
||||
var output = path.join(process.env.PWD, 'content')
|
||||
|
||||
var json
|
||||
|
||||
if (!options.json) {
|
||||
json = await this.fetchMediumJSON(mediumUrl)
|
||||
} else {
|
||||
json = options.json
|
||||
}
|
||||
|
||||
// use mediumexporter's getPost function to fetch a Medium post
|
||||
const post = await getPost(mediumUrl, {
|
||||
|
@ -264,8 +270,10 @@ class Seance {
|
|||
mediumUrl= `${mediumUrl}?format=json`
|
||||
const response = await fetch(mediumUrl)
|
||||
text = await response.text()
|
||||
} else if (fs.existsSync(mediumUrl)) {
|
||||
text = fs.readFileSync(mediumUrl).toString()
|
||||
} else {
|
||||
throw { error: 'URL must be a Medium URL' }
|
||||
throw { error: 'URL must be a Medium URL or existing JSON file' }
|
||||
}
|
||||
|
||||
json = await JSON.parse(text.substr(text.indexOf('{')))
|
||||
|
|
Loading…
Reference in a new issue