Implement basic "create-user" functions (outputs JSON)
This commit is contained in:
parent
1a6d7a8df3
commit
bafc64fb5b
3 changed files with 53 additions and 7 deletions
50
functions.js
50
functions.js
|
@ -1,3 +1,5 @@
|
|||
const r2 = require('r2')
|
||||
|
||||
/**
|
||||
* function [fetchFromMedium]
|
||||
* @returns [string] status
|
||||
|
@ -22,17 +24,59 @@ const mediumToGhost = (mediumUrl) => {
|
|||
console.info('Copying: ' + mediumUrl);
|
||||
};
|
||||
|
||||
|
||||
async function fetchMediumJSON(mediumUrl) {
|
||||
console.debug(`Fetching: ${mediumUrl}`)
|
||||
const response = await fetch(mediumUrl)
|
||||
const text = await response.text()
|
||||
const json = await JSON.parse(text.substr(text.indexOf('{')))
|
||||
return json;
|
||||
}
|
||||
|
||||
/**
|
||||
* function [createUser]
|
||||
* @returns [string] status
|
||||
*/
|
||||
const createUser = (mediumUsername, email) => {
|
||||
console.info('Creating: @' + mediumUsername + '(email: ' + email + ')');
|
||||
const generateUserData = async (mediumUsername, email) => {
|
||||
console.debug('Creating: @' + mediumUsername + '(email: ' + email + ')');
|
||||
const mediumUrl = `https://medium.com/@${mediumUsername}/?format=json`;
|
||||
const json = await fetchMediumJSON(mediumUrl);
|
||||
|
||||
if (!json.success) {
|
||||
console.error(`Error: ${json.error}`)
|
||||
return false
|
||||
}
|
||||
|
||||
console.debug(`Name: ${json.payload.user.name}`)
|
||||
console.debug(`Bio: ${json.payload.user.bio}`)
|
||||
|
||||
// Generate Ghost JSON
|
||||
|
||||
const ghostData = {
|
||||
data: {
|
||||
users: [
|
||||
{
|
||||
id: 1,
|
||||
slug: json.payload.user.username,
|
||||
bio: json.payload.user.bio,
|
||||
email: email,
|
||||
name: json.payload.user.name,
|
||||
}
|
||||
]
|
||||
},
|
||||
meta: {
|
||||
exported_on: new Date,
|
||||
version: '2.14.0'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return(JSON.stringify(ghostData))
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
fetchFromMedium,
|
||||
pushToGhost,
|
||||
mediumToGhost,
|
||||
createUser
|
||||
generateUserData,
|
||||
}
|
||||
|
|
7
index.js
Normal file → Executable file
7
index.js
Normal file → Executable file
|
@ -6,7 +6,7 @@ const {
|
|||
fetchFromMedium,
|
||||
pushToGhost,
|
||||
mediumToGhost,
|
||||
createUser
|
||||
generateUserData,
|
||||
} = require ('./functions');
|
||||
|
||||
program
|
||||
|
@ -36,8 +36,9 @@ program.command('medium-to-ghost <mediumUrl>')
|
|||
|
||||
program.command('create-user <username> <email>')
|
||||
.description('create ghost-import.json to import Medium user to Ghost')
|
||||
.action((username, email) => {
|
||||
createUser(username, email);
|
||||
.action(async (username, email) => {
|
||||
const jsonOut = await generateUserData(username, email);
|
||||
console.log(await jsonOut);
|
||||
});
|
||||
|
||||
program.parse(process.argv)
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"commander": "^3.0.2",
|
||||
"mediumexporter": "github:xdamman/mediumexporter#v0.2.0"
|
||||
"mediumexporter": "github:xdamman/mediumexporter#v0.2.0",
|
||||
"r2": "^2.0.1"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue