Telegram Web, preconfigured for usage in I2P. http://web.telegram.i2p/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.1 KiB

11 years ago
<?
$in = file_get_contents('emoji.json');
$d = json_decode($in, true);
#
# build the catalog
#
$out = array();
foreach ($d as $row){
list($key) = explode('.', $row['image']);
$out[$key] = array(
calc_bytes($row['unified']),
$row['short_names'],
);
if ($row['text']) $out[$key][] = $row['text'];
}
$json = json_encode($out);
$json = str_replace('\\\\u', '\\u', $json);
echo $json;
#
# turn 0+ codepoints into a JS string
#
function calc_bytes($codes){
if (!$codes) return '';
$out = '';
$codes = explode('-', $codes);
foreach ($codes as $code){
$out .= format_codepoint($code);
}
return $out;
}
#
# turn a hex codepoint into a JS string
#
function format_codepoint($hex){
$code = hexdec($hex);
# simple codepoint
if ($code <= 0xFFFF) return "\\u".sprintf('%04X', $code);
# surrogate pair
$code -= 0x10000;
$byte1 = 0xD800 | (($code >> 10) & 0x3FF);
$byte2 = 0xDC00 | ($code & 0x3FF);
return "\\u".sprintf('%04X', $byte1)."\\u".sprintf('%04X', $byte2);
}