CactusDev / CactusBot

An open source, community-written service-agnostic chat bot
MIT License
30 stars 5 forks source link

Emoji standard #55

Closed 2Cubed closed 7 years ago

2Cubed commented 8 years ago

We need a standard for defining emoticons in MessagePackets (#43).


For Unicode emoticons, we should follow emoji-alpha-codes. So, :stuck_out_tongue: should be saved with the data :stuck_out_tongue:.

However, there are lots of emoticons which do not appear in Unicode. (For example, :mappa/Kappa.) What do we do in this case? Also, because we can only use each name once, where do we store the list of used names? (Preferably with descriptions of what each means.)

Innectic commented 8 years ago

Well, since :mappa and Kappa are used to show sarcasm, maybe we just say sarcasm in the file?

2Cubed commented 8 years ago

@Innectic I agree. Currently, EAC's are being stored with the ::s - I guess custom ones can be stored without.

However, the question still stands... where do we store our global list of custom codes? We need to specify somewhere what each custom code means, and keep track of every one we define so that we don't accidentally duplicate any and make the conversions not work.

Innectic commented 8 years ago

We already took care of this, didn't we?

2Cubed commented 8 years ago

@Innectic Not entirely. I'm OK with storing Unicode emojis with the EAC alphas and the non-Unicode ones with non-::s.

Where do we put the global list of custom codes, though? We need a "table" of sorts that details every custom code we're using, and what it defines. (If we don't have this, it would be easy to forget that, say, :mappa is sarcasm and use troll for Kappa.) Would a giant JSON file, similar to the EAC, work? We could put it in docs/, maybe, and have a documentation file that uses JS to load it all into a table? :thinking:

Innectic commented 8 years ago

We have a json file in the base of the beam service that handles that. I thought that's what we were doing for everything?

2Cubed commented 8 years ago

@Innectic Yes, we need those. However, those are just mappings for each service. (:cactus -> :cactus:, :) -> :smiley:, :mappa -> sarcasm, etc.) We need a global file that explains what every custom code (like sarcasm) means, or at least lists them.

{
  "sarcasm": "face implying a sarcastic statement",
  "salute": "face with saluting hand"
}
2Cubed commented 7 years ago

Should we use Unicode as our default instead of Emoji Alpha Codes? This would simplify the translation for services like Discord and make cross-service displaying look (arguably) better overall.

Innectic commented 7 years ago

@2Cubed Beam chat doesn't support it and neither does twitch. That means only one planned platform can support it

2Cubed commented 7 years ago

@Innectic Unicode is the universal standard. We're going to be translating to and from it - we need not worry about what services support it natively. (And even if we were worrying about that, Unicode emoji render as actual emoji on Beam and Twitch, whereas :stuck_out_tongue: won't.)

Innectic commented 7 years ago

That's the point of the annoying file called emoji.json. Converting emotes.

2Cubed commented 7 years ago

@Innectic Yes. The question is, should :) be translated to :smile:, or to 🙂? This decision would only be seen if we don't have a translation for a specific emoji, but we should pick a good standard nonetheless.

I think we should use Unicode when it's a Unicode emote (🙂), but EAC format when it's a custom emote (:sarcasm:, :python:, etc.).

2Cubed commented 7 years ago

Done in #139.