diff --git a/CHANGELOG.md b/CHANGELOG.md index ca056fc71..ed078bc69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Mastodon API: [Reports](https://docs.joinmastodon.org/api/rest/reports/) - ActivityPub C2S: OAuth endpoints - Metadata RelMe provider +- Emoji packs and emoji pack manager ### Changed - **Breaking:** Configuration: move from Pleroma.Mailer to Pleroma.Emails.Mailer @@ -50,6 +51,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Mastodon API: Remove attachment limit in the Status entity - Deps: Updated Cowboy to 2.6 - Deps: Updated Ecto to 3.0.7 +- Don't ship finmoji by default, they can be installed as an emoji pack ### Fixed - Followers counter not being updated when a follower is blocked diff --git a/COPYING b/COPYING index ceec519ae..eceb68efe 100644 --- a/COPYING +++ b/COPYING @@ -39,10 +39,3 @@ does not include the right to compile photos from Unsplash to replicate a similar or competing service. priv/static/images/city.jpg - ---- - -The files present under the priv/static/finmoji directory are copyright -Finland , and are distributed under the Creative -Commons Attribution-NonCommercial-NoDerivatives 4.0 International license, you -should have received a copy of the license file as CC-BY-NC-ND-4.0. diff --git a/config/config.exs b/config/config.exs index 1114dc84d..9f2244222 100644 --- a/config/config.exs +++ b/config/config.exs @@ -100,9 +100,9 @@ config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png"], groups: [ # Put groups that have higher priority than defaults here. Example in `docs/config/custom_emoji.md` - Finmoji: "/finmoji/128px/*-128.png", - Custom: ["/emoji/*.png", "/emoji/custom/*.png"] - ] + Custom: ["/emoji/*.png", "/emoji/**/*.png"] + ], + default_manifest: "https://git.pleroma.social/pleroma/emoji-index/raw/master/index.json" config :pleroma, :uri_schemes, valid_schemes: [ @@ -223,7 +223,6 @@ config :pleroma, :instance, "text/html", "text/markdown" ], - finmoji_enabled: true, mrf_transparency: true, autofollowed_nicknames: [], max_pinned_statuses: 1, diff --git a/docs/config.md b/docs/config.md index 5a97033b2..ccf744f42 100644 --- a/docs/config.md +++ b/docs/config.md @@ -87,7 +87,6 @@ config :pleroma, Pleroma.Emails.Mailer, * `quarantined_instances`: List of ActivityPub instances where private(DMs, followers-only) activities will not be send. * `managed_config`: Whenether the config for pleroma-fe is configured in this config or in ``static/config.json`` * `allowed_post_formats`: MIME-type list of formats allowed to be posted (transformed into HTML) -* `finmoji_enabled`: Whenether to enable the finmojis in the custom emojis. * `mrf_transparency`: Make the content of your Message Rewrite Facility settings public (via nodeinfo). * `scope_copy`: Copy the scope (private/unlisted/public) in replies to posts by default. * `subject_line_behavior`: Allows changing the default behaviour of subject lines in replies. Valid values: diff --git a/docs/config/custom_emoji.md b/docs/config/custom_emoji.md index 5ce9865a2..ac28635d0 100644 --- a/docs/config/custom_emoji.md +++ b/docs/config/custom_emoji.md @@ -1,15 +1,25 @@ # Custom Emoji +Before you add your own custom emoji, check if they are available in an existing pack. +See `Mix.Tasks.Pleroma.Emoji` for information about emoji packs. + To add custom emoji: -* Add the image file(s) to `priv/static/emoji/custom` -* In case of conflicts: add the desired shortcode with the path to `config/custom_emoji.txt`, comma-separated and one per line -* Force recompilation (``mix clean && mix compile``) +* Create the `STATIC-DIR/emoji/` directory if it doesn't exist + (`STATIC-DIR` is configurable, `instance/static/` by default) +* Create a directory with whatever name you want (custom is a good name to show the purpose of it). + This will create a local emoji pack. +* Put your `.png` emoji files in that directory. In case of conflicts, you can create an `emoji.txt` + file in that directory and specify a custom shortcode using the following format: + `shortcode, file-path, tag1, tag2, etc`. One emoji per line. Note that if you do so, + you'll have to list all other emojis in the pack too. +* Either restart pleroma or connect to the iex session pleroma's running and + run `Pleroma.Emoji.reload/0` in it. Example: -image files (in `/priv/static/emoji/custom`): `happy.png` and `sad.png` +image files (in `instance/static/emoji/custom`): `happy.png` and `sad.png` -content of `config/custom_emoji.txt`: +content of `emoji.txt`: ``` happy, /emoji/custom/happy.png, Tag1,Tag2 sad, /emoji/custom/sad.png, Tag1 diff --git a/lib/mix/tasks/pleroma/emoji.ex b/lib/mix/tasks/pleroma/emoji.ex new file mode 100644 index 000000000..2754dd876 --- /dev/null +++ b/lib/mix/tasks/pleroma/emoji.ex @@ -0,0 +1,293 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2018 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Mix.Tasks.Pleroma.Emoji do + use Mix.Task + + @shortdoc "Manages emoji packs" + @moduledoc """ + Manages emoji packs + + ## ls-packs + + mix pleroma.emoji ls-packs [OPTION...] + + Lists the emoji packs and metadata specified in the manifest. + + ### Options + + - `-m, --manifest PATH/URL` - path to a custom manifest, it can + either be an URL starting with `http`, in that case the + manifest will be fetched from that address, or a local path + + ## get-packs + + mix pleroma.emoji get-packs [OPTION...] PACKS + + Fetches, verifies and installs the specified PACKS from the + manifest into the `STATIC-DIR/emoji/PACK-NAME + + ### Options + + - `-m, --manifest PATH/URL` - same as ls-packs + + ## gen-pack + + mix pleroma.emoji gen-pack PACK-URL + + Creates a new manifest entry and a file list from the specified + remote pack file. Currently, only .zip archives are recognized + as remote pack files and packs are therefore assumed to be zip + archives. This command is intended to run interactively and will + first ask you some basic questions about the pack, then download + the remote file and generate an SHA256 checksum for it, then + generate an emoji file list for you. + + The manifest entry will either be written to a newly created + `index.json` file or appended to the existing one, *replacing* + the old pack with the same name if it was in the file previously. + + The file list will be written to the file specified previously, + *replacing* that file. You _should_ check that the file list doesn't + contain anything you don't need in the pack, that is, anything that is + not an emoji (the whole pack is downloaded, but only emoji files + are extracted). + """ + + @default_manifest Pleroma.Config.get!([:emoji, :default_manifest]) + + def run(["ls-packs" | args]) do + Application.ensure_all_started(:hackney) + + {options, [], []} = parse_global_opts(args) + + manifest = + fetch_manifest(if options[:manifest], do: options[:manifest], else: @default_manifest) + + Enum.each(manifest, fn {name, info} -> + to_print = [ + {"Name", name}, + {"Homepage", info["homepage"]}, + {"Description", info["description"]}, + {"License", info["license"]}, + {"Source", info["src"]} + ] + + for {param, value} <- to_print do + IO.puts(IO.ANSI.format([:bright, param, :normal, ": ", value])) + end + + # A newline + IO.puts("") + end) + end + + def run(["get-packs" | args]) do + Application.ensure_all_started(:hackney) + + {options, pack_names, []} = parse_global_opts(args) + + manifest_url = if options[:manifest], do: options[:manifest], else: @default_manifest + + manifest = fetch_manifest(manifest_url) + + for pack_name <- pack_names do + if Map.has_key?(manifest, pack_name) do + pack = manifest[pack_name] + src_url = pack["src"] + + IO.puts( + IO.ANSI.format([ + "Downloading ", + :bright, + pack_name, + :normal, + " from ", + :underline, + src_url + ]) + ) + + binary_archive = Tesla.get!(src_url).body + archive_sha = :crypto.hash(:sha256, binary_archive) |> Base.encode16() + + sha_status_text = ["SHA256 of ", :bright, pack_name, :normal, " source file is ", :bright] + + if archive_sha == String.upcase(pack["src_sha256"]) do + IO.puts(IO.ANSI.format(sha_status_text ++ [:green, "OK"])) + else + IO.puts(IO.ANSI.format(sha_status_text ++ [:red, "BAD"])) + + raise "Bad SHA256 for #{pack_name}" + end + + # The url specified in files should be in the same directory + files_url = Path.join(Path.dirname(manifest_url), pack["files"]) + + IO.puts( + IO.ANSI.format([ + "Fetching the file list for ", + :bright, + pack_name, + :normal, + " from ", + :underline, + files_url + ]) + ) + + files = Tesla.get!(files_url).body |> Poison.decode!() + + IO.puts(IO.ANSI.format(["Unpacking ", :bright, pack_name])) + + pack_path = + Path.join([ + Pleroma.Config.get!([:instance, :static_dir]), + "emoji", + pack_name + ]) + + files_to_unzip = + Enum.map( + files, + fn {_, f} -> to_charlist(f) end + ) + + {:ok, _} = + :zip.unzip(binary_archive, + cwd: pack_path, + file_list: files_to_unzip + ) + + IO.puts(IO.ANSI.format(["Writing emoji.txt for ", :bright, pack_name])) + + emoji_txt_str = + Enum.map( + files, + fn {shortcode, path} -> + emojo_path = Path.join("/emoji/#{pack_name}", path) + "#{shortcode}, #{emojo_path}" + end + ) + |> Enum.join("\n") + + File.write!(Path.join(pack_path, "emoji.txt"), emoji_txt_str) + else + IO.puts(IO.ANSI.format([:bright, :red, "No pack named \"#{pack_name}\" found"])) + end + end + end + + def run(["gen-pack", src]) do + Application.ensure_all_started(:hackney) + + proposed_name = Path.basename(src) |> Path.rootname() + name = String.trim(IO.gets("Pack name [#{proposed_name}]: ")) + # If there's no name, use the default one + name = if String.length(name) > 0, do: name, else: proposed_name + + license = String.trim(IO.gets("License: ")) + homepage = String.trim(IO.gets("Homepage: ")) + description = String.trim(IO.gets("Description: ")) + + proposed_files_name = "#{name}.json" + files_name = String.trim(IO.gets("Save file list to [#{proposed_files_name}]: ")) + files_name = if String.length(files_name) > 0, do: files_name, else: proposed_files_name + + default_exts = [".png", ".gif"] + default_exts_str = Enum.join(default_exts, " ") + + exts = + String.trim( + IO.gets("Emoji file extensions (separated with spaces) [#{default_exts_str}]: ") + ) + + exts = + if String.length(exts) > 0 do + String.split(exts, " ") + |> Enum.filter(fn e -> e |> String.trim() |> String.length() > 0 end) + else + default_exts + end + + IO.puts("Downloading the pack and generating SHA256") + + binary_archive = Tesla.get!(src).body + archive_sha = :crypto.hash(:sha256, binary_archive) |> Base.encode16() + + IO.puts("SHA256 is #{archive_sha}") + + pack_json = %{ + name => %{ + license: license, + homepage: homepage, + description: description, + src: src, + src_sha256: archive_sha, + files: files_name + } + } + + tmp_pack_dir = Path.join(System.tmp_dir!(), "emoji-pack-#{name}") + + {:ok, _} = + :zip.unzip( + binary_archive, + cwd: tmp_pack_dir + ) + + emoji_map = Pleroma.Emoji.make_shortcode_to_file_map(tmp_pack_dir, exts) + + File.write!(files_name, Poison.encode!(emoji_map, pretty: true)) + + IO.puts(""" + + #{files_name} has been created and contains the list of all found emojis in the pack. + Please review the files in the remove those not needed. + """) + + if File.exists?("index.json") do + existing_data = File.read!("index.json") |> Poison.decode!() + + File.write!( + "index.json", + Poison.encode!( + Map.merge( + existing_data, + pack_json + ), + pretty: true + ) + ) + + IO.puts("index.json file has been update with the #{name} pack") + else + File.write!("index.json", Poison.encode!(pack_json, pretty: true)) + + IO.puts("index.json has been created with the #{name} pack") + end + end + + defp fetch_manifest(from) do + Poison.decode!( + if String.starts_with?(from, "http") do + Tesla.get!(from).body + else + File.read!(from) + end + ) + end + + defp parse_global_opts(args) do + OptionParser.parse( + args, + strict: [ + manifest: :string + ], + aliases: [ + m: :manifest + ] + ) + end +end diff --git a/lib/pleroma/emoji.ex b/lib/pleroma/emoji.ex index 87c7f2cec..6390cce4c 100644 --- a/lib/pleroma/emoji.ex +++ b/lib/pleroma/emoji.ex @@ -6,7 +6,7 @@ defmodule Pleroma.Emoji do @moduledoc """ The emojis are loaded from: - * the built-in Finmojis (if enabled in configuration), + * emoji packs in INSTANCE-DIR/emoji * the files: `config/emoji.txt` and `config/custom_emoji.txt` * glob paths, nested folder is used as tag name for grouping e.g. priv/static/emoji/custom/nested_folder @@ -14,6 +14,8 @@ defmodule Pleroma.Emoji do """ use GenServer + require Logger + @type pattern :: Regex.t() | module() | String.t() @type patterns :: pattern() | [pattern()] @type group_patterns :: keyword(patterns()) @@ -79,95 +81,94 @@ defmodule Pleroma.Emoji do end defp load do - finmoji_enabled = Keyword.get(Application.get_env(:pleroma, :instance), :finmoji_enabled) + emoji_dir_path = + Path.join( + Pleroma.Config.get!([:instance, :static_dir]), + "emoji" + ) + + case File.ls(emoji_dir_path) do + {:error, :enoent} -> + # The custom emoji directory doesn't exist, + # don't do anything + nil + + {:error, e} -> + # There was some other error + Logger.error("Could not access the custom emoji directory #{emoji_dir_path}: #{e}") + + {:ok, packs} -> + # Print the packs we've found + Logger.info("Found emoji packs: #{Enum.join(packs, ", ")}") + + emojis = + Enum.flat_map( + packs, + fn pack -> load_pack(Path.join(emoji_dir_path, pack)) end + ) + + true = :ets.insert(@ets, emojis) + end + + # Compat thing for old custom emoji handling & default emoji, + # it should run even if there are no emoji packs shortcode_globs = Application.get_env(:pleroma, :emoji)[:shortcode_globs] || [] emojis = - (load_finmoji(finmoji_enabled) ++ - load_from_file("config/emoji.txt") ++ + (load_from_file("config/emoji.txt") ++ load_from_file("config/custom_emoji.txt") ++ load_from_globs(shortcode_globs)) |> Enum.reject(fn value -> value == nil end) true = :ets.insert(@ets, emojis) + :ok end - @finmoji [ - "a_trusted_friend", - "alandislands", - "association", - "auroraborealis", - "baby_in_a_box", - "bear", - "black_gold", - "christmasparty", - "crosscountryskiing", - "cupofcoffee", - "education", - "fashionista_finns", - "finnishlove", - "flag", - "forest", - "four_seasons_of_bbq", - "girlpower", - "handshake", - "happiness", - "headbanger", - "icebreaker", - "iceman", - "joulutorttu", - "kaamos", - "kalsarikannit_f", - "kalsarikannit_m", - "karjalanpiirakka", - "kicksled", - "kokko", - "lavatanssit", - "losthopes_f", - "losthopes_m", - "mattinykanen", - "meanwhileinfinland", - "moominmamma", - "nordicfamily", - "out_of_office", - "peacemaker", - "perkele", - "pesapallo", - "polarbear", - "pusa_hispida_saimensis", - "reindeer", - "sami", - "sauna_f", - "sauna_m", - "sauna_whisk", - "sisu", - "stuck", - "suomimainittu", - "superfood", - "swan", - "the_cap", - "the_conductor", - "the_king", - "the_voice", - "theoriginalsanta", - "tomoffinland", - "torillatavataan", - "unbreakable", - "waiting", - "white_nights", - "woollysocks" - ] + defp load_pack(pack_dir) do + pack_name = Path.basename(pack_dir) - defp load_finmoji(true) do - Enum.map(@finmoji, fn finmoji -> - file_name = "/finmoji/128px/#{finmoji}-128.png" - group = match_extra(@groups, file_name) - {finmoji, file_name, to_string(group)} - end) + emoji_txt = Path.join(pack_dir, "emoji.txt") + + if File.exists?(emoji_txt) do + load_from_file(emoji_txt) + else + Logger.info( + "No emoji.txt found for pack \"#{pack_name}\", assuming all .png files are emoji" + ) + + make_shortcode_to_file_map(pack_dir, [".png"]) + |> Enum.map(fn {shortcode, rel_file} -> + filename = Path.join("/emoji/#{pack_name}", rel_file) + + {shortcode, filename, [to_string(match_extra(@groups, filename))]} + end) + end end - defp load_finmoji(_), do: [] + def make_shortcode_to_file_map(pack_dir, exts) do + find_all_emoji(pack_dir, exts) + |> Enum.map(&Path.relative_to(&1, pack_dir)) + |> Enum.map(fn f -> {f |> Path.basename() |> Path.rootname(), f} end) + |> Enum.into(%{}) + end + + def find_all_emoji(dir, exts) do + Enum.reduce( + File.ls!(dir), + [], + fn f, acc -> + filepath = Path.join(dir, f) + + if File.dir?(filepath) do + acc ++ find_all_emoji(filepath, exts) + else + acc ++ [filepath] + end + end + ) + |> Enum.filter(fn f -> Path.extname(f) in exts end) + end defp load_from_file(file) do if File.exists?(file) do @@ -182,11 +183,11 @@ defmodule Pleroma.Emoji do |> Stream.map(&String.trim/1) |> Stream.map(fn line -> case String.split(line, ~r/,\s*/) do - [name, file, tags] -> - {name, file, tags} - [name, file] -> - {name, file, to_string(match_extra(@groups, file))} + {name, file, [to_string(match_extra(@groups, file))]} + + [name, file | tags] -> + {name, file, tags} _ -> nil @@ -209,7 +210,7 @@ defmodule Pleroma.Emoji do tag = match_extra(@groups, Path.join("/", Path.relative_to(path, static_path))) shortcode = Path.basename(path, Path.extname(path)) external_path = Path.join("/", Path.relative_to(path, static_path)) - {shortcode, external_path, to_string(tag)} + {shortcode, external_path, [to_string(tag)]} end) end diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index 485e79a0d..d271d3786 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -190,7 +190,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do "static_url" => url, "visible_in_picker" => true, "url" => url, - "tags" => String.split(tags, ",") + "tags" => tags } end) end diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex index 9441984c7..8665e058a 100644 --- a/lib/pleroma/web/twitter_api/controllers/util_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/util_controller.ex @@ -286,7 +286,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do emoji = Emoji.get_all() |> Enum.map(fn {short_code, path, tags} -> - {short_code, %{image_url: path, tags: String.split(tags, ",")}} + {short_code, %{image_url: path, tags: tags}} end) |> Enum.into(%{}) diff --git a/priv/static/finmoji/1000px/a_trusted_friend.png b/priv/static/finmoji/1000px/a_trusted_friend.png deleted file mode 100644 index 5658d589c..000000000 Binary files a/priv/static/finmoji/1000px/a_trusted_friend.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/alandislands.png b/priv/static/finmoji/1000px/alandislands.png deleted file mode 100644 index 094dd3284..000000000 Binary files a/priv/static/finmoji/1000px/alandislands.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/association.png b/priv/static/finmoji/1000px/association.png deleted file mode 100644 index dad3b8864..000000000 Binary files a/priv/static/finmoji/1000px/association.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/auroraborealis.png b/priv/static/finmoji/1000px/auroraborealis.png deleted file mode 100644 index 5875dc2c4..000000000 Binary files a/priv/static/finmoji/1000px/auroraborealis.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/baby_in_a_box.png b/priv/static/finmoji/1000px/baby_in_a_box.png deleted file mode 100644 index 9479aaebb..000000000 Binary files a/priv/static/finmoji/1000px/baby_in_a_box.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/bear.png b/priv/static/finmoji/1000px/bear.png deleted file mode 100644 index 5d9fbb320..000000000 Binary files a/priv/static/finmoji/1000px/bear.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/black_gold.png b/priv/static/finmoji/1000px/black_gold.png deleted file mode 100644 index 707e949ec..000000000 Binary files a/priv/static/finmoji/1000px/black_gold.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/christmasparty.png b/priv/static/finmoji/1000px/christmasparty.png deleted file mode 100644 index 785decb8d..000000000 Binary files a/priv/static/finmoji/1000px/christmasparty.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/crosscountryskiing.png b/priv/static/finmoji/1000px/crosscountryskiing.png deleted file mode 100644 index 2a9bddf41..000000000 Binary files a/priv/static/finmoji/1000px/crosscountryskiing.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/cupofcoffee.png b/priv/static/finmoji/1000px/cupofcoffee.png deleted file mode 100644 index a12cc867c..000000000 Binary files a/priv/static/finmoji/1000px/cupofcoffee.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/education.png b/priv/static/finmoji/1000px/education.png deleted file mode 100644 index af9feee59..000000000 Binary files a/priv/static/finmoji/1000px/education.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/fashionista_finns.png b/priv/static/finmoji/1000px/fashionista_finns.png deleted file mode 100644 index d1140250d..000000000 Binary files a/priv/static/finmoji/1000px/fashionista_finns.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/finnishlove.png b/priv/static/finmoji/1000px/finnishlove.png deleted file mode 100644 index 00148202f..000000000 Binary files a/priv/static/finmoji/1000px/finnishlove.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/flag.png b/priv/static/finmoji/1000px/flag.png deleted file mode 100644 index e709449d7..000000000 Binary files a/priv/static/finmoji/1000px/flag.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/forest.png b/priv/static/finmoji/1000px/forest.png deleted file mode 100644 index b2d64ea37..000000000 Binary files a/priv/static/finmoji/1000px/forest.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/four_seasons_of_bbq.png b/priv/static/finmoji/1000px/four_seasons_of_bbq.png deleted file mode 100644 index 42f4a7fb7..000000000 Binary files a/priv/static/finmoji/1000px/four_seasons_of_bbq.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/girlpower.png b/priv/static/finmoji/1000px/girlpower.png deleted file mode 100644 index 7674f2e26..000000000 Binary files a/priv/static/finmoji/1000px/girlpower.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/handshake.png b/priv/static/finmoji/1000px/handshake.png deleted file mode 100644 index d9857d699..000000000 Binary files a/priv/static/finmoji/1000px/handshake.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/happiness.png b/priv/static/finmoji/1000px/happiness.png deleted file mode 100644 index fbfc34fe4..000000000 Binary files a/priv/static/finmoji/1000px/happiness.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/headbanger.png b/priv/static/finmoji/1000px/headbanger.png deleted file mode 100644 index d9c2f6247..000000000 Binary files a/priv/static/finmoji/1000px/headbanger.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/icebreaker.png b/priv/static/finmoji/1000px/icebreaker.png deleted file mode 100644 index aedce3dca..000000000 Binary files a/priv/static/finmoji/1000px/icebreaker.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/iceman.png b/priv/static/finmoji/1000px/iceman.png deleted file mode 100644 index c172e60d5..000000000 Binary files a/priv/static/finmoji/1000px/iceman.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/joulutorttu.png b/priv/static/finmoji/1000px/joulutorttu.png deleted file mode 100644 index d7b5a7e53..000000000 Binary files a/priv/static/finmoji/1000px/joulutorttu.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/kaamos.png b/priv/static/finmoji/1000px/kaamos.png deleted file mode 100644 index 139b21953..000000000 Binary files a/priv/static/finmoji/1000px/kaamos.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/kalsarikannit_f.png b/priv/static/finmoji/1000px/kalsarikannit_f.png deleted file mode 100644 index 064c86160..000000000 Binary files a/priv/static/finmoji/1000px/kalsarikannit_f.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/kalsarikannit_m.png b/priv/static/finmoji/1000px/kalsarikannit_m.png deleted file mode 100644 index e08bd27af..000000000 Binary files a/priv/static/finmoji/1000px/kalsarikannit_m.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/karjalanpiirakka.png b/priv/static/finmoji/1000px/karjalanpiirakka.png deleted file mode 100644 index dbf647df5..000000000 Binary files a/priv/static/finmoji/1000px/karjalanpiirakka.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/kicksled.png b/priv/static/finmoji/1000px/kicksled.png deleted file mode 100644 index 305a56f77..000000000 Binary files a/priv/static/finmoji/1000px/kicksled.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/kokko.png b/priv/static/finmoji/1000px/kokko.png deleted file mode 100644 index 0a5472c9a..000000000 Binary files a/priv/static/finmoji/1000px/kokko.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/lavatanssit.png b/priv/static/finmoji/1000px/lavatanssit.png deleted file mode 100644 index a1f0a69dd..000000000 Binary files a/priv/static/finmoji/1000px/lavatanssit.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/losthopes_f.png b/priv/static/finmoji/1000px/losthopes_f.png deleted file mode 100644 index a847df3c5..000000000 Binary files a/priv/static/finmoji/1000px/losthopes_f.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/losthopes_m.png b/priv/static/finmoji/1000px/losthopes_m.png deleted file mode 100644 index 93c83b995..000000000 Binary files a/priv/static/finmoji/1000px/losthopes_m.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/mattinykanen.png b/priv/static/finmoji/1000px/mattinykanen.png deleted file mode 100644 index 2d9c9d38f..000000000 Binary files a/priv/static/finmoji/1000px/mattinykanen.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/meanwhileinfinland.png b/priv/static/finmoji/1000px/meanwhileinfinland.png deleted file mode 100644 index 794db1eed..000000000 Binary files a/priv/static/finmoji/1000px/meanwhileinfinland.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/moominmamma.png b/priv/static/finmoji/1000px/moominmamma.png deleted file mode 100644 index d34b1b98b..000000000 Binary files a/priv/static/finmoji/1000px/moominmamma.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/nordicfamily.png b/priv/static/finmoji/1000px/nordicfamily.png deleted file mode 100644 index 21292eaff..000000000 Binary files a/priv/static/finmoji/1000px/nordicfamily.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/out_of_office.png b/priv/static/finmoji/1000px/out_of_office.png deleted file mode 100644 index b72d6dbd5..000000000 Binary files a/priv/static/finmoji/1000px/out_of_office.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/peacemaker.png b/priv/static/finmoji/1000px/peacemaker.png deleted file mode 100644 index 48a51fa6f..000000000 Binary files a/priv/static/finmoji/1000px/peacemaker.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/perkele.png b/priv/static/finmoji/1000px/perkele.png deleted file mode 100644 index 16a68d053..000000000 Binary files a/priv/static/finmoji/1000px/perkele.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/pesapallo.png b/priv/static/finmoji/1000px/pesapallo.png deleted file mode 100644 index 2f35c8e02..000000000 Binary files a/priv/static/finmoji/1000px/pesapallo.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/polarbear.png b/priv/static/finmoji/1000px/polarbear.png deleted file mode 100644 index ce6c65e8b..000000000 Binary files a/priv/static/finmoji/1000px/polarbear.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/pusa_hispida_saimensis.png b/priv/static/finmoji/1000px/pusa_hispida_saimensis.png deleted file mode 100644 index 35ec8caed..000000000 Binary files a/priv/static/finmoji/1000px/pusa_hispida_saimensis.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/reindeer.png b/priv/static/finmoji/1000px/reindeer.png deleted file mode 100644 index e60f0f0a4..000000000 Binary files a/priv/static/finmoji/1000px/reindeer.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/sami.png b/priv/static/finmoji/1000px/sami.png deleted file mode 100644 index e4703dfd2..000000000 Binary files a/priv/static/finmoji/1000px/sami.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/sauna_f.png b/priv/static/finmoji/1000px/sauna_f.png deleted file mode 100644 index 9a4ba8629..000000000 Binary files a/priv/static/finmoji/1000px/sauna_f.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/sauna_m.png b/priv/static/finmoji/1000px/sauna_m.png deleted file mode 100644 index 4bdd33f7b..000000000 Binary files a/priv/static/finmoji/1000px/sauna_m.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/sauna_whisk.png b/priv/static/finmoji/1000px/sauna_whisk.png deleted file mode 100644 index c16928065..000000000 Binary files a/priv/static/finmoji/1000px/sauna_whisk.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/sisu.png b/priv/static/finmoji/1000px/sisu.png deleted file mode 100644 index 238453bb5..000000000 Binary files a/priv/static/finmoji/1000px/sisu.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/stuck.png b/priv/static/finmoji/1000px/stuck.png deleted file mode 100644 index 4180e3ecd..000000000 Binary files a/priv/static/finmoji/1000px/stuck.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/suomimainittu.png b/priv/static/finmoji/1000px/suomimainittu.png deleted file mode 100644 index af46347f5..000000000 Binary files a/priv/static/finmoji/1000px/suomimainittu.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/superfood.png b/priv/static/finmoji/1000px/superfood.png deleted file mode 100644 index 8fa033c18..000000000 Binary files a/priv/static/finmoji/1000px/superfood.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/swan.png b/priv/static/finmoji/1000px/swan.png deleted file mode 100644 index 5363f861d..000000000 Binary files a/priv/static/finmoji/1000px/swan.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/the_cap.png b/priv/static/finmoji/1000px/the_cap.png deleted file mode 100644 index 7f547dc0e..000000000 Binary files a/priv/static/finmoji/1000px/the_cap.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/the_conductor.png b/priv/static/finmoji/1000px/the_conductor.png deleted file mode 100644 index ed5ca7f1f..000000000 Binary files a/priv/static/finmoji/1000px/the_conductor.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/the_king.png b/priv/static/finmoji/1000px/the_king.png deleted file mode 100644 index 8c3a5c66d..000000000 Binary files a/priv/static/finmoji/1000px/the_king.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/the_voice.png b/priv/static/finmoji/1000px/the_voice.png deleted file mode 100644 index 9bfc87b3a..000000000 Binary files a/priv/static/finmoji/1000px/the_voice.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/theoriginalsanta.png b/priv/static/finmoji/1000px/theoriginalsanta.png deleted file mode 100644 index b8dc1ef47..000000000 Binary files a/priv/static/finmoji/1000px/theoriginalsanta.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/tomoffinland.png b/priv/static/finmoji/1000px/tomoffinland.png deleted file mode 100644 index 97da05a64..000000000 Binary files a/priv/static/finmoji/1000px/tomoffinland.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/torillatavataan.png b/priv/static/finmoji/1000px/torillatavataan.png deleted file mode 100644 index ff7a81eda..000000000 Binary files a/priv/static/finmoji/1000px/torillatavataan.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/unbreakable.png b/priv/static/finmoji/1000px/unbreakable.png deleted file mode 100644 index 1778fc115..000000000 Binary files a/priv/static/finmoji/1000px/unbreakable.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/waiting.png b/priv/static/finmoji/1000px/waiting.png deleted file mode 100644 index 2aa9afa70..000000000 Binary files a/priv/static/finmoji/1000px/waiting.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/white_nights.png b/priv/static/finmoji/1000px/white_nights.png deleted file mode 100644 index 8e9cd3fc8..000000000 Binary files a/priv/static/finmoji/1000px/white_nights.png and /dev/null differ diff --git a/priv/static/finmoji/1000px/woollysocks.png b/priv/static/finmoji/1000px/woollysocks.png deleted file mode 100644 index 5ee4e6de1..000000000 Binary files a/priv/static/finmoji/1000px/woollysocks.png and /dev/null differ diff --git a/priv/static/finmoji/128px/a_trusted_friend-128.png b/priv/static/finmoji/128px/a_trusted_friend-128.png deleted file mode 100644 index 16d596bda..000000000 Binary files a/priv/static/finmoji/128px/a_trusted_friend-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/alandislands-128.png b/priv/static/finmoji/128px/alandislands-128.png deleted file mode 100644 index 13cdf6e76..000000000 Binary files a/priv/static/finmoji/128px/alandislands-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/association-128.png b/priv/static/finmoji/128px/association-128.png deleted file mode 100644 index 5b388d781..000000000 Binary files a/priv/static/finmoji/128px/association-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/auroraborealis-128.png b/priv/static/finmoji/128px/auroraborealis-128.png deleted file mode 100644 index 7e2af77b9..000000000 Binary files a/priv/static/finmoji/128px/auroraborealis-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/baby_in_a_box-128.png b/priv/static/finmoji/128px/baby_in_a_box-128.png deleted file mode 100644 index 9c495e24a..000000000 Binary files a/priv/static/finmoji/128px/baby_in_a_box-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/bear-128.png b/priv/static/finmoji/128px/bear-128.png deleted file mode 100644 index 8bb101bf4..000000000 Binary files a/priv/static/finmoji/128px/bear-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/black_gold-128.png b/priv/static/finmoji/128px/black_gold-128.png deleted file mode 100644 index 1833edab4..000000000 Binary files a/priv/static/finmoji/128px/black_gold-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/christmasparty-128.png b/priv/static/finmoji/128px/christmasparty-128.png deleted file mode 100644 index 98216830c..000000000 Binary files a/priv/static/finmoji/128px/christmasparty-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/crosscountryskiing-128.png b/priv/static/finmoji/128px/crosscountryskiing-128.png deleted file mode 100644 index 67553f398..000000000 Binary files a/priv/static/finmoji/128px/crosscountryskiing-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/cupofcoffee-128.png b/priv/static/finmoji/128px/cupofcoffee-128.png deleted file mode 100644 index 20064f218..000000000 Binary files a/priv/static/finmoji/128px/cupofcoffee-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/education-128.png b/priv/static/finmoji/128px/education-128.png deleted file mode 100644 index c98083bdd..000000000 Binary files a/priv/static/finmoji/128px/education-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/fashionista_finns-128.png b/priv/static/finmoji/128px/fashionista_finns-128.png deleted file mode 100644 index 4248825e0..000000000 Binary files a/priv/static/finmoji/128px/fashionista_finns-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/finnishlove-128.png b/priv/static/finmoji/128px/finnishlove-128.png deleted file mode 100644 index 5d4f9476c..000000000 Binary files a/priv/static/finmoji/128px/finnishlove-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/flag-128.png b/priv/static/finmoji/128px/flag-128.png deleted file mode 100644 index 0087cc589..000000000 Binary files a/priv/static/finmoji/128px/flag-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/forest-128.png b/priv/static/finmoji/128px/forest-128.png deleted file mode 100644 index 142e60b94..000000000 Binary files a/priv/static/finmoji/128px/forest-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/four_seasons_of_bbq-128.png b/priv/static/finmoji/128px/four_seasons_of_bbq-128.png deleted file mode 100644 index bb7fe1f51..000000000 Binary files a/priv/static/finmoji/128px/four_seasons_of_bbq-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/girlpower-128.png b/priv/static/finmoji/128px/girlpower-128.png deleted file mode 100644 index bc76a51c5..000000000 Binary files a/priv/static/finmoji/128px/girlpower-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/handshake-128.png b/priv/static/finmoji/128px/handshake-128.png deleted file mode 100644 index 4ebf196ab..000000000 Binary files a/priv/static/finmoji/128px/handshake-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/happiness-128.png b/priv/static/finmoji/128px/happiness-128.png deleted file mode 100644 index e28f99a26..000000000 Binary files a/priv/static/finmoji/128px/happiness-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/headbanger-128.png b/priv/static/finmoji/128px/headbanger-128.png deleted file mode 100644 index 0de620efe..000000000 Binary files a/priv/static/finmoji/128px/headbanger-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/icebreaker-128.png b/priv/static/finmoji/128px/icebreaker-128.png deleted file mode 100644 index 7fb36a4a3..000000000 Binary files a/priv/static/finmoji/128px/icebreaker-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/iceman-128.png b/priv/static/finmoji/128px/iceman-128.png deleted file mode 100644 index eb814e6aa..000000000 Binary files a/priv/static/finmoji/128px/iceman-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/joulutorttu-128.png b/priv/static/finmoji/128px/joulutorttu-128.png deleted file mode 100644 index 50448e333..000000000 Binary files a/priv/static/finmoji/128px/joulutorttu-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/kaamos-128.png b/priv/static/finmoji/128px/kaamos-128.png deleted file mode 100644 index 8b2df03ef..000000000 Binary files a/priv/static/finmoji/128px/kaamos-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/kalsarikannit_f-128.png b/priv/static/finmoji/128px/kalsarikannit_f-128.png deleted file mode 100644 index bcd94141a..000000000 Binary files a/priv/static/finmoji/128px/kalsarikannit_f-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/kalsarikannit_m-128.png b/priv/static/finmoji/128px/kalsarikannit_m-128.png deleted file mode 100644 index c6938e677..000000000 Binary files a/priv/static/finmoji/128px/kalsarikannit_m-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/karjalanpiirakka-128.png b/priv/static/finmoji/128px/karjalanpiirakka-128.png deleted file mode 100644 index a82a902db..000000000 Binary files a/priv/static/finmoji/128px/karjalanpiirakka-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/kicksled-128.png b/priv/static/finmoji/128px/kicksled-128.png deleted file mode 100644 index ff42462db..000000000 Binary files a/priv/static/finmoji/128px/kicksled-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/kokko-128.png b/priv/static/finmoji/128px/kokko-128.png deleted file mode 100644 index e0b6e07fa..000000000 Binary files a/priv/static/finmoji/128px/kokko-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/lavatanssit-128.png b/priv/static/finmoji/128px/lavatanssit-128.png deleted file mode 100644 index f89dc358c..000000000 Binary files a/priv/static/finmoji/128px/lavatanssit-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/losthopes_f-128.png b/priv/static/finmoji/128px/losthopes_f-128.png deleted file mode 100644 index 60f0949c0..000000000 Binary files a/priv/static/finmoji/128px/losthopes_f-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/losthopes_m-128.png b/priv/static/finmoji/128px/losthopes_m-128.png deleted file mode 100644 index 9ae6f9e2f..000000000 Binary files a/priv/static/finmoji/128px/losthopes_m-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/mattinykanen-128.png b/priv/static/finmoji/128px/mattinykanen-128.png deleted file mode 100644 index 0e81271ca..000000000 Binary files a/priv/static/finmoji/128px/mattinykanen-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/meanwhileinfinland-128.png b/priv/static/finmoji/128px/meanwhileinfinland-128.png deleted file mode 100644 index 5a9710a3b..000000000 Binary files a/priv/static/finmoji/128px/meanwhileinfinland-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/moominmamma-128.png b/priv/static/finmoji/128px/moominmamma-128.png deleted file mode 100644 index ae37bb94a..000000000 Binary files a/priv/static/finmoji/128px/moominmamma-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/nordicfamily-128.png b/priv/static/finmoji/128px/nordicfamily-128.png deleted file mode 100644 index cff41b228..000000000 Binary files a/priv/static/finmoji/128px/nordicfamily-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/out_of_office-128.png b/priv/static/finmoji/128px/out_of_office-128.png deleted file mode 100644 index 45cd1c2f5..000000000 Binary files a/priv/static/finmoji/128px/out_of_office-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/peacemaker-128.png b/priv/static/finmoji/128px/peacemaker-128.png deleted file mode 100644 index c4e9bd447..000000000 Binary files a/priv/static/finmoji/128px/peacemaker-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/perkele-128.png b/priv/static/finmoji/128px/perkele-128.png deleted file mode 100644 index e89e5bf32..000000000 Binary files a/priv/static/finmoji/128px/perkele-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/pesapallo-128.png b/priv/static/finmoji/128px/pesapallo-128.png deleted file mode 100644 index 5e06bec50..000000000 Binary files a/priv/static/finmoji/128px/pesapallo-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/polarbear-128.png b/priv/static/finmoji/128px/polarbear-128.png deleted file mode 100644 index fd3c3ec30..000000000 Binary files a/priv/static/finmoji/128px/polarbear-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/pusa_hispida_saimensis-128.png b/priv/static/finmoji/128px/pusa_hispida_saimensis-128.png deleted file mode 100644 index 60620be5d..000000000 Binary files a/priv/static/finmoji/128px/pusa_hispida_saimensis-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/reindeer-128.png b/priv/static/finmoji/128px/reindeer-128.png deleted file mode 100644 index 8cdd05f27..000000000 Binary files a/priv/static/finmoji/128px/reindeer-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/sami-128.png b/priv/static/finmoji/128px/sami-128.png deleted file mode 100644 index e9e9f41a7..000000000 Binary files a/priv/static/finmoji/128px/sami-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/sauna_f-128.png b/priv/static/finmoji/128px/sauna_f-128.png deleted file mode 100644 index 474f126ff..000000000 Binary files a/priv/static/finmoji/128px/sauna_f-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/sauna_m-128.png b/priv/static/finmoji/128px/sauna_m-128.png deleted file mode 100644 index f7f563a9b..000000000 Binary files a/priv/static/finmoji/128px/sauna_m-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/sauna_whisk-128.png b/priv/static/finmoji/128px/sauna_whisk-128.png deleted file mode 100644 index 80ebb55e4..000000000 Binary files a/priv/static/finmoji/128px/sauna_whisk-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/sisu-128.png b/priv/static/finmoji/128px/sisu-128.png deleted file mode 100644 index 7b9330654..000000000 Binary files a/priv/static/finmoji/128px/sisu-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/stuck-128.png b/priv/static/finmoji/128px/stuck-128.png deleted file mode 100644 index c14bc555d..000000000 Binary files a/priv/static/finmoji/128px/stuck-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/suomimainittu-128.png b/priv/static/finmoji/128px/suomimainittu-128.png deleted file mode 100644 index 8d35b9be1..000000000 Binary files a/priv/static/finmoji/128px/suomimainittu-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/superfood-128.png b/priv/static/finmoji/128px/superfood-128.png deleted file mode 100644 index 2e9d924cc..000000000 Binary files a/priv/static/finmoji/128px/superfood-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/swan-128.png b/priv/static/finmoji/128px/swan-128.png deleted file mode 100644 index d1711c70b..000000000 Binary files a/priv/static/finmoji/128px/swan-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/the_cap-128.png b/priv/static/finmoji/128px/the_cap-128.png deleted file mode 100644 index 10d83c22e..000000000 Binary files a/priv/static/finmoji/128px/the_cap-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/the_conductor-128.png b/priv/static/finmoji/128px/the_conductor-128.png deleted file mode 100644 index 0da7c42e8..000000000 Binary files a/priv/static/finmoji/128px/the_conductor-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/the_king-128.png b/priv/static/finmoji/128px/the_king-128.png deleted file mode 100644 index 07dd27ad7..000000000 Binary files a/priv/static/finmoji/128px/the_king-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/the_voice-128.png b/priv/static/finmoji/128px/the_voice-128.png deleted file mode 100644 index bb436f95b..000000000 Binary files a/priv/static/finmoji/128px/the_voice-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/theoriginalsanta-128.png b/priv/static/finmoji/128px/theoriginalsanta-128.png deleted file mode 100644 index 082d58c28..000000000 Binary files a/priv/static/finmoji/128px/theoriginalsanta-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/tomoffinland-128.png b/priv/static/finmoji/128px/tomoffinland-128.png deleted file mode 100644 index 29c68bcba..000000000 Binary files a/priv/static/finmoji/128px/tomoffinland-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/torillatavataan-128.png b/priv/static/finmoji/128px/torillatavataan-128.png deleted file mode 100644 index da7b502b4..000000000 Binary files a/priv/static/finmoji/128px/torillatavataan-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/unbreakable-128.png b/priv/static/finmoji/128px/unbreakable-128.png deleted file mode 100644 index eb825e14f..000000000 Binary files a/priv/static/finmoji/128px/unbreakable-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/waiting-128.png b/priv/static/finmoji/128px/waiting-128.png deleted file mode 100644 index 10b9167f2..000000000 Binary files a/priv/static/finmoji/128px/waiting-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/white_nights-128.png b/priv/static/finmoji/128px/white_nights-128.png deleted file mode 100644 index 8eacd11f0..000000000 Binary files a/priv/static/finmoji/128px/white_nights-128.png and /dev/null differ diff --git a/priv/static/finmoji/128px/woollysocks-128.png b/priv/static/finmoji/128px/woollysocks-128.png deleted file mode 100644 index 856af5b2e..000000000 Binary files a/priv/static/finmoji/128px/woollysocks-128.png and /dev/null differ diff --git a/priv/static/finmoji/LICENSE b/priv/static/finmoji/LICENSE deleted file mode 100644 index e3a607aa3..000000000 --- a/priv/static/finmoji/LICENSE +++ /dev/null @@ -1 +0,0 @@ -these are under CC-BY-ND, see https://finland.fi/emoji/ diff --git a/test/emoji_test.exs b/test/emoji_test.exs index cb1d62d00..2eaa26be6 100644 --- a/test/emoji_test.exs +++ b/test/emoji_test.exs @@ -15,7 +15,7 @@ defmodule Pleroma.EmojiTest do assert tuple_size(emoji) == 3 assert is_binary(code) assert is_binary(path) - assert is_binary(tags) + assert is_list(tags) end test "random emoji", %{emoji_list: emoji_list} do @@ -25,7 +25,7 @@ defmodule Pleroma.EmojiTest do assert tuple_size(emoji) == 3 assert is_binary(code) assert is_binary(path) - assert is_binary(tags) + assert is_list(tags) end end diff --git a/test/formatter_test.exs b/test/formatter_test.exs index e74985c4e..97eb2f583 100644 --- a/test/formatter_test.exs +++ b/test/formatter_test.exs @@ -245,10 +245,10 @@ defmodule Pleroma.FormatterTest do end test "it adds cool emoji" do - text = "I love :moominmamma:" + text = "I love :firefox:" expected_result = - "I love \"moominmamma\"" + "I love \"firefox\"" assert Formatter.emojify(text) == expected_result end @@ -269,10 +269,10 @@ defmodule Pleroma.FormatterTest do end test "it returns the emoji used in the text" do - text = "I love :moominmamma:" + text = "I love :firefox:" assert Formatter.get_emoji(text) == [ - {"moominmamma", "/finmoji/128px/moominmamma-128.png", "Finmoji"} + {"firefox", "/emoji/Firefox.gif", ["Gif", "Fun"]} ] end diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 6bb81a054..7d301b0d4 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -946,7 +946,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do test "it strips internal fields" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu :moominmamma:"}) + {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu :firefox:"}) {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 3d2bb8929..a5b07c446 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -40,19 +40,19 @@ defmodule Pleroma.Web.CommonAPITest do test "it adds emoji in the object" do user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{"status" => ":moominmamma:"}) + {:ok, activity} = CommonAPI.post(user, %{"status" => ":firefox:"}) - assert Object.normalize(activity).data["emoji"]["moominmamma"] + assert Object.normalize(activity).data["emoji"]["firefox"] end test "it adds emoji when updating profiles" do - user = insert(:user, %{name: ":karjalanpiirakka:"}) + user = insert(:user, %{name: ":firefox:"}) CommonAPI.update(user) user = User.get_cached_by_ap_id(user.ap_id) - [karjalanpiirakka] = user.info.source_data["tag"] + [firefox] = user.info.source_data["tag"] - assert karjalanpiirakka["name"] == ":karjalanpiirakka:" + assert firefox["name"] == ":firefox:" end describe "posting" do diff --git a/test/web/common_api/common_api_utils_test.exs b/test/web/common_api/common_api_utils_test.exs index f0c59d5c3..837a66063 100644 --- a/test/web/common_api/common_api_utils_test.exs +++ b/test/web/common_api/common_api_utils_test.exs @@ -37,21 +37,21 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do end test "parses emoji from name and bio" do - {:ok, user} = UserBuilder.insert(%{name: ":karjalanpiirakka:", bio: ":perkele:"}) + {:ok, user} = UserBuilder.insert(%{name: ":blank:", bio: ":firefox:"}) expected = [ %{ "type" => "Emoji", - "icon" => %{"type" => "Image", "url" => "#{Endpoint.url()}/finmoji/128px/perkele-128.png"}, - "name" => ":perkele:" + "icon" => %{"type" => "Image", "url" => "#{Endpoint.url()}/emoji/Firefox.gif"}, + "name" => ":firefox:" }, %{ "type" => "Emoji", "icon" => %{ "type" => "Image", - "url" => "#{Endpoint.url()}/finmoji/128px/karjalanpiirakka-128.png" + "url" => "#{Endpoint.url()}/emoji/blank.png" }, - "name" => ":karjalanpiirakka:" + "name" => ":blank:" } ] diff --git a/test/web/push/impl_test.exs b/test/web/push/impl_test.exs index 6bac2c9f6..49b2a9203 100644 --- a/test/web/push/impl_test.exs +++ b/test/web/push/impl_test.exs @@ -107,7 +107,7 @@ defmodule Pleroma.Web.Push.ImplTest do "type" => "Create", "object" => %{ "content" => - "Lorem ipsum dolor sit amet, consectetur :bear: adipiscing elit. Fusce sagittis finibus turpis." + "Lorem ipsum dolor sit amet, consectetur :firefox: adipiscing elit. Fusce sagittis finibus turpis." } } } @@ -129,7 +129,7 @@ defmodule Pleroma.Web.Push.ImplTest do insert(:note, %{ data: %{ "content" => - "Lorem ipsum dolor sit amet, consectetur :bear: adipiscing elit. Fusce sagittis finibus turpis." + "Lorem ipsum dolor sit amet, consectetur :firefox: adipiscing elit. Fusce sagittis finibus turpis." } }) diff --git a/test/web/twitter_api/twitter_api_test.exs b/test/web/twitter_api/twitter_api_test.exs index 5bea1037a..6b4cefacf 100644 --- a/test/web/twitter_api/twitter_api_test.exs +++ b/test/web/twitter_api/twitter_api_test.exs @@ -41,7 +41,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do input = %{ "status" => - "Hello again, @shp.\nThis is on another :moominmamma: line. #2hu #epic #phantasmagoric", + "Hello again, @shp.\nThis is on another :firefox: line. #2hu #epic #phantasmagoric", "media_ids" => [object.id] } @@ -49,7 +49,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do object = Object.normalize(activity.data["object"]) expected_text = - "Hello again, @shp.<script></script>
This is on another :moominmamma: line.
image.jpg" + "Hello again, @shp.<script></script>
This is on another :firefox: line.
image.jpg" assert get_in(object.data, ["content"]) == expected_text assert get_in(object.data, ["type"]) == "Note" @@ -65,8 +65,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do assert Enum.member?(get_in(activity.data, ["to"]), "shp") assert activity.local == true - assert %{"moominmamma" => "http://localhost:4001/finmoji/128px/moominmamma-128.png"} = - object.data["emoji"] + assert %{"firefox" => "http://localhost:4001/emoji/Firefox.gif"} = object.data["emoji"] # hashtags assert object.data["tag"] == ["2hu", "epic", "phantasmagoric"] diff --git a/test/web/twitter_api/views/activity_view_test.exs b/test/web/twitter_api/views/activity_view_test.exs index b5440c612..d84ab7420 100644 --- a/test/web/twitter_api/views/activity_view_test.exs +++ b/test/web/twitter_api/views/activity_view_test.exs @@ -91,16 +91,16 @@ defmodule Pleroma.Web.TwitterAPI.ActivityViewTest do test "a create activity with a summary containing emoji" do {:ok, activity} = CommonAPI.post(insert(:user), %{ - "spoiler_text" => ":woollysocks: meow", + "spoiler_text" => ":firefox: meow", "status" => "." }) result = ActivityView.render("activity.json", activity: activity) - expected = ":woollysocks: meow" + expected = ":firefox: meow" expected_html = - "\"woollysocks\" meow" + "\"firefox\" meow" assert result["summary"] == expected assert result["summary_html"] == expected_html