forked from LimnoriaPlugins/UnicodeEmoji
Georg Pfuetzenreuter
c35277bf59
To improve the user experience: - on queries of non-existent emotes, fall back to a default instead of returning KeyError - allow lookup of emotes regardless of capitalization Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
176 lines
6.6 KiB
Python
176 lines
6.6 KiB
Python
###
|
||
# Copyright (c) 2020, mogad0n
|
||
# All rights reserved.
|
||
#
|
||
# Redistribution and use in source and binary forms, with or without
|
||
# modification, are permitted provided that the following conditions are met:
|
||
#
|
||
# * Redistributions of source code must retain the above copyright notice,
|
||
# this list of conditions, and the following disclaimer.
|
||
# * Redistributions in binary form must reproduce the above copyright notice,
|
||
# this list of conditions, and the following disclaimer in the
|
||
# documentation and/or other materials provided with the distribution.
|
||
# * Neither the name of the author of this software nor the name of
|
||
# contributors to this software may be used to endorse or promote products
|
||
# derived from this software without specific prior written consent.
|
||
#
|
||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||
# POSSIBILITY OF SUCH DAMAGE.
|
||
|
||
###
|
||
|
||
from supybot import utils, plugins, ircutils, callbacks
|
||
from supybot.commands import *
|
||
try:
|
||
from supybot.i18n import PluginInternationalization
|
||
_ = PluginInternationalization('UnicodeEmoji')
|
||
except ImportError:
|
||
# Placeholder that allows to run the plugin on a bot
|
||
# without the i18n module
|
||
_ = lambda x: x
|
||
|
||
emoji = {'innocent':'ʘ‿ʘ',
|
||
'disapproval':'ಠ_ಠ',
|
||
'tableflip':'(╯°□°)╯︵ ┻━┻',
|
||
'putbacktable':'┬─┬ ノ( ゜-゜ノ)',
|
||
'tidy-up':'┬─┬⃰͡ (ᵔᵕᵔ͜ )',
|
||
'double-Flip':'┻━┻ ︵ヽ(`Д´)ノ︵ ┻━┻',
|
||
'fisticuffs':'ლ(`ー´ლ)',
|
||
'cute-bear':'ʕ•ᴥ•ʔ',
|
||
'squinting-bear':'ʕᵔᴥᵔʔ',
|
||
'gtfo-bear':'ʕ •`ᴥ•´ʔ',
|
||
'cuteface':'(。◕‿◕。)',
|
||
'surprised':'( ゚Д゚)',
|
||
'shrug-face':'¯\\_(ツ)_/¯',
|
||
'meh':'¯\\(°_o)/¯',
|
||
'feel-perky':'(`・ω・´)',
|
||
'angry-face':'(╬ ಠ益ಠ)',
|
||
'at-what-cost':'ლ(ಠ益ಠლ)',
|
||
'excited':'☜(⌒▽⌒)☞',
|
||
'running':'ε=ε=ε=┌(;*´Д`)ノ',
|
||
'happy-face':'ヽ(´▽`)/',
|
||
'glory':'ヽ(´ー`)ノ',
|
||
'kitty-emote':'ᵒᴥᵒ#',
|
||
'fido':'V•ᴥ•V',
|
||
'meow':'ฅ^•ﻌ•^ฅ',
|
||
'cheers':'( ^_^)o自自o(^_^ )',
|
||
'devious':'ಠ‿ಠ',
|
||
'4chan':'( ͡° ͜ʖ ͡°)',
|
||
'crying':'ಥ_ಥ',
|
||
'breakdown':'ಥ﹏ಥ',
|
||
'disagree':'٩◔̯◔۶',
|
||
'flexing':'ᕙ(⇀‸↼‶)ᕗ',
|
||
'do-you-even-lift-bro?':' ᕦ(ò_óˇ)ᕤ',
|
||
'kirby':'⊂(◉‿◉)つ',
|
||
'tripping-out':'q(❂‿❂)p',
|
||
'discombobulated':'⊙﹏⊙',
|
||
'sad-and-confused':'¯\\_(⊙︿⊙)_/¯',
|
||
'japanese-lion-face':'°‿‿°',
|
||
'confused':'¿ⓧ_ⓧﮌ',
|
||
'confused-scratch':'(⊙.☉)7',
|
||
'worried':'(´・_・`)',
|
||
'dear-god-why':'щ(゚Д゚щ)',
|
||
'staring':'٩(๏_๏)۶',
|
||
'pretty-eyes':'ఠ_ఠ',
|
||
'strut':'ᕕ( ᐛ )ᕗ',
|
||
'zoned':'(⊙_◎)',
|
||
'crazy':'ミ●﹏☉ミ',
|
||
'trolling':'༼∵༽ ༼⍨༽ ༼⍢༽ ༼⍤༽',
|
||
'angry-troll':'ヽ༼ ಠ益ಠ ༽ノ',
|
||
'fuck-it':'t(-_-t)',
|
||
'sad-face':'(ಥ⌣ಥ)',
|
||
'hugger':'(づ ̄ ³ ̄)づ',
|
||
'stranger-danger':'(づ。◕‿‿◕。)づ',
|
||
'flip-friend':'(ノಠ ∩ಠ)ノ彡( \\o°o)\\',
|
||
'cry-face':'。゚( ゚இ‸இ゚)゚。',
|
||
'cry-troll':'༼ ༎ຶ ෴ ༎ຶ༽',
|
||
'tgif':'“ヽ(´▽`)ノ”',
|
||
'dancing':'┌(ㆆ㉨ㆆ)ʃ',
|
||
'sleepy':'눈_눈',
|
||
'angry-birds':'( ఠൠఠ )ノ',
|
||
'no-support':'乁( ◔ ౪◔)「 ┑( ̄Д  ̄)┍',
|
||
'shy':'(๑•́ ₃ •̀๑)',
|
||
'fly-away':'⁽⁽ଘ( ˊᵕˋ )ଓ⁾⁾',
|
||
'careless':'◔_◔',
|
||
'love':'♥‿♥',
|
||
'ididit':'ԅ(≖‿≖ԅ)',
|
||
'kissing':'( ˘ ³˘)♥',
|
||
'shark-face':'( ˇ෴ˇ )',
|
||
'emo-dance':'ヾ(-_- )ゞ',
|
||
'dance':'♪♪ ヽ(ˇ∀ˇ )ゞ',
|
||
'opera':'ヾ(´〇`)ノ♪♪♪',
|
||
'winnie-the-pooh':'ʕ •́؈•̀)',
|
||
'boxing':'ლ(•́•́ლ)',
|
||
'fight':"(ง'̀-'́)ง",
|
||
'headphones':'◖ᵔᴥᵔ◗ ♪ ♫',
|
||
'robot':'{•̃_•̃}',
|
||
'seal':'(ᵔᴥᵔ)',
|
||
'questionable':'(Ծ‸ Ծ)',
|
||
'winning':'(•̀ᴗ•́)و ̑̑',
|
||
'zombie':'[¬º-°]¬',
|
||
'pointing':'(☞゚ヮ゚)☞',
|
||
'whistling':'(っ•́。•́)♪♬',
|
||
'injured':'(҂◡_◡)',
|
||
'creeper':'ƪ(ړײ)ƪ',
|
||
'eye-roll':'⥀.⥀',
|
||
'flying':'ح˚௰˚づ',
|
||
'cannotunsee':'♨_♨',
|
||
'looking-down':'(._.)',
|
||
'imahugger':'(⊃。•́‿•̀。)⊃',
|
||
'wizard':'(∩`-´)⊃━☆゚.*・。゚',
|
||
'yum':'(っ˘ڡ˘ς)',
|
||
'judging':'( ఠ ͟ʖ ఠ)',
|
||
'tired':'( ͡ಠ ʖ̯ ͡ಠ)',
|
||
'dislike':'( ಠ ʖ̯ ಠ)',
|
||
'hitchhiking':'(งツ)ว',
|
||
'satisfied':'(◠﹏◠)',
|
||
'sadcry':'(ᵟຶ︵ ᵟຶ)',
|
||
'stunna-shades':'(っ▀¯▀)つ',
|
||
'chicken':'ʚ(•`',
|
||
'barf':'(´ж`ς)',
|
||
'fuck-off':'(° ͜ʖ͡°)╭∩╮',
|
||
'smiley-toast':'ʕʘ̅͜ʘ̅ʔ',
|
||
'exorcism':'ح(•̀ж•́)ง †',
|
||
'love':'-`ღ´-',
|
||
'taking-a-dump':'(⩾﹏⩽)',
|
||
'dab':'ヽ( •_)ᕗ',
|
||
'wave-dance':'~(^-^)~',
|
||
'happy-hug':'\\(ᵔᵕᵔ)/',
|
||
'resting-my-eyes':'ᴖ̮ ̮ᴖ',
|
||
'peepers':'ಠಠ',
|
||
'judgemental':'{ಠʖಠ}',
|
||
}
|
||
|
||
|
||
class UnicodeEmoji(callbacks.Plugin):
|
||
"""A growing set of Unicode Emojis"""
|
||
|
||
def e(self, irc, msg, args, emote):
|
||
"""<emote>
|
||
|
||
Prints the Unicode emoji as listed here https://gist.github.com/mogad0n/476c3880dc0e0a059ed03efa265e50f7
|
||
"""
|
||
|
||
re = emoji.get(emote.lower())
|
||
if re is None:
|
||
re = emoji['fuck-off']
|
||
irc.reply('%s' % re, msg=msg, prefixNick=False )
|
||
|
||
e = wrap(e, ['text'])
|
||
|
||
|
||
Class = UnicodeEmoji
|
||
|
||
|
||
|
||
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
|