Add GitHub emojis support (#158)
This commit is contained in:
@@ -57,6 +57,8 @@
|
||||
let rendered = await ejs.render(image, {...data, s:imports.s, f:imports.format, style, fonts}, {views, async:true})
|
||||
if (q["config.twemoji"])
|
||||
rendered = await imports.svg.twemojis(rendered)
|
||||
if (q["config.gemoji"])
|
||||
rendered = await imports.svg.gemojis(rendered, {rest})
|
||||
const {resized, mime} = await imports.svg.resize(rendered, {paddings:q["config.padding"] || conf.settings.padding, convert})
|
||||
rendered = resized
|
||||
|
||||
|
||||
@@ -167,6 +167,7 @@
|
||||
/**Render twemojis */
|
||||
async twemojis(rendered) {
|
||||
//Load emojis
|
||||
console.debug("metrics/svg/twemojis > rendering twemojis")
|
||||
const emojis = new Map()
|
||||
for (const {text:emoji, url} of twemojis.parse(rendered)) {
|
||||
if (!emojis.has(emoji))
|
||||
@@ -177,6 +178,20 @@
|
||||
rendered = rendered.replace(new RegExp(emoji, "g"), twemoji)
|
||||
return rendered
|
||||
},
|
||||
/**Render github emojis */
|
||||
async gemojis(rendered, {rest}) {
|
||||
//Load gemojis
|
||||
console.debug("metrics/svg/gemojis > rendering gemojis")
|
||||
const emojis = new Map()
|
||||
for (const [emoji, url] of Object.entries((await rest.emojis.get()).data).map(([key, value]) => [`:${key}:`, value])) {
|
||||
if (((!emojis.has(emoji)))&&(new RegExp(emoji, "g").test(rendered)))
|
||||
emojis.set(emoji, `<img class="gemoji" src="data:image/png;base64,${await imgb64(url)}" height="16" width="16" alt="">`)
|
||||
}
|
||||
//Apply replacements
|
||||
for (const [emoji, gemoji] of emojis)
|
||||
rendered = rendered.replace(new RegExp(emoji, "g"), gemoji)
|
||||
return rendered
|
||||
},
|
||||
}
|
||||
|
||||
/**Wait */
|
||||
|
||||
1814
source/app/mocks/api/github/rest/emojis/get.mjs
Normal file
1814
source/app/mocks/api/github/rest/emojis/get.mjs
Normal file
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,7 @@
|
||||
console.debug("metrics/compute/mocks > mocking rest api result > rest.repos.getByUsername")
|
||||
return ({
|
||||
status:200,
|
||||
url:`'https://api.github.com/users/${username}/`,
|
||||
url:`https://api.github.com/users/${username}/`,
|
||||
headers:{
|
||||
server:"GitHub.com",
|
||||
status:"200 OK",
|
||||
|
||||
Reference in New Issue
Block a user