From 45c5fd2172d78b705fa57541a13f723ef3b64d25 Mon Sep 17 00:00:00 2001 From: Penar Musaraj Date: Fri, 26 Feb 2021 07:44:52 -0500 Subject: [PATCH] DEV: Remove JoyPixels emoji option (#12197) - removes the option from site settings - deletes the site setting on existing sites that have it - marks posts using emojis as requiring a rebake Note that the actual image files are not removed here, the plan is to remove them in a few weeks/months (when presumably the rebaking of old posts has been completed). --- .../discourse/tests/acceptance/emoji-test.js | 4 ++-- .../discourse/tests/acceptance/topic-test.js | 6 +++--- .../discourse/tests/helpers/site-settings.js | 2 +- .../discourse/tests/unit/lib/emoji-test.js | 20 +++++++++---------- .../tests/unit/lib/pretty-text-test.js | 10 +++++----- .../discourse/tests/unit/models/topic-test.js | 4 ++-- app/models/emoji_set_site_setting.rb | 1 - config/locales/client.en.yml | 1 - ...e_emoji_one_from_emoji_set_site_setting.rb | 15 ++++++++++++++ lib/tasks/emoji.rake | 4 +--- .../lib/details-cooked-test.js.es6 | 2 +- spec/components/email/styles_spec.rb | 4 ++-- 12 files changed, 42 insertions(+), 31 deletions(-) create mode 100644 db/migrate/20210224162050_remove_emoji_one_from_emoji_set_site_setting.rb diff --git a/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js b/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js index 67c1dfc7b93..9d5a8cd7bc7 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/emoji-test.js @@ -13,7 +13,7 @@ acceptance("Emoji", function (needs) { await fillIn(".d-editor-input", "this is an emoji :blonde_woman:"); assert.equal( queryAll(".d-editor-preview:visible").html().trim(), - `

this is an emoji :blonde_woman:

` + `

this is an emoji :blonde_woman:

` ); }); @@ -24,7 +24,7 @@ acceptance("Emoji", function (needs) { await fillIn(".d-editor-input", "this is an emoji :blonde_woman:t5:"); assert.equal( queryAll(".d-editor-preview:visible").html().trim(), - `

this is an emoji :blonde_woman:t5:

` + `

this is an emoji :blonde_woman:t5:

` ); }); }); diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-test.js index 0b54c403f38..a48537aa51c 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-test.js @@ -181,7 +181,7 @@ acceptance("Topic", function (needs) { assert.equal( queryAll(".fancy-title").html().trim(), - `emojis title bike blonde_woman:t6`, + `emojis title bike blonde_woman:t6`, "it displays the new title with emojis" ); }); @@ -196,7 +196,7 @@ acceptance("Topic", function (needs) { assert.equal( queryAll(".fancy-title").html().trim(), - `emojis title man_farmerpray`, + `emojis title man_farmerpray`, "it displays the new title with escaped unicode emojis" ); }); @@ -212,7 +212,7 @@ acceptance("Topic", function (needs) { assert.equal( queryAll(".fancy-title").html().trim(), - `Testslightly_smiling_faceTitle`, + `Testslightly_smiling_faceTitle`, "it displays the new title with escaped unicode emojis" ); }); diff --git a/app/assets/javascripts/discourse/tests/helpers/site-settings.js b/app/assets/javascripts/discourse/tests/helpers/site-settings.js index 43e60820dd1..74de61bff18 100644 --- a/app/assets/javascripts/discourse/tests/helpers/site-settings.js +++ b/app/assets/javascripts/discourse/tests/helpers/site-settings.js @@ -89,7 +89,7 @@ const ORIGINAL_SETTINGS = { "apache|bash|cs|cpp|css|coffeescript|diff|xml|http|ini|json|java|javascript|makefile|markdown|nginx|objectivec|ruby|perl|php|python|sql|handlebars", enable_emoji: true, enable_emoji_shortcuts: true, - emoji_set: "emoji_one", + emoji_set: "google_classic", enable_emoji_shortcuts: true, enable_inline_emoji_translation: false, desktop_category_page_style: "categories_and_latest_topics", diff --git a/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js b/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js index 22d24503b8e..8c75f8efb84 100644 --- a/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js +++ b/app/assets/javascripts/discourse/tests/unit/lib/emoji-test.js @@ -32,12 +32,12 @@ discourseModule("Unit | Utility | emoji", function () { ); testUnescape( "emoticons :)", - `emoticons slight_smile`, + `emoticons slight_smile`, "emoticons are still supported" ); testUnescape( "With emoji :O: :frog: :smile:", - `With emoji O frog smile`, + `With emoji O frog smile`, "title with emoji" ); testUnescape( @@ -47,27 +47,27 @@ discourseModule("Unit | Utility | emoji", function () { ); testUnescape( "(:frog:) :)", - `(frog) slight_smile`, + `(frog) slight_smile`, "non-word characters allowed next to emoji" ); testUnescape( ":smile: hi", - `smile hi`, + `smile hi`, "start of line" ); testUnescape( "hi :smile:", - `hi smile`, + `hi smile`, "end of line" ); testUnescape( "hi :blonde_woman:t4:", - `hi blonde_woman:t4`, + `hi blonde_woman:t4`, "support for skin tones" ); testUnescape( "hi :blonde_woman:t4: :blonde_man:t6:", - `hi blonde_woman:t4 blonde_man:t6`, + `hi blonde_woman:t4 blonde_man:t6`, "support for multiple skin tones" ); testUnescape( @@ -95,7 +95,7 @@ discourseModule("Unit | Utility | emoji", function () { ); testUnescape( "Hello 😊 World", - `Hello blush World`, + `Hello blush World`, "emoji from Unicode emoji" ); testUnescape( @@ -108,7 +108,7 @@ discourseModule("Unit | Utility | emoji", function () { ); testUnescape( "Hello😊World", - `HelloblushWorld`, + `HelloblushWorld`, "emoji from Unicode emoji when inline translation enabled", { enable_inline_emoji_translation: true, @@ -124,7 +124,7 @@ discourseModule("Unit | Utility | emoji", function () { ); testUnescape( "hi:smile:", - `hismile`, + `hismile`, "emoji when inline translation enabled", { enable_inline_emoji_translation: true } ); diff --git a/app/assets/javascripts/discourse/tests/unit/lib/pretty-text-test.js b/app/assets/javascripts/discourse/tests/unit/lib/pretty-text-test.js index c584911dcee..a00ad68b541 100644 --- a/app/assets/javascripts/discourse/tests/unit/lib/pretty-text-test.js +++ b/app/assets/javascripts/discourse/tests/unit/lib/pretty-text-test.js @@ -16,7 +16,7 @@ const rawOpts = { enable_emoji: true, enable_emoji_shortcuts: true, enable_mentions: true, - emoji_set: "emoji_one", + emoji_set: "google_classic", highlighted_languages: "json|ruby|javascript", default_code_lang: "auto", enable_markdown_linkify: true, @@ -1485,15 +1485,15 @@ var bar = 'bar'; test("emoji", function (assert) { assert.cooked( ":smile:", - `

:smile:

` + `

:smile:

` ); assert.cooked( ":(", - `

:frowning:

` + `

:frowning:

` ); assert.cooked( "8-)", - `

:sunglasses:

` + `

:sunglasses:

` ); }); @@ -1507,7 +1507,7 @@ var bar = 'bar'; assert.cookedOptions( "test:smile:test", { siteSettings: { enable_inline_emoji_translation: true } }, - `

test:smile:test

` + `

test:smile:test

` ); }); diff --git a/app/assets/javascripts/discourse/tests/unit/models/topic-test.js b/app/assets/javascripts/discourse/tests/unit/models/topic-test.js index c451f5e1070..f903fd6b694 100644 --- a/app/assets/javascripts/discourse/tests/unit/models/topic-test.js +++ b/app/assets/javascripts/discourse/tests/unit/models/topic-test.js @@ -129,7 +129,7 @@ discourseModule("Unit | Model | topic", function () { assert.equal( topic.get("fancyTitle"), - `smile with all slight_smile the emojis pearpeach`, + `smile with all slight_smile the emojis pearpeach`, "supports emojis" ); }); @@ -159,7 +159,7 @@ discourseModule("Unit | Model | topic", function () { assert.equal( topic.get("escapedExcerpt"), - `This is a test topic smile`, + `This is a test topic smile`, "supports emojis" ); }); diff --git a/app/models/emoji_set_site_setting.rb b/app/models/emoji_set_site_setting.rb index 8437e0a3076..0fe47723900 100644 --- a/app/models/emoji_set_site_setting.rb +++ b/app/models/emoji_set_site_setting.rb @@ -13,7 +13,6 @@ class EmojiSetSiteSetting < EnumSiteSetting { name: 'emoji_set.apple_international', value: 'apple' }, { name: 'emoji_set.google', value: 'google' }, { name: 'emoji_set.twitter', value: 'twitter' }, - { name: 'emoji_set.emoji_one', value: 'emoji_one' }, { name: 'emoji_set.win10', value: 'win10' }, { name: 'emoji_set.google_classic', value: 'google_classic' }, { name: 'emoji_set.facebook_messenger', value: 'facebook_messenger' }, diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 8512284510d..5838a60fa07 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -1819,7 +1819,6 @@ en: apple_international: "Apple/International" google: "Google" twitter: "Twitter" - emoji_one: "JoyPixels (formerly EmojiOne)" win10: "Win10" google_classic: "Google Classic" facebook_messenger: "Facebook Messenger" diff --git a/db/migrate/20210224162050_remove_emoji_one_from_emoji_set_site_setting.rb b/db/migrate/20210224162050_remove_emoji_one_from_emoji_set_site_setting.rb new file mode 100644 index 00000000000..1ffbaac72de --- /dev/null +++ b/db/migrate/20210224162050_remove_emoji_one_from_emoji_set_site_setting.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class RemoveEmojiOneFromEmojiSetSiteSetting < ActiveRecord::Migration[6.0] + def up + result = execute("SELECT value FROM site_settings WHERE name='emoji_set' and value='emoji_one'") + return unless result.count > 0 + + execute "DELETE FROM site_settings where name='emoji_set' and value='emoji_one'" + execute "UPDATE posts SET baked_version = 0 WHERE cooked LIKE '%/images/emoji/emoji_one%'" + end + + def down + # Cannot undo + end +end diff --git a/lib/tasks/emoji.rake b/lib/tasks/emoji.rake index ace173d55c2..4cf13722565 100644 --- a/lib/tasks/emoji.rake +++ b/lib/tasks/emoji.rake @@ -262,7 +262,6 @@ DEFAULT_SET ||= "twitter" # Replace the platform by another when downloading the image (accepts names or categories) EMOJI_IMAGES_PATCH ||= { "apple" => { "snowboarder" => "twitter" }, - "emoji_one" => { "country-flag" => "twitter" }, "windows" => { "country-flag" => "twitter" } } @@ -272,7 +271,6 @@ EMOJI_SETS ||= { "google_blob" => "google_classic", "facebook" => "facebook_messenger", "twitter" => "twitter", - "emoji_one" => "emoji_one", "windows" => "win10", } @@ -537,7 +535,7 @@ class TestEmojiUpdate < MiniTest::Test assert_equal File.size(original_image), File.size(alias_image) original_image = image_path("twitter", "macau") - alias_image = image_path("emoji_one", "macau") + alias_image = image_path("win10", "macau") assert_equal File.size(original_image), File.size(alias_image) end end diff --git a/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js.es6 b/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js.es6 index b9587612cf2..1962054ab9a 100644 --- a/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js.es6 +++ b/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js.es6 @@ -5,7 +5,7 @@ module("lib:details-cooked-test"); const defaultOpts = buildOptions({ siteSettings: { enable_emoji: true, - emoji_set: "emoji_one", + emoji_set: "google_classic", highlighted_languages: "json|ruby|javascript", default_code_lang: "auto", }, diff --git a/spec/components/email/styles_spec.rb b/spec/components/email/styles_spec.rb index 4c1db489047..1520662dc50 100644 --- a/spec/components/email/styles_spec.rb +++ b/spec/components/email/styles_spec.rb @@ -159,14 +159,14 @@ describe Email::Styles do context "strip_avatars_and_emojis" do it "works for lonesome emoji with no title" do - emoji = "" + emoji = "" style = Email::Styles.new(emoji) style.strip_avatars_and_emojis expect(style.to_html).to match_html(emoji) end it "works for lonesome emoji with title" do - emoji = "" + emoji = "" style = Email::Styles.new(emoji) style.strip_avatars_and_emojis expect(style.to_html).to match_html("cry_cry")