mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-04-30 23:34:09 +02:00
Final optimizations for emoji keyboard
This commit is contained in:
parent
fd969e2d55
commit
ec1cb5dc5f
Resources/Plugins/emoji-keyboard
@ -3,6 +3,7 @@ Emoji keyboard
|
|||||||
|
|
||||||
[description]
|
[description]
|
||||||
- Adds an emoji keyboard when writing tweets
|
- Adds an emoji keyboard when writing tweets
|
||||||
|
- Emoji list provided by http://unicode.org/emoji/charts/emoji-ordering.html
|
||||||
|
|
||||||
[author]
|
[author]
|
||||||
chylex
|
chylex
|
||||||
|
@ -102,13 +102,10 @@ ready(){
|
|||||||
};
|
};
|
||||||
|
|
||||||
$TDP.readFileRoot(this.$token, "emoji-ordering.txt").then(contents => {
|
$TDP.readFileRoot(this.$token, "emoji-ordering.txt").then(contents => {
|
||||||
let generated = [
|
let generated = [];
|
||||||
"<p style='font-size:13px;color:#444;margin:4px;text-align:center'>Please, note that most emoji will not show up properly in the text box above, but they will display in the tweet.</p>"
|
|
||||||
];
|
|
||||||
|
|
||||||
let addDeclaration = decl => {
|
let addDeclaration = decl => {
|
||||||
let emoji = decl.split(" ").map(pt => convUnicode(parseInt(pt, 16))).join("");
|
generated.push(decl.split(" ").map(pt => convUnicode(parseInt(pt, 16))).join(""));
|
||||||
generated.push(TD.util.cleanWithEmoji(emoji));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let skinTones = [
|
let skinTones = [
|
||||||
@ -116,29 +113,29 @@ ready(){
|
|||||||
];
|
];
|
||||||
|
|
||||||
for(let line of contents.split("\n")){
|
for(let line of contents.split("\n")){
|
||||||
if (line[0] === '#'){
|
if (line[0] === '@'){
|
||||||
continue;
|
generated.push("___");
|
||||||
}
|
|
||||||
else if (line[0] === '@'){
|
|
||||||
generated.push("<div class='separator'></div>");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
let decl = line.substring(0, line.indexOf(";"));
|
|
||||||
let skinIndex = decl.indexOf('$');
|
|
||||||
|
|
||||||
if (skinIndex !== -1){
|
|
||||||
let declPre = decl.substring(0, skinIndex);
|
|
||||||
let declPost = decl.substring(skinIndex+1);
|
|
||||||
|
|
||||||
skinTones.map(skinTone => declPre+skinTone+declPost).forEach(addDeclaration);
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
addDeclaration(decl);
|
let decl = line.slice(0, line.indexOf(";"));
|
||||||
|
let skinIndex = decl.indexOf('$');
|
||||||
|
|
||||||
|
if (skinIndex !== -1){
|
||||||
|
let declPre = decl.slice(0, skinIndex);
|
||||||
|
let declPost = decl.slice(skinIndex+1);
|
||||||
|
|
||||||
|
for(let newDecl of skinTones.map(skinTone => declPre+skinTone+declPost)){
|
||||||
|
addDeclaration(newDecl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
addDeclaration(decl);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.emojiHTML = generated.join("");
|
let start = "<p style='font-size:13px;color:#444;margin:4px;text-align:center'>Please, note that most emoji will not show up properly in the text box above, but they will display in the tweet.</p>";
|
||||||
|
this.emojiHTML = start+TD.util.cleanWithEmoji(generated.join("")).replace("___", "<div class='separator'></div>");
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
$TD.alert("error", "Problem loading emoji keyboard: "+err.message);
|
$TD.alert("error", "Problem loading emoji keyboard: "+err.message);
|
||||||
});
|
});
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
# Machine-readable version of the emoji ordering for v4.0 (corresponding to CLDR).
|
|
||||||
# Note that the skin-tone modifiers are primary-ignorable in the CLDR collation rules.
|
|
||||||
# For a listing with the groups and subgroups, and the non-qualified sequences,
|
|
||||||
# see http://unicode.org/Public/emoji/4.0/emoji-test.txt
|
|
||||||
1F600; 😀 grinning face
|
1F600; 😀 grinning face
|
||||||
1F601; 😁 grinning face with smiling eyes
|
1F601; 😁 grinning face with smiling eyes
|
||||||
1F602; 😂 face with tears of joy
|
1F602; 😂 face with tears of joy
|
||||||
|
Loading…
Reference in New Issue
Block a user