-
-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathgenerate-emojis-js.php
56 lines (42 loc) · 1.69 KB
/
generate-emojis-js.php
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
<?php
require_once './vendor/autoload.php';
// Replace with an access key obtained from https://emoji-api.com/
$accessKey = '';
$ch = curl_init('https://emoji-api.com/emojis?access_key='.$accessKey);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response);
$emojis = collect();
foreach ($data as $emoji) {
$keys = [$emoji->unicodeName];
if ($emoji->group) {
$keys[] = str_replace('-', ' ', $emoji->group);
}
if ($emoji->subGroup) {
$keys[] = str_replace('-', ' ', $emoji->subGroup);
}
if (! $emojis->has($emoji->character)) {
$emojis->put($emoji->character, [
'emoji' => $emoji->character,
'keywords' => implode(',', $keys),
'group' => $emoji->group,
'name' => ucwords($emoji->unicodeName),
]);
}
}
$groups = [
['emoji' => '😃', 'category' => 'Smileys', 'group' => 'smileys-emotion'],
['emoji' => '🐻', 'category' => 'Animals & Nature', 'group' => 'animals-nature'],
['emoji' => '🍔', 'category' => 'Food & Drink', 'group' => 'food-drink'],
['emoji' => '⚽', 'category' => 'Activity', 'group' => 'activities'],
['emoji' => '🚀', 'category' => 'Travel & Places', 'group' => 'travel-places'],
['emoji' => '💡', 'category' => 'Objects', 'group' => 'objects'],
['emoji' => '💕', 'category' => 'Symbols', 'group' => 'symbols'],
['emoji' => '🎌', 'category' => 'Flags', 'group' => 'flags'],
];
$content = [
'categories' => $groups,
'symbols' => $emojis->values(),
];
$jsFile = 'window.EMOJIS = '.json_encode($content);
file_put_contents(dirname(__FILE__).'/resources/js/emojis.js', $jsFile);