Moved blabber-cli functionality into core
This commit is contained in:
parent
eba27a607b
commit
1522a80831
4 changed files with 86 additions and 2 deletions
25
README.md
25
README.md
|
@ -8,7 +8,30 @@
|
||||||
|
|
||||||
Powered by Node and a node-canvas a comic can automatically be generated from a json array of users/text and some characters/backgrounds to be chosen at random.
|
Powered by Node and a node-canvas a comic can automatically be generated from a json array of users/text and some characters/backgrounds to be chosen at random.
|
||||||
|
|
||||||
## How to use it
|
## How to use it from the CLI
|
||||||
|
|
||||||
|
### Installing
|
||||||
|
|
||||||
|
`npm install -g blabber`
|
||||||
|
|
||||||
|
### Using
|
||||||
|
|
||||||
|
```
|
||||||
|
$ blabber
|
||||||
|
$ Who?: Glen
|
||||||
|
$ Said What?: Test 1
|
||||||
|
$ Another? (y/n) y
|
||||||
|
$ Who?: Sarah
|
||||||
|
$ Said What?: Test 2
|
||||||
|
$ Another? (y/n) y
|
||||||
|
$ Who?: Glen
|
||||||
|
$ Said What?: Test 3
|
||||||
|
$ Another? (y/n) n
|
||||||
|
$ Generating Comic...
|
||||||
|
$ [ Comic Generated @ comics/1.png ]
|
||||||
|
```
|
||||||
|
|
||||||
|
## How to use it in other projects
|
||||||
|
|
||||||
### Generate base64Data
|
### Generate base64Data
|
||||||
|
|
||||||
|
|
56
blabber.js
Executable file
56
blabber.js
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
|
const prompt = require('prompt');
|
||||||
|
const blabberComic = require('./');
|
||||||
|
|
||||||
|
prompt.start();
|
||||||
|
|
||||||
|
const promptMessage = [{
|
||||||
|
description: 'Who?',
|
||||||
|
name: 'user'
|
||||||
|
}, {
|
||||||
|
description: 'Said what?',
|
||||||
|
name: 'text'
|
||||||
|
}];
|
||||||
|
const promptMore = {
|
||||||
|
description: 'Another? y/n',
|
||||||
|
pattern: /y|n/i,
|
||||||
|
message: 'Please type y(es) or n(o) for More',
|
||||||
|
default: 'y',
|
||||||
|
};
|
||||||
|
|
||||||
|
function askForMessage(callback, conversation = []) {
|
||||||
|
prompt.get(promptMessage, (error, response) => {
|
||||||
|
conversation.push(response);
|
||||||
|
callback(conversation);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function askIfMore(conversation) {
|
||||||
|
prompt.get(promptMore, (error, response) => {
|
||||||
|
let shouldContinue = response.question.toLowerCase() === 'y';
|
||||||
|
|
||||||
|
if (shouldContinue) askForMessage(askIfMore, conversation);
|
||||||
|
else generate(conversation);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function generate(conversation) {
|
||||||
|
console.log('Generating Comic...');
|
||||||
|
|
||||||
|
blabberComic(conversation)
|
||||||
|
.then(rawBase64 => rawBase64.replace(/^data:image\/png;base64,/, ''))
|
||||||
|
.then(base64 => {
|
||||||
|
let filename = Math.floor(Date.now() + Math.random()) + '.png';
|
||||||
|
|
||||||
|
fs.writeFile(filename, base64, 'base64', error => {
|
||||||
|
if(error) throw error;
|
||||||
|
else console.log('[ Comic Generated @ ' + filename + ' ]');
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(error => { console.error('Uhoh... something went wrong.', error); });
|
||||||
|
}
|
||||||
|
|
||||||
|
askForMessage(askIfMore);
|
0
index.js
Normal file → Executable file
0
index.js
Normal file → Executable file
|
@ -6,6 +6,9 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "node test.js"
|
"test": "node test.js"
|
||||||
},
|
},
|
||||||
|
"bin": {
|
||||||
|
"blabber": "./blabber.js"
|
||||||
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"comic",
|
"comic",
|
||||||
"generate",
|
"generate",
|
||||||
|
@ -18,6 +21,8 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"canvas": "^1.6.2",
|
"canvas": "^1.6.2",
|
||||||
"fs": "0.0.1-security",
|
"fs": "0.0.1-security",
|
||||||
"lodash": "^4.16.6"
|
"lodash": "^4.16.6",
|
||||||
|
"prompt": "^1.0.0",
|
||||||
|
"yargs": "^6.6.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue