diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-09-06 23:04:13 -0700 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2017-09-06 23:11:58 -0700 |
commit | d8bd57901e33a7057e26e782e295099ffcc0da89 (patch) | |
tree | e12dfc8cad42b1576756d19d7fbfd82646a009bf /webapp/make-emojis | |
parent | 7bc8e9a08dfde56387f946fdf5086252aa4d0491 (diff) | |
download | chat-d8bd57901e33a7057e26e782e295099ffcc0da89.tar.gz chat-d8bd57901e33a7057e26e782e295099ffcc0da89.tar.bz2 chat-d8bd57901e33a7057e26e782e295099ffcc0da89.zip |
Removing webapp
Diffstat (limited to 'webapp/make-emojis')
-rwxr-xr-x | webapp/make-emojis | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/webapp/make-emojis b/webapp/make-emojis deleted file mode 100755 index 2279934f6..000000000 --- a/webapp/make-emojis +++ /dev/null @@ -1,194 +0,0 @@ -#!/usr/bin/env ruby - -gem_name, *gem_ver_reqs = 'gemoji', '~> 3.0.0' -gdep = Gem::Dependency.new(gem_name, *gem_ver_reqs) -found_gspec = gdep.matching_specs.max_by(&:version) - -if !found_gspec - abort("ERROR: gemoji #{gdep.requirement} is required: `gem install gemoji -v '#{gdep.requirement}'`") -end - -puts "using gemoji #{found_gspec.version}" - -gem 'gemoji', found_gspec.version -require 'emoji' -require 'fileutils' -require 'json' - -emoji_path = File.join(File.dirname(__FILE__), 'images', 'emoji') -if File.directory? emoji_path - FileUtils.remove_dir emoji_path -end -Dir.mkdir emoji_path - -Emoji.create('mattermost') -FileUtils.cp(File.join(File.dirname(__FILE__), 'images', 'icon64x64.png'), File.join(emoji_path, 'mattermost.png')) - -custom_aliases = { - "ca" => "canada", - "pk" => "pakistan", - "za" => "south_africa" -} -custom_aliases.each do |custom, original| - emoji = Emoji.find_by_alias original - - Emoji.edit_emoji(emoji) do |char| - char.add_alias custom - end -end - -blacklist = ['basecamp', 'basecampy'] - -categories = [] - -File.open(File.join(File.dirname(__FILE__), 'utils', 'emoji.jsx'), 'w') do |f| - emojis = [] - emoji_indices_by_alias = [] - emoji_indices_by_unicode = [] - emoji_indices_by_category = [] - - Emoji.all.each do |emoji| - if blacklist.include? emoji.name - next - end - emoji.aliases.each do |emoji_alias| - emoji_indices_by_alias << [emoji_alias, emojis.length] - end - emoji.unicode_aliases.each do |unicode_alias| - emoji_indices_by_unicode << [emoji.class.hex_inspect(unicode_alias), emojis.length] - end - category = emoji.category ? emoji.category.downcase : 'custom' - if !categories.include? category - categories << category - emoji_indices_by_category << [category, []] - end - emoji_indices_by_category[categories.index(category)][1] << emojis.length - filename = emoji.custom? ? emoji.name : emoji.hex_inspect - emojis << { - 'aliases' => emoji.aliases, - 'filename' => filename, - 'category' => category, - } - emoji.image_filename = filename + '.png' - end - - f.write("// This file is automatically generated via `make emojis`. Do not modify it manually.\n\n") - f.write("/* eslint-disable */\n\n") - f.write("export const Emojis = #{JSON.generate emojis};\n\n") - f.write("export const EmojiIndicesByAlias = new Map(#{JSON.generate emoji_indices_by_alias});\n\n") - f.write("export const EmojiIndicesByUnicode = new Map(#{JSON.generate emoji_indices_by_unicode});\n\n") - f.write("export const CategoryNames = #{JSON.generate categories};\n\n") - f.write("export const EmojiIndicesByCategory = new Map(#{JSON.generate emoji_indices_by_category});\n\n") - f.write("/* eslint-enable */") - - puts "wrote #{emojis.length} emojis to utils/emoji.jsx" -end - -require 'emoji/extractor' - -Emoji::Extractor.new(64, emoji_path).extract! - -Dir["#{Emoji.images_path}/*.png"].each do |png| - if blacklist.include? File.basename(png, '.png') - next - end - FileUtils.cp(png, File.join(emoji_path, File.basename(png))) -end - -puts "images written to images/emoji" - -### Spritesheet Generation ### - -['sprite-factory', 'chunky_png'].each do |name| - gdep = Gem::Dependency.new(name, '>1.0') - found_gspec = gdep.matching_specs.max_by(&:version) - - if !found_gspec - abort("ERROR: #{name} is required for spritesheet generation: `gem install #{name}'`") - end -end - -require 'sprite_factory' - -css_rules = [ - '@charset "UTF-8";', - '.emojisprite-preview {', - ' @include transform(scale(.55));', - ' background-repeat: no-repeat;', - ' cursor: pointer;', - ' height: 64px;', - ' max-width: none;', - ' transform-origin: 0 0;', - ' width: 64px;', - ' padding: 0 10px 0 0;', - '}', - '.emojisprite {', - ' @include transform(scale(.35));', - ' background-repeat: no-repeat;', - ' border-radius: 18px;', - ' cursor: pointer;', - ' height: 64px;', - ' max-width: none;', - ' transform-origin: 0 0;', - ' width: 64px;', - '}', - '.emojisprite-loading {', - ' background-image: none !important;', - ' @include transform(scale(.35));', - ' background-repeat: no-repeat;', - ' border-radius: 18px;', - ' cursor: pointer;', - ' height: 64px;', - ' max-width: none;', - ' transform-origin: 0 0;', - ' width: 64px;', - '}', -] - -spritesheet_path = File.join(File.dirname(__FILE__), 'images', 'emoji-sheets') -if File.directory? spritesheet_path - FileUtils.remove_dir spritesheet_path -end -Dir.mkdir spritesheet_path - -categories.each do |category| - count = 0 - - tmp_directory = File.join(spritesheet_path, 'temp') - Dir.mkdir tmp_directory - Emoji.all.each do |emoji| - if blacklist.include? emoji.name - next - end - if category == (emoji.category ? emoji.category.downcase : 'custom') - FileUtils.cp(File.join(emoji_path, emoji.image_filename), File.join(tmp_directory, emoji.image_filename)) - count += 1 - end - end - - css_rules << ".emoji-category-#{category} { background-image: url('../images/emoji-sheets/#{category}.png'); }" - - SpriteFactory.run!( - tmp_directory, - :layout => :packed, - :library => 'chunkypng', - :output_image => File.join(spritesheet_path, category + '.png'), - :nocomments => true, - :nocss => true, - ) do |images| - images.each do |name, image| - if image[:cssw] != 64 || image[:cssh] != 64 - css_rules << ".emoji-#{name} { background-position: -#{image[:cssx]}px -#{image[:cssy]}px; width: #{image[:cssw]}px; height: #{image[:cssh]}px; }" - else - css_rules << ".emoji-#{name} { background-position: -#{image[:cssx]}px -#{image[:cssy]}px; }" - end - end - end - - FileUtils.remove_dir tmp_directory - - puts "#{count} emojis written to images/emoji-sheets/#{category}.png" -end - -File.write(File.join(File.dirname(__FILE__), 'sass', 'components', '_emojisprite.scss'), css_rules.join("\n")) -puts "sprite stylesheet written to sass/components/_emojisprite.scss" |