#!/usr/bin/env ruby
require 'json'

json_in = ARGF.read

if json_in.length < 1
  puts "Oops, need JSON data. Pipe in or supply filename."
  exit 1
end

list = JSON.parse(json_in)

emoj_txt = ""
labels = ""
tags = ""
all_tags = []

list.each do |e|
  emoj_txt << e["emoji"]
  labels << e["label"]
  if e["tags"]
    tags << e["tags"].join("")
    all_tags.concat e["tags"]
  end
end

unique_tags = all_tags.uniq

tb = tags.bytesize
lb = labels.bytesize
eb = emoj_txt.bytesize

puts "        List length: #{list.length}"
puts "      Raw emoji len: #{emoj_txt.length} (longer than list due to multi-character combos!)"
puts "    Raw emoji bytes: #{eb} (much longer due to multibyte + multi-character)"
puts "     Labels (bytes): #{lb}"
puts "               Tags: #{all_tags.length}"
puts "       Tags (bytes): #{tb}"
puts "        Unique tags: #{unique_tags.length}"
puts "Unique tags (bytes): #{unique_tags.join("").bytesize}"
puts "--------------------------------------"
puts "Tags + Labels + Emoji (bytes): #{tb+lb+eb}"
