Skip to content

Commit

Permalink
Update how to generate emojis array
Browse files Browse the repository at this point in the history
  • Loading branch information
Kikobeats committed May 12, 2016
1 parent 5e939d6 commit b56bad9
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 50 deletions.
10 changes: 6 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,24 @@
"standard"
],
"devDependencies": {
"acho": "~2.5.3",
"acho": "~3.0.0",
"browserify": "~13.0.1",
"coffeeify": "~2.0.1",
"download": "~4.4.3",
"cheerio": "~0.20.0",
"got": ">=5 <6",
"gulp": "~3.9.1",
"gulp-header": "~1.8.1",
"gulp-uglify": "~1.5.3",
"gulp-util": "~3.0.7",
"standard": "latest",
"tmp": "0.0.28",
"vinyl-buffer": "~1.0.0",
"vinyl-source-stream": "~1.1.0"
},
"engines": {
"node": ">= 0.10"
},
"files": [
"index.js"
],
"scripts": {
"pretest": "standard update.js",
"test": "echo 'YOLO'"
Expand Down
70 changes: 24 additions & 46 deletions update.js
Original file line number Diff line number Diff line change
@@ -1,57 +1,35 @@
'use strict'

var fs = require('fs')
var tmp = require('tmp')
var cheerio = require('cheerio')
var Acho = require('acho')
var path = require('path')
var Download = require('download')
var logger = new Acho({
color: true
})
var got = require('got')
var fs = require('fs')
var log = Acho()

var fromCodePoint = function (codepoint) {
var code = typeof codepoint === 'string' ? parseInt(codepoint, 16) : codepoint
if (code < 0x10000) return String.fromCharCode(code)
code -= 0x10000
return String.fromCharCode(0xD800 + (code >> 10), 0xDC00 + (code & 0x3FF))
var CONST = {
URL: 'https://twitter.github.io/twemoji/2/test/preview.html'
}

tmp.dir(function _tempDirCreated (err, tmpFolder, cleanup) {
if (err) return logger.error(err)

logger.info('Created temporal folder in ' + tmpFolder)
logger.info('Downloading file...')

new Download({
mode: '755',
extract: true
})
.get('https://github.com/twitter/twemoji/archive/gh-pages.zip')
.dest(tmpFolder)
.run(function (err) {
if (err) return logger.error(err)
logger.info('File downloaded and extracted succesful.')

var folder = fs.readdirSync(tmpFolder)[0]
var emojiDirectory = path.resolve(tmpFolder, folder, 'assets')
function exitOnError (err) {
log.error(err)
process.exit(err.code || 1)
}

logger.info('Read the directory ' + emojiDirectory)
function stringify (val) {
return JSON.stringify(val, null, 2)
}

fs.readdir(emojiDirectory, function (err, files) {
logger.info('Generating emoji keywords')
if (err) return logger.error(err)
var result = files.map(function (file) {
file = file.split('.')
return fromCodePoint(file[0])
})
got(CONST.URL, function (err, data, res) {
if (err) return exitOnError(err)
var $ = cheerio.load(data)

var data = JSON.stringify(result, null, 2)
fs.writeFile('emojis.json', data, function (err) {
if (err) throw err
logger.success('File saved!')
})
var emojis = $('li').map(function (i, el) {
var emoji = $(this).text()
log.debug('detected', emoji)
return emoji
}).get()

// cleanup(); disable to prevent remove other tmp files of the system.
})
})
log.info('total', emojis.length)
fs.writeFileSync('index.js', 'module.exports = ' + stringify(emojis), 'utf8')
log.info('saved at index.js')
})

0 comments on commit b56bad9

Please sign in to comment.