Telegram Web K with changes to work inside I2P
https://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.
155 lines
3.8 KiB
155 lines
3.8 KiB
let emoji = require('./emoji_pretty.json'); |
|
//let countries = require('./countries_pretty.json'); |
|
|
|
let countries = require('fs').readFileSync('./countries.dat').toString(); |
|
//console.log(countries); |
|
|
|
//console.log(emoji, countries); |
|
|
|
let formatted = emoji.filter(e => e.has_img_apple); |
|
|
|
/* formatted = formatted.map(e => { |
|
let {unified, name, short_names, category, sheet_x, sheet_y} = e; |
|
|
|
return { |
|
unified, |
|
//name, |
|
//short_names, |
|
category, |
|
sheet_x, |
|
sheet_y |
|
}; |
|
}); |
|
|
|
require('fs').writeFileSync('./emoji.json', JSON.stringify(formatted)); */ |
|
|
|
if(false) { |
|
let obj = {}; |
|
formatted.forEach(e => { |
|
let {unified, name, short_names, category, sheet_x, sheet_y, sort_order} = e; |
|
|
|
let emoji = unified.split('-') |
|
.reduce((prev, curr) => prev + String.fromCodePoint(parseInt(curr, 16)), ''); |
|
|
|
obj[/* unified */emoji] = { |
|
//unified, |
|
//name, |
|
//short_names, |
|
category, |
|
sheet_x, |
|
sheet_y, |
|
sort_order |
|
}; |
|
}); |
|
|
|
require('fs').writeFileSync('./emoji.json', JSON.stringify(obj)); |
|
} |
|
|
|
{ |
|
let categories = { |
|
"Smileys & Emotion": 1 |
|
, "People & Body": 1 |
|
, "Animals & Nature": 2 |
|
, "Food & Drink": 3 |
|
, "Travel & Places": 4 |
|
, "Activities": 5 |
|
, "Objects": 6 |
|
, "Symbols": 6 |
|
, "Flags": 7 |
|
, "Skin Tones": 8 |
|
}; |
|
|
|
let concatCategories = [['Objects', 'Symbols'], ['Smileys & Emotion', 'People & Body']]; |
|
let maxIndexes = {}; |
|
|
|
let maxObjectsIndex = -1; |
|
formatted.forEach(e => { |
|
if(concatCategories.findIndex(c => c[0] == e.category) === -1) return; |
|
|
|
if(!maxIndexes.hasOwnProperty(e.category)) maxIndexes[e.category] = 0; |
|
if(e.sort_order > maxIndexes[e.category]) { |
|
maxIndexes[e.category] = e.sort_order; |
|
} |
|
}); |
|
formatted.forEach(e => { |
|
let concatDetails = concatCategories.find(c => c[1] == e.category); |
|
if(!concatDetails) return; |
|
|
|
e.sort_order += maxIndexes[concatDetails[0]]; |
|
}); |
|
|
|
formatted.forEach(e => { |
|
if(e.skin_variations) { |
|
for(let i in e.skin_variations) { |
|
formatted.push(e.skin_variations[i]); |
|
} |
|
} |
|
}); |
|
|
|
let obj = {}; |
|
formatted.forEach(e => { |
|
let {unified, name, short_names, category, sheet_x, sheet_y, sort_order} = e; |
|
|
|
let emoji = unified/* .replace(/-FE0F/gi, '') */.split('-') |
|
.reduce((prev, curr) => prev + String.fromCodePoint(parseInt(curr, 16)), ''); |
|
|
|
let c = categories[category] === undefined ? 9 : categories[category]; |
|
//obj[emoji] = '' + c + sort_order; |
|
//obj[emoji] = +('' + (c * 1000 + sort_order)).replace(/0+/g, '0').replace(/^(\d)0(\d)/g, '$1$2'); |
|
obj[emoji] = e.sort_order !== undefined ? +('' + c + sort_order) : 0; |
|
}); |
|
|
|
console.log(obj); |
|
|
|
require('fs').writeFileSync('./emoji.json', JSON.stringify(obj)); |
|
} |
|
|
|
/* { |
|
let obj = {}; |
|
formatted.forEach(e => { |
|
let {unified, name, short_names, category, sheet_x, sheet_y} = e; |
|
|
|
|
|
let categories = ["Smileys & People", "Animals & Nature", "Food & Drink", |
|
"Travel & Places", "Activities", "Objects", "Symbols", "Flags", "Skin Tones"]; |
|
let categoryId = categories.findIndex(c => c == category); |
|
if(categoryId === -1) throw new Error(category); |
|
|
|
obj[unified] = [ |
|
sheet_x, |
|
sheet_y, |
|
categoryId |
|
]; |
|
}); |
|
|
|
require('fs').writeFileSync('./emoji.json', JSON.stringify(obj)); |
|
} */ |
|
|
|
{ |
|
let arr = []; |
|
/* countries.forEach(e => { |
|
let {name, code, phoneCode} = e; |
|
|
|
arr.push([name, code, phoneCode]); |
|
}); */ |
|
|
|
const lines = countries.split('\n'); |
|
const data2 = []; |
|
lines.forEach(x => { |
|
if(!x.trim()) return; |
|
const split = x.split(';'); |
|
const item = { |
|
phoneCode: split[0], |
|
code: split[1], |
|
name: split[2], |
|
pattern: split[3], |
|
//count: Number(split[4]), |
|
emoji: split[5] |
|
}; |
|
|
|
arr.push(item); |
|
//console.log(item); |
|
}); |
|
|
|
require('fs').writeFileSync('./countries.json', JSON.stringify(arr)); |
|
}
|
|
|