-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
57 lines (53 loc) · 1.28 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
const fixImageWidth = require('./image.generator');
const generateHost = require('./host.generator');
const generateTimestamp = require('./timestamp.generator');
const truncateText = require('./text.generator');
const {
closeBrowser,
generateColor,
openBrowser
} = require('./color.generator');
const { hosts, config } = require('../tuners');
const generateEmbed = async e => {
const title = truncateText(e.title, 256);
const description = truncateText(e.description, 2048);
const { host, url } = e;
const author = {
name: truncateText(hosts[host], 256),
url: await generateHost(host),
icon_url: `${config.ICONS_URL}${host.replace(/[./]/g, '_')}.png`
};
const color = await generateColor([
url,
e.image,
e.thumbnail,
author.icon_url
]);
const { timestamp } = generateTimestamp(e);
const image = await fixImageWidth(e.image);
const thumbnail =
description &&
description.length > 1 &&
e.thumbnail &&
!e.thumbnail.toLowerCase().includes('placeholder')
? { url: e.thumbnail }
: null;
// create embed
return {
title,
description,
url,
color,
author,
timestamp,
image,
thumbnail
};
};
module.exports = {
closeBrowser,
fixImageWidth,
generateEmbed,
generateTimestamp,
openBrowser
};