mirror of
https://github.com/zulip/zulip.git
synced 2025-11-11 09:27:43 +00:00
emoji: Update emoji-datasource packages.
This commit updates the `emoji-datasource` packages to version 4.0.4.
This update brings following changes to emoji infra:
1: Fix for the bleeding sprite sheets.
2: The category of some emojis has been changed. Categorywise breakup of
net gain or loss is as follows:
Travel & Places: 58 (gain)
Symbols: 47 (loss)
Smileys & People: 52 (gain)
Objects: 11 (loss)
Food & Drink: 3 (gain)
Animals and Nature: 46 (gain)
Activities: 9 (loss)
3: There were some changes in the image farm of the package which were
breaking our old emoji farm. I fixed them by modifying the remapped
emoji map.
Fixes: #8235.
This commit is contained in:
committed by
Tim Abbott
parent
6c28a60db0
commit
bf70955c0c
@@ -24,13 +24,13 @@ run_test('initialize', () => {
|
|||||||
check_emojis(false);
|
check_emojis(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-hashtag', 228);
|
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-car', 177);
|
||||||
|
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-hashtag', 181);
|
||||||
|
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-smile-o', 260);
|
||||||
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-thumbs-o-up', 6);
|
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-thumbs-o-up', 6);
|
||||||
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-car', 119);
|
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-lightbulb-o', 159);
|
||||||
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-smile-o', 208);
|
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-cutlery', 89);
|
||||||
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-lightbulb-o', 170);
|
|
||||||
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-leaf', 153);
|
|
||||||
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-cutlery', 86);
|
|
||||||
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-cog', 1);
|
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-cog', 1);
|
||||||
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-soccer-ball-o', 67);
|
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-leaf', 107);
|
||||||
|
assert_emoji_category(complete_emoji_catalog.pop(), 'fa-soccer-ball-o', 58);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -11,10 +11,11 @@
|
|||||||
"clipboard": "2.0.1",
|
"clipboard": "2.0.1",
|
||||||
"css-hot-loader": "1.3.9",
|
"css-hot-loader": "1.3.9",
|
||||||
"css-loader": "0.28.11",
|
"css-loader": "0.28.11",
|
||||||
"emoji-datasource-apple": "3.0.0",
|
"clipboard": "2.0.0",
|
||||||
"emoji-datasource-emojione": "3.0.0",
|
"emoji-datasource-apple": "4.0.4",
|
||||||
"emoji-datasource-google": "3.0.0",
|
"emoji-datasource-emojione": "4.0.4",
|
||||||
"emoji-datasource-twitter": "3.0.0",
|
"emoji-datasource-google": "4.0.4",
|
||||||
|
"emoji-datasource-twitter": "4.0.4",
|
||||||
"error-stack-parser": "2.0.1",
|
"error-stack-parser": "2.0.1",
|
||||||
"expose-loader": "0.7.5",
|
"expose-loader": "0.7.5",
|
||||||
"file-loader": "1.1.11",
|
"file-loader": "1.1.11",
|
||||||
|
|||||||
@@ -34,11 +34,11 @@ var section_head_offsets = [];
|
|||||||
function get_all_emoji_categories() {
|
function get_all_emoji_categories() {
|
||||||
return [
|
return [
|
||||||
{ name: "Popular", icon: "fa-thumbs-o-up" },
|
{ name: "Popular", icon: "fa-thumbs-o-up" },
|
||||||
{ name: "People", icon: "fa-smile-o" },
|
{ name: "Smileys & People", icon: "fa-smile-o" },
|
||||||
{ name: "Nature", icon: "fa-leaf" },
|
{ name: "Animals & Nature", icon: "fa-leaf" },
|
||||||
{ name: "Foods", icon: "fa-cutlery" },
|
{ name: "Food & Drink", icon: "fa-cutlery" },
|
||||||
{ name: "Activity", icon: "fa-soccer-ball-o" },
|
{ name: "Activities", icon: "fa-soccer-ball-o" },
|
||||||
{ name: "Places", icon: "fa-car" },
|
{ name: "Travel & Places", icon: "fa-car" },
|
||||||
{ name: "Objects", icon: "fa-lightbulb-o" },
|
{ name: "Objects", icon: "fa-lightbulb-o" },
|
||||||
{ name: "Symbols", icon: "fa-hashtag" },
|
{ name: "Symbols", icon: "fa-hashtag" },
|
||||||
{ name: "Custom", icon: "fa-cog" },
|
{ name: "Custom", icon: "fa-cog" },
|
||||||
|
|||||||
@@ -48,9 +48,9 @@ span.emoji
|
|||||||
{
|
{
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-image: url('sheet_%(emojiset)s_64.png');
|
background-image: url('sheet_%(emojiset)s_64.png');
|
||||||
-webkit-background-size: 4900%%;
|
-webkit-background-size: 5200%%;
|
||||||
-moz-background-size: 4900%%;
|
-moz-background-size: 5200%%;
|
||||||
background-size: 4900%%;
|
background-size: 5200%%;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
|
||||||
/* Hide the text. */
|
/* Hide the text. */
|
||||||
@@ -111,8 +111,8 @@ def generate_sprite_css_files(cache_path: str, emoji_data: List[Dict[str, Any]])
|
|||||||
# those google emoji (in case anyone used them).
|
# those google emoji (in case anyone used them).
|
||||||
emoji_positions += EMOJI_POS_INFO_TEMPLATE % {
|
emoji_positions += EMOJI_POS_INFO_TEMPLATE % {
|
||||||
'codepoint': get_emoji_code(emoji),
|
'codepoint': get_emoji_code(emoji),
|
||||||
'pos_x': (emoji["sheet_x"] * 100) / 48,
|
'pos_x': (emoji["sheet_x"] * 100) / 51,
|
||||||
'pos_y': (emoji["sheet_y"] * 100) / 48,
|
'pos_y': (emoji["sheet_y"] * 100) / 51,
|
||||||
}
|
}
|
||||||
|
|
||||||
for emojiset in EMOJISETS:
|
for emojiset in EMOJISETS:
|
||||||
@@ -144,7 +144,9 @@ def setup_emoji_farm(cache_path: str, emoji_data: List[Dict[str, Any]]) -> None:
|
|||||||
|
|
||||||
generate_sprite_css_files(cache_path, emoji_data)
|
generate_sprite_css_files(cache_path, emoji_data)
|
||||||
|
|
||||||
def setup_old_emoji_farm(cache_path: str, emoji_map: Dict[str, str]) -> None:
|
def setup_old_emoji_farm(cache_path: str,
|
||||||
|
emoji_map: Dict[str, str],
|
||||||
|
emoji_data: List[Dict[str, Any]]) -> None:
|
||||||
# Code for setting up old emoji farm.
|
# Code for setting up old emoji farm.
|
||||||
os.chdir(cache_path)
|
os.chdir(cache_path)
|
||||||
emoji_cache_path = os.path.join(cache_path, 'images', 'emoji')
|
emoji_cache_path = os.path.join(cache_path, 'images', 'emoji')
|
||||||
@@ -163,7 +165,7 @@ def setup_old_emoji_farm(cache_path: str, emoji_map: Dict[str, str]) -> None:
|
|||||||
|
|
||||||
# `remapped_emojis` is a mapping which helps in mapping `emoji_map`
|
# `remapped_emojis` is a mapping which helps in mapping `emoji_map`
|
||||||
# codepoints to corresponding images in new emoji farm.
|
# codepoints to corresponding images in new emoji farm.
|
||||||
remapped_emojis = get_remapped_emojis_map()
|
remapped_emojis = get_remapped_emojis_map(emoji_data)
|
||||||
|
|
||||||
for name, codepoint in emoji_map.items():
|
for name, codepoint in emoji_map.items():
|
||||||
mapped_codepoint = remapped_emojis.get(codepoint, codepoint)
|
mapped_codepoint = remapped_emojis.get(codepoint, codepoint)
|
||||||
@@ -222,7 +224,7 @@ def dump_emojis(cache_path: str) -> None:
|
|||||||
# Setup emoji farms.
|
# Setup emoji farms.
|
||||||
run(['rm', '-rf', cache_path])
|
run(['rm', '-rf', cache_path])
|
||||||
setup_emoji_farm(cache_path, emoji_data)
|
setup_emoji_farm(cache_path, emoji_data)
|
||||||
setup_old_emoji_farm(cache_path, emoji_map)
|
setup_old_emoji_farm(cache_path, emoji_map, emoji_data)
|
||||||
|
|
||||||
# Generate various map files.
|
# Generate various map files.
|
||||||
generate_map_files(cache_path, emoji_catalog)
|
generate_map_files(cache_path, emoji_catalog)
|
||||||
|
|||||||
@@ -12,19 +12,27 @@ EMOJISETS = ['apple', 'emojione', 'google', 'twitter']
|
|||||||
# farm. `remapped_emojis` is a map that contains a mapping of their name in the old
|
# farm. `remapped_emojis` is a map that contains a mapping of their name in the old
|
||||||
# emoji farm to their name in the new emoji farm.
|
# emoji farm to their name in the new emoji farm.
|
||||||
remapped_emojis = {
|
remapped_emojis = {
|
||||||
"0023": "0023-20e3", # Hash
|
"0023": "0023-fe0f-20e3", # Hash
|
||||||
"0030": "0030-20e3", # Zero
|
"0030": "0030-fe0f-20e3", # Zero
|
||||||
"0031": "0031-20e3", # One
|
"0031": "0031-fe0f-20e3", # One
|
||||||
"0032": "0032-20e3", # Two
|
"0032": "0032-fe0f-20e3", # Two
|
||||||
"0033": "0033-20e3", # Three
|
"0033": "0033-fe0f-20e3", # Three
|
||||||
"0034": "0034-20e3", # Four
|
"0034": "0034-fe0f-20e3", # Four
|
||||||
"0035": "0035-20e3", # Five
|
"0035": "0035-fe0f-20e3", # Five
|
||||||
"0036": "0036-20e3", # Six
|
"0036": "0036-fe0f-20e3", # Six
|
||||||
"0037": "0037-20e3", # Seven
|
"0037": "0037-fe0f-20e3", # Seven
|
||||||
"0038": "0038-20e3", # Eight
|
"0038": "0038-fe0f-20e3", # Eight
|
||||||
"0039": "0039-20e3", # Nine
|
"0039": "0039-fe0f-20e3", # Nine
|
||||||
"1f48f": "1f469-200d-2764-200d-1f48b-200d-1f468", # Couple kiss
|
"1f1e8": "1f1e8-1f1f3", # cn
|
||||||
"1f491": "1f469-200d-2764-200d-1f468", # Couple with heart
|
"1f1e9": "1f1e9-1f1ea", # de
|
||||||
|
"1f1ea": "1f1ea-1f1f8", # es
|
||||||
|
"1f1eb": "1f1eb-1f1f7", # fr
|
||||||
|
"1f1ec": "1f1ec-1f1e7", # gb/us
|
||||||
|
"1f1ee": "1f1ee-1f1f9", # it
|
||||||
|
"1f1ef": "1f1ef-1f1f5", # jp
|
||||||
|
"1f1f0": "1f1f0-1f1f7", # kr
|
||||||
|
"1f1f7": "1f1f7-1f1fa", # ru
|
||||||
|
"1f1fa": "1f1fa-1f1f8", # us
|
||||||
}
|
}
|
||||||
|
|
||||||
def emoji_names_for_picker(emoji_name_maps: Dict[str, Dict[str, Any]]) -> List[str]:
|
def emoji_names_for_picker(emoji_name_maps: Dict[str, Dict[str, Any]]) -> List[str]:
|
||||||
@@ -36,7 +44,15 @@ def emoji_names_for_picker(emoji_name_maps: Dict[str, Dict[str, Any]]) -> List[s
|
|||||||
return sorted(emoji_names)
|
return sorted(emoji_names)
|
||||||
|
|
||||||
def get_emoji_code(emoji_dict: Dict[str, Any]) -> str:
|
def get_emoji_code(emoji_dict: Dict[str, Any]) -> str:
|
||||||
emoji_code = emoji_dict["unified"]
|
# Starting from version 4.0.0, `emoji_datasource` package has started to
|
||||||
|
# add an emoji presentation variation selector for certain emojis which
|
||||||
|
# have defined variation sequences. Since in informal environments(like
|
||||||
|
# texting and chat), it is more appropriate for an emoji to have a colorful
|
||||||
|
# display so until emoji characters have a text presentation selector, it
|
||||||
|
# should have a colorful display. Hence we can continue using emoji characters
|
||||||
|
# without appending emoji presentation selector.
|
||||||
|
# (http://unicode.org/reports/tr51/index.html#Presentation_Style)
|
||||||
|
emoji_code = emoji_dict["non_qualified"] or emoji_dict["unified"]
|
||||||
return emoji_code.lower()
|
return emoji_code.lower()
|
||||||
|
|
||||||
# Returns a dict from categories to list of codepoints. The list of
|
# Returns a dict from categories to list of codepoints. The list of
|
||||||
@@ -86,5 +102,12 @@ def generate_name_to_codepoint_map(emoji_name_maps: Dict[str, Dict[str, Any]]) -
|
|||||||
name_to_codepoint[alias] = emoji_code
|
name_to_codepoint[alias] = emoji_code
|
||||||
return name_to_codepoint
|
return name_to_codepoint
|
||||||
|
|
||||||
def get_remapped_emojis_map() -> Dict[str, str]:
|
def get_remapped_emojis_map(emoji_data: List[Dict[str, Any]]) -> Dict[str, str]:
|
||||||
|
# Extend `remapped_emojis` to include emojis whose filename from version 4
|
||||||
|
# have a emoji presentation selector(FE0F) appended to them.
|
||||||
|
for emoji_dict in emoji_data:
|
||||||
|
if emoji_dict['non_qualified'] is not None:
|
||||||
|
unified_codepoint = emoji_dict['unified'].lower()
|
||||||
|
non_qualified_codepoint = emoji_dict['non_qualified'].lower()
|
||||||
|
remapped_emojis[non_qualified_codepoint] = unified_codepoint
|
||||||
return remapped_emojis
|
return remapped_emojis
|
||||||
|
|||||||
@@ -30,11 +30,11 @@ column_names = [
|
|||||||
'explanation',
|
'explanation',
|
||||||
]
|
]
|
||||||
category_index = {
|
category_index = {
|
||||||
'People': '1',
|
'Smileys & People': '1',
|
||||||
'Nature': '2',
|
'Animals & Nature': '2',
|
||||||
'Foods': '3',
|
'Food & Drink': '3',
|
||||||
'Activity': '4',
|
'Activities': '4',
|
||||||
'Places': '5',
|
'Travel & Places': '5',
|
||||||
'Objects': '6',
|
'Objects': '6',
|
||||||
'Symbols': '7',
|
'Symbols': '7',
|
||||||
'Flags': '8',
|
'Flags': '8',
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ ZULIP_VERSION = "1.8.1+git"
|
|||||||
# Typically, adding a dependency only requires a minor version bump, and
|
# Typically, adding a dependency only requires a minor version bump, and
|
||||||
# removing a dependency requires a major version bump.
|
# removing a dependency requires a major version bump.
|
||||||
|
|
||||||
PROVISION_VERSION = '23.2'
|
PROVISION_VERSION = '24.0'
|
||||||
|
|||||||
30
yarn.lock
30
yarn.lock
@@ -1895,9 +1895,9 @@ cli-width@^2.0.0:
|
|||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
|
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
|
||||||
|
|
||||||
clipboard@2.0.1:
|
clipboard@2.0.0:
|
||||||
version "2.0.1"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.1.tgz#a12481e1c13d8a50f5f036b0560fe5d16d74e46a"
|
resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.0.tgz#4661dc972fb72a4c4770b8db78aa9b1caef52b50"
|
||||||
dependencies:
|
dependencies:
|
||||||
good-listener "^1.2.2"
|
good-listener "^1.2.2"
|
||||||
select "^1.1.2"
|
select "^1.1.2"
|
||||||
@@ -2948,21 +2948,21 @@ elliptic@^6.0.0:
|
|||||||
minimalistic-assert "^1.0.0"
|
minimalistic-assert "^1.0.0"
|
||||||
minimalistic-crypto-utils "^1.0.0"
|
minimalistic-crypto-utils "^1.0.0"
|
||||||
|
|
||||||
emoji-datasource-apple@3.0.0:
|
emoji-datasource-apple@4.0.4:
|
||||||
version "3.0.0"
|
version "4.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/emoji-datasource-apple/-/emoji-datasource-apple-3.0.0.tgz#1e5eb0443d0a9e20ec3ed01e77114ce601b19cec"
|
resolved "https://registry.yarnpkg.com/emoji-datasource-apple/-/emoji-datasource-apple-4.0.4.tgz#586048cf338623c1d64f41c0642cfb3f19552503"
|
||||||
|
|
||||||
emoji-datasource-emojione@3.0.0:
|
emoji-datasource-emojione@4.0.4:
|
||||||
version "3.0.0"
|
version "4.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/emoji-datasource-emojione/-/emoji-datasource-emojione-3.0.0.tgz#5d5ef31d1406e4f324baef3f5932a30c7733a651"
|
resolved "https://registry.yarnpkg.com/emoji-datasource-emojione/-/emoji-datasource-emojione-4.0.4.tgz#60fc4be24a70289cc4225752e38f1d700c95a160"
|
||||||
|
|
||||||
emoji-datasource-google@3.0.0:
|
emoji-datasource-google@4.0.4:
|
||||||
version "3.0.0"
|
version "4.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/emoji-datasource-google/-/emoji-datasource-google-3.0.0.tgz#d6f77b56385338e10667d2b150dbe9f9b5a4e921"
|
resolved "https://registry.yarnpkg.com/emoji-datasource-google/-/emoji-datasource-google-4.0.4.tgz#87392c07255e172e578107a9f1a3b6755907eb01"
|
||||||
|
|
||||||
emoji-datasource-twitter@3.0.0:
|
emoji-datasource-twitter@4.0.4:
|
||||||
version "3.0.0"
|
version "4.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/emoji-datasource-twitter/-/emoji-datasource-twitter-3.0.0.tgz#4bbe192368740c72c83c4924c2ef497adec1a431"
|
resolved "https://registry.yarnpkg.com/emoji-datasource-twitter/-/emoji-datasource-twitter-4.0.4.tgz#83bd4bd719205d41d2da1d7f346a093db429f036"
|
||||||
|
|
||||||
emojis-list@^2.0.0:
|
emojis-list@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user