1
0
Fork 0
tinmop/src/emoji-shortcodes.lisp

1045 lines
47 KiB
Common Lisp
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;; tinmop: a multiprotocol client
;; Copyright © cage
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program.
;; If not, see [[http://www.gnu.org/licenses/][http://www.gnu.org/licenses/]].
(in-package :emoji-shortcodes)
(defparameter *shortcodes-db*
'((":brown_square:" . "🟫")
(":purple_square:" . "🟪")
(":blue_square:" . "🟦")
(":green_square:" . "🟩")
(":yellow_square:" . "🟨")
(":orange_square:" . "🟧")
(":red_square:" . "🟥")
(":brown_circle:" . "🟤")
(":purple_circle:" . "🟣")
(":green_circle:" . "🟢")
(":yellow_circle:" . "🟡")
(":orange_circle:" . "🟠")
(":razor:" . "🪒")
(":chair:" . "🪑")
(":stethoscope:" . "🩺")
(":bandaid:" . "🩹")
(":blood_drop:" . "🩸")
(":probing_cane:" . "🦯")
(":axe:" . "🪓")
(":diya_lamp:" . "🪔")
(":banjo:" . "🪕")
(":ballet_shoes:" . "🩰")
(":shorts:" . "🩳")
(":briefs:" . "🩲")
(":one_piece_swimsuit:" . "🩱")
(":sari:" . "🥻")
(":safety_vest:" . "🦺")
(":kite:" . "🪁")
(":yoyo:" . "🪀")
(":diving_mask:" . "🤿")
(":ringed_planet:" . "🪐")
(":parachute:" . "🪂")
(":auto_rickshaw:" . "🛺")
(":motor_wheelchair:" . "🦼")
(":wheelchair:" . "🦽")
(":hindu_temple:" . "🛕")
(":ice:" . "🧊")
(":mate:" . "🧉")
(":beverage_box:" . "🧃")
(":oyster:" . "🦪")
(":butter:" . "🧈")
(":falafel:" . "🧆")
(":waffle:" . "🧇")
(":onion:" . "🧅")
(":garlic:" . "🧄")
(":flamingo:" . "🦩")
(":skunk:" . "🦨")
(":otter:" . "🦦")
(":sloth:" . "🦥")
(":guide_dog:" . "🦮")
(":orangutan:" . "🦧")
(":person_kneeling:" . "🧎")
(":person_standing:" . "🧍")
(":person_deaf:" . "🧏")
(":hearing_aid:" . "🦻")
(":mech_leg:" . "🦿")
(":mech_arm:" . "🦾")
(":pinch:" . "🤏")
(":white_heart:" . "🤍")
(":brown_heart:" . "🤎")
(":yawn:" . "🥱")
(":fire_extinguisher:" . "🧯")
(":sponge:" . "🧽")
(":soap:" . "🧼")
(":toilet_paper:" . "🧻")
(":basket:" . "🧺")
(":broom:" . "🧹")
(":safety_pin:" . "🧷")
(":lotion:" . "🧴")
(":dna:" . "🧬")
(":petri_dish:" . "🧫")
(":test_tube:" . "🧪")
(":magnet:" . "🧲")
(":toolbox:" . "🧰")
(":receipt:" . "🧾")
(":abacus:" . "🧮")
(":flat_shoe:" . "🥿")
(":hiking_boot:" . "🥾")
(":lab_coat:" . "🥼")
(":goggles:" . "🥽")
(":yarn:" . "🧶")
(":spool:" . "🧵")
(":teddy_bear:" . "🧸")
(":jigsaw:" . "🧩")
(":nazar_amulet:" . "🧿")
(":lacrosse:" . "🥍")
(":flying_disc:" . "🥏")
(":softball:" . "🥎")
(":red_envelope:" . "🧧")
(":firecracker:" . "🧨")
(":luggage:" . "🧳")
(":skateboard:" . "🛹")
(":brick:" . "🧱")
(":compass:" . "🧭")
(":cupcake:" . "🧁")
(":lobster:" . "🦞")
(":moon_cake:" . "🥮")
(":salt:" . "🧂")
(":bagel:" . "🥯")
(":leafy_green:" . "🥬")
(":mango:" . "🥭")
(":microbe:" . "🦠")
(":mosquito:" . "🦟")
(":parrot:" . "🦜")
(":peacock:" . "🦚")
(":swan:" . "🦢")
(":badger:" . "🦡")
(":kangaroo:" . "🦘")
(":hippo:" . "🦛")
(":llama:" . "🦙")
(":raccoon:" . "🦝")
(":bald:" . "🦲")
(":white_hair:" . "🦳")
(":curly_hair:" . "🦱")
(":red_hair:" . "🦰")
(":villain:" . "🦹")
(":hero:" . "🦸")
(":bone:" . "🦴")
(":tooth:" . "🦷")
(":foot:" . "🦶")
(":leg:" . "🦵")
(":pleading:" . "🥺")
(":partying:" . "🥳")
(":woozy:" . "🥴")
(":freezing:" . "🥶")
(":overheating:" . "🥵")
(":love:" . "🥰")
(":billed_cap:" . "🧢")
(":socks:" . "🧦")
(":coat:" . "🧥")
(":gloves:" . "🧤")
(":scarf:" . "🧣")
(":curling_stone:" . "🥌")
(":sled:" . "🛷")
(":flying_saucer:" . "🛸")
(":chopsticks:" . "🥢")
(":cup_straw:" . "🥤")
(":pie:" . "🥧")
(":takeout_box:" . "🥡")
(":fortune_cookie:" . "🥠")
(":dumpling:" . "🥟")
(":canned_food:" . "🥫")
(":bowl_spoon:" . "🥣")
(":sandwich:" . "🥪")
(":cut_of_meat:" . "🥩")
(":pretzel:" . "🥨")
(":broccoli:" . "🥦")
(":coconut:" . "🥥")
(":cricket:" . "🦗")
(":trex:" . "🦖")
(":sauropod:" . "🦕")
(":hedgehog:" . "🦔")
(":giraffe:" . "🦒")
(":zebra:" . "🦓")
(":person_lotus_position:" . "🧘")
(":person_climbing:" . "🧗")
(":person_steamy_room:" . "🧖")
(":zombie:" . "🧟")
(":genie:" . "🧞")
(":elf:" . "🧝")
(":merperson:" . "🧜")
(":vampire:" . "🧛")
(":fairy:" . "🧚")
(":mage:" . "🧙")
(":breast_feeding:" . "🤱")
(":woman_headscarf:" . "🧕")
(":older_adult:" . "🧓")
(":bearded_person:" . "🧔")
(":adult:" . "🧑")
(":child:" . "🧒")
(":brain:" . "🧠")
(":palms_up:" . "🤲")
(":love_you_gesture:" . "🤟")
(":orange_heart:" . "🧡")
(":censored:" . "🤬")
(":monocle:" . "🧐")
(":shocked:" . "🤯")
(":vomiting:" . "🤮")
(":contempt:" . "🤨")
(":shushing:" . "🤫")
(":gasp:" . "🤭")
(":crazy:" . "🤪")
(":starstruck:" . "🤩")
(":shopping_cart:" . "🛒")
(":drum:" . "🥁")
(":goal:" . "🥅")
(":gi:" . "🥋")
(":boxing_glove:" . "🥊")
(":third_place:" . "🥉")
(":second_place:" . "🥈")
(":first_place:" . "🥇")
(":canoe:" . "🛶")
(":stop_sign:" . "🛑")
(":scooter:" . "🛴")
(":motor_scooter:" . "🛵")
(":spoon:" . "🥄")
(":tumbler_glass:" . "🥃")
(":champagne_glass:" . "🥂")
(":milk:" . "🥛")
(":squid:" . "🦑")
(":shrimp:" . "🦐")
(":salad:" . "🥗")
(":shallow_pan_of_food:" . "🥘")
(":egg:" . "🥚")
(":stuffed_flatbread:" . "🥙")
(":bacon:" . "🥓")
(":pancakes:" . "🥞")
(":french_bread:" . "🥖")
(":croissant:" . "🥐")
(":peanuts:" . "🥜")
(":cucumber:" . "🥒")
(":carrot:" . "🥕")
(":potato:" . "🥔")
(":avocado:" . "🥑")
(":kiwi:" . "🥝")
(":wilted_rose:" . "🥀")
(":butterfly:" . "🦋")
(":shark:" . "🦈")
(":lizard:" . "🦎")
(":owl:" . "🦉")
(":duck:" . "🦆")
(":eagle:" . "🦅")
(":bat:" . "🦇")
(":rhino:" . "🦏")
(":deer:" . "🦌")
(":fox_face:" . "🦊")
(":gorilla:" . "🦍")
(":person_juggling:" . "🤹")
(":person_handball:" . "🤾")
(":person_water_polo:" . "🤽")
(":people_wrestling:" . "🤼")
(":person_cartwheel:" . "🤸")
(":person_fencing:" . "🤺")
(":man_dancing:" . "🕺")
(":mrs_claus:" . "🤶")
(":pregnant_woman:" . "🤰")
(":man_tuxedo:" . "🤵")
(":prince:" . "🤴")
(":person_shrugging:" . "🤷")
(":person_facepalming:" . "🤦")
(":selfie:" . "🤳")
(":handshake:" . "🤝")
(":right_facing_fist:" . "🤜")
(":left_facing_fist:" . "🤛")
(":call_me:" . "🤙")
(":fingers_crossed:" . "🤞")
(":raised_backhand:" . "🤚")
(":black_heart:" . "🖤")
(":clown:" . "🤡")
(":cowboy:" . "🤠")
(":sneezing:" . "🤧")
(":nauseated:" . "🤢")
(":drooling:" . "🤤")
(":lying:" . "🤥")
(":entertained:" . "🤣")
(":black_flag:" . "🏴")
(":crossed_flags:" . "🎌")
(":triangle_flag:" . "🚩")
(":checkered_flag:" . "🏁")
(":black_square_button:" . "🔲")
(":white_square_button:" . "🔳")
(":radio_button:" . "🔘")
(":diamond_dot:" . "💠")
(":down_red_triangle:" . "🔻")
(":up_red_triangle:" . "🔺")
(":small_blue_diamond:" . "🔹")
(":small_orange_diamond:" . "🔸")
(":large_blue_diamond:" . "🔷")
(":large_orange_diamond:" . "🔶")
(":blue_circle:" . "🔵")
(":red_circle:" . "🔴")
(":ja_no_vacancy:" . "🈵")
(":ja_open_for_business:" . "🈺")
(":ja_vacancy:" . "🈳")
(":ja_passing_grade:" . "🈴")
(":ja_application:" . "🈸")
(":ja_acceptable:" . "🉑")
(":ja_prohibited:" . "🈲")
(":ja_discount:" . "🈹")
(":ja_bargain:" . "🉐")
(":ja_not_free_of_carge:" . "🈶")
(":ja_here:" . "🈁")
(":vs:" . "🆚")
(":up:" . "🆙")
(":sos:" . "🆘")
(":ok:" . "🆗")
(":ng:" . "🆖")
(":new:" . "🆕")
(":id:" . "🆔")
(":free:" . "🆓")
(":cool:" . "🆒")
(":cl:" . "🆑")
(":ab_blood:" . "🆎")
(":abc:" . "🔤")
(":symbols:" . "🔣")
(":1234:" . "🔢")
(":abcd:" . "🔡")
(":upper_abcd:" . "🔠")
(":ten:" . "🔟")
(":white_exclamation:" . "❕")
(":white_question:" . "❔")
(":double_curly_loop:" . "➿")
(":curly_loop:" . "➰")
(":division:" . "➗")
(":minus:" . "")
(":plus:" . "")
(":cross_mark_button:" . "❎")
(":x:" . "❌")
(":white_check_mark:" . "✅")
(":ja_beginner:" . "🔰")
(":name_badge:" . "📛")
(":trident:" . "🔱")
(":mobile_phone_off:" . "📴")
(":vibration_mode:" . "📳")
(":signal_strength:" . "📶")
(":bright:" . "🔆")
(":dim:" . "🔅")
(":cinema:" . "🎦")
(":fast_down_button:" . "⏬")
(":down_button:" . "🔽")
(":fast_up_button:" . "⏫")
(":up_button:" . "🔼")
(":repeat_single:" . "🔂")
(":repeat:" . "🔁")
(":shuffle:" . "🔀")
(":ophiuchus:" . "⛎")
(":six_pointed_star:" . "🔯")
(":menorah:" . "🕎")
(":place_of_worship:" . "🛐")
(":top:" . "🔝")
(":soon:" . "🔜")
(":on:" . "🔛")
(":end:" . "🔚")
(":back:" . "🔙")
(":counter_clockwise:" . "🔄")
(":clockwise:" . "🔃")
(":underage:" . "🔞")
(":no_mobile_phones:" . "📵")
(":no_pedestrians:" . "🚷")
(":non_potable_water:" . "🚱")
(":do_not_litter:" . "🚯")
(":no_bicycles:" . "🚳")
(":no_entry_sign:" . "🚫")
(":children_crossing:" . "🚸")
(":left_luggage:" . "🛅")
(":baggage_claim:" . "🛄")
(":customs:" . "🛃")
(":passport_control:" . "🛂")
(":wc:" . "🚾")
(":restroom:" . "🚻")
(":potable_water:" . "🚰")
(":litter_bin:" . "🚮")
(":atm:" . "🏧")
(":moai:" . "🗿")
(":cigarette:" . "🚬")
(":bathtub:" . "🛁")
(":shower:" . "🚿")
(":toilet:" . "🚽")
(":door:" . "🚪")
(":pill:" . "💊")
(":syringe:" . "💉")
(":satellite_antenna:" . "📡")
(":telescope:" . "🔭")
(":microscope:" . "🔬")
(":link:" . "🔗")
(":nut_and_bolt:" . "🔩")
(":wrench:" . "🔧")
(":bow:" . "🏹")
(":gun:" . "🔫")
(":hammer:" . "🔨")
(":key:" . "🔑")
(":locked_key:" . "🔐")
(":locked_pen:" . "🔏")
(":triangular_ruler:" . "📐")
(":straight_ruler:" . "📏")
(":paperclip:" . "📎")
(":round_pushpin:" . "📍")
(":pushpin:" . "📌")
(":bar_chart:" . "📊")
(":chart_down:" . "📉")
(":chart_up:" . "📈")
(":card_index:" . "📇")
(":torn_calendar:" . "📆")
(":date:" . "📅")
(":open_file_folder:" . "📂")
(":file_folder:" . "📁")
(":briefcase:" . "💼")
(":memo:" . "📝")
(":postbox:" . "📮")
(":envelope_arrow:" . "📩")
(":incoming_envelope:" . "📨")
(":email:" . "📧")
(":dollar_sign:" . "💲")
(":currency_exchange:" . "💱")
(":ja_chart:" . "💹")
(":money_wings:" . "💸")
(":pound:" . "💷")
(":euro:" . "💶")
(":dollar:" . "💵")
(":yen:" . "💴")
(":bookmark:" . "🔖")
(":bookmark_tabs:" . "📑")
(":newspaper:" . "📰")
(":page_facing_up:" . "📄")
(":scroll:" . "📜")
(":page_curl:" . "📃")
(":ledger:" . "📒")
(":notebook:" . "📓")
(":orange_book:" . "📙")
(":blue_book:" . "📘")
(":green_book:" . "📗")
(":book:" . "📖")
(":closed_book:" . "📕")
(":decorative_notebook:" . "📔")
(":red_lantern:" . "🏮")
(":flashlight:" . "🔦")
(":bulb:" . "💡")
(":mag_right:" . "🔎")
(":vhs:" . "📼")
(":camera_flash:" . "📸")
(":movie_camera:" . "🎥")
(":dvd:" . "📀")
(":floppy_disk:" . "💾")
(":minidisc:" . "💽")
(":electric_plug:" . "🔌")
(":battery:" . "🔋")
(":fax:" . "📠")
(":telephone_receiver:" . "📞")
(":mobile_calling:" . "📲")
(":mobile:" . "📱")
(":violin:" . "🎻")
(":trumpet:" . "🎺")
(":musical_keyboard:" . "🎹")
(":guitar:" . "🎸")
(":saxophone:" . "🎷")
(":microphone:" . "🎤")
(":musical_notes:" . "🎶")
(":musical_note:" . "🎵")
(":musical_score:" . "🎼")
(":no_bell:" . "🔕")
(":bell:" . "🔔")
(":postal_horn:" . "📯")
(":megaphone:" . "📣")
(":loudspeaker:" . "📢")
(":loud_sound:" . "🔊")
(":sound:" . "🔉")
(":mute:" . "🔇")
(":gem:" . "💎")
(":ring:" . "💍")
(":lipstick:" . "💄")
(":prayer_beads:" . "📿")
(":top_hat:" . "🎩")
(":womans_hat:" . "👒")
(":crown:" . "👑")
(":womans_boot:" . "👢")
(":womans_sandal:" . "👡")
(":high_heel:" . "👠")
(":sneaker:" . "👟")
(":dress_shoe:" . "👞")
(":backpack:" . "🎒")
(":pouch:" . "👝")
(":handbag:" . "👜")
(":purse:" . "👛")
(":blouse:" . "👚")
(":bikini:" . "👙")
(":kimono:" . "👘")
(":dress:" . "👗")
(":jeans:" . "👖")
(":shirt:" . "👕")
(":necktie:" . "👔")
(":art:" . "🎨")
(":flower_cards:" . "🎴")
(":black_joker:" . "🃏")
(":game_die:" . "🎲")
(":slot_machine:" . "🎰")
(":crystal_ball:" . "🔮")
(":8ball:" . "🎱")
(":dart:" . "🎯")
(":ski:" . "🎿")
(":running_shirt:" . "🎽")
(":fishing_pole:" . "🎣")
(":badminton:" . "🏸")
(":ping_pong:" . "🏓")
(":hockey:" . "🏒")
(":field_hockey:" . "🏑")
(":cricket_game:" . "🏏")
(":bowling:" . "🎳")
(":tennis:" . "🎾")
(":rugby:" . "🏉")
(":football:" . "🏈")
(":volleyball:" . "🏐")
(":basketball:" . "🏀")
(":medal:" . "🏅")
(":ticket:" . "🎫")
(":gift:" . "🎁")
(":ribbon:" . "🎀")
(":moon_ceremony:" . "🎑")
(":wind_chime:" . "🎐")
(":carp_streamer:" . "🎏")
(":dolls:" . "🎎")
(":bamboo:" . "🎍")
(":tanabata_tree:" . "🎋")
(":confetti_ball:" . "🎊")
(":tada:" . "🎉")
(":balloon:" . "🎈")
(":sparkles:" . "✨")
(":sparkler:" . "🎇")
(":fireworks:" . "🎆")
(":christmas_tree:" . "🎄")
(":jack_o_lantern:" . "🎃")
(":ocean:" . "🌊")
(":droplet:" . "💧")
(":fire:" . "🔥")
(":closed_umbrella:" . "🌂")
(":rainbow:" . "🌈")
(":cyclone:" . "🌀")
(":milky_way:" . "🌌")
(":star3:" . "🌠")
(":star2:" . "🌟")
(":sun_face:" . "🌞")
(":full_moon_face:" . "🌝")
(":first_quarter_moon_face:" . "🌛")
(":new_moon_face:" . "🌚")
(":crescent_moon:" . "🌙")
(":waning_crescent_moon:" . "🌘")
(":last_quarter_moon:" . "🌗")
(":waning_gibbous_moon:" . "🌖")
(":waxing_gibbous_moon:" . "🌔")
(":first_quarter_moon:" . "🌓")
(":waxing_crescent_moon:" . "🌒")
(":new_moon:" . "🌑")
(":alarm_clock:" . "⏰")
(":rocket:" . "🚀")
(":aerial_tramway:" . "🚡")
(":mountain_cableway:" . "🚠")
(":suspension_railway:" . "🚟")
(":helicopter:" . "🚁")
(":seat:" . "💺")
(":airplane_arriving:" . "🛬")
(":airplane_departure:" . "🛫")
(":ship:" . "🚢")
(":speedboat:" . "🚤")
(":construction:" . "🚧")
(":vertical_traffic_light:" . "🚦")
(":traffic_light:" . "🚥")
(":rotating_light:" . "🚨")
(":bus_stop:" . "🚏")
(":tractor:" . "🚜")
(":lorry:" . "🚛")
(":truck:" . "🚚")
(":blue_car:" . "🚙")
(":red_car:" . "🚗")
(":oncoming_taxi:" . "🚖")
(":taxi:" . "🚕")
(":police_car:" . "🚓")
(":fire_engine:" . "🚒")
(":minibus:" . "🚐")
(":trolleybus:" . "🚎")
(":bus:" . "🚌")
(":tram_car:" . "🚋")
(":mountain_railway:" . "🚞")
(":monorail:" . "🚝")
(":tram:" . "🚊")
(":station:" . "🚉")
(":light_rail:" . "🚈")
(":train:" . "🚆")
(":bullettrain:" . "🚅")
(":bullettrain_side:" . "🚄")
(":railway_car:" . "🚃")
(":steam_locomotive:" . "🚂")
(":circus_tent:" . "🎪")
(":barber:" . "💈")
(":roller_coaster:" . "🎢")
(":ferris_wheel:" . "🎡")
(":carousel_horse:" . "🎠")
(":bridge_at_night:" . "🌉")
(":sunset:" . "🌇")
(":dusk:" . "🌆")
(":sunrise:" . "🌅")
(":sunrise_over_mountains:" . "🌄")
(":night_stars:" . "🌃")
(":foggy:" . "🌁")
(":kaaba:" . "🕋")
(":synagogue:" . "🕍")
(":mosque:" . "🕌")
(":statue_of_liberty:" . "🗽")
(":tokyo_tower:" . "🗼")
(":wedding:" . "💒")
(":castle:" . "🏰")
(":japanese_castle:" . "🏯")
(":department_store:" . "🏬")
(":school:" . "🏫")
(":convenience_store:" . "🏪")
(":love_hotel:" . "🏩")
(":hotel:" . "🏨")
(":bank:" . "🏦")
(":hospital:" . "🏥")
(":post_office:" . "🏤")
(":ja_post_office:" . "🏣")
(":office:" . "🏢")
(":house_garden:" . "🏡")
(":mount_fuji:" . "🗻")
(":volcano:" . "🌋")
(":japan:" . "🗾")
(":globe:" . "🌐")
(":amphora:" . "🏺")
(":knife:" . "🔪")
(":utensils:" . "🍴")
(":beers:" . "🍻")
(":beer:" . "🍺")
(":tropical_drink:" . "🍹")
(":wine_glass:" . "🍷")
(":champagne:" . "🍾")
(":sake:" . "🍶")
(":tea:" . "🍵")
(":baby_bottle:" . "🍼")
(":honey_pot:" . "🍯")
(":custard:" . "🍮")
(":lollipop:" . "🍭")
(":candy:" . "🍬")
(":chocolate_bar:" . "🍫")
(":cake:" . "🍰")
(":birthday:" . "🎂")
(":cookie:" . "🍪")
(":doughnut:" . "🍩")
(":ice_cream:" . "🍨")
(":shaved_ice:" . "🍧")
(":icecream:" . "🍦")
(":crab:" . "🦀")
(":dango:" . "🍡")
(":fish_cake:" . "🍥")
(":fried_shrimp:" . "🍤")
(":sushi:" . "🍣")
(":oden:" . "🍢")
(":sweet_potato:" . "🍠")
(":spaghetti:" . "🍝")
(":ramen:" . "🍜")
(":curry:" . "🍛")
(":rice:" . "🍚")
(":rice_ball:" . "🍙")
(":rice_cracker:" . "🍘")
(":bento:" . "🍱")
(":popcorn:" . "🍿")
(":stew:" . "🍲")
(":cooking:" . "🍳")
(":burrito:" . "🌯")
(":taco:" . "🌮")
(":hotdog:" . "🌭")
(":pizza:" . "🍕")
(":fries:" . "🍟")
(":hamburger:" . "🍔")
(":poultry_leg:" . "🍗")
(":meat_on_bone:" . "🍖")
(":cheese:" . "🧀")
(":bread:" . "🍞")
(":chestnut:" . "🌰")
(":mushroom:" . "🍄")
(":corn:" . "🌽")
(":eggplant:" . "🍆")
(":tomato:" . "🍅")
(":strawberry:" . "🍓")
(":cherries:" . "🍒")
(":peach:" . "🍑")
(":pear:" . "🍐")
(":green_apple:" . "🍏")
(":apple:" . "🍎")
(":pineapple:" . "🍍")
(":banana:" . "🍌")
(":lemon:" . "🍋")
(":tangerine:" . "🍊")
(":watermelon:" . "🍉")
(":melon:" . "🍈")
(":grapes:" . "🍇")
(":leaves:" . "🍃")
(":fallen_leaf:" . "🍂")
(":maple_leaf:" . "🍁")
(":four_leaf_clover:" . "🍀")
(":herb:" . "🌿")
(":ear_of_rice:" . "🌾")
(":cactus:" . "🌵")
(":palm_tree:" . "🌴")
(":deciduous_tree:" . "🌳")
(":evergreen_tree:" . "🌲")
(":seedling:" . "🌱")
(":tulip:" . "🌷")
(":blossom:" . "🌼")
(":sunflower:" . "🌻")
(":hibiscus:" . "🌺")
(":rose:" . "🌹")
(":white_flower:" . "💮")
(":cherry_blossom:" . "🌸")
(":bouquet:" . "💐")
(":scorpion:" . "🦂")
(":beetle:" . "🐞")
(":bee:" . "🐝")
(":ant:" . "🐜")
(":bug:" . "🐛")
(":snail:" . "🐌")
(":shell:" . "🐚")
(":octopus:" . "🐙")
(":blowfish:" . "🐡")
(":tropical_fish:" . "🐠")
(":dolphin:" . "🐬")
(":whale:" . "🐋")
(":spouting_whale:" . "🐳")
(":dragon:" . "🐉")
(":dragon_face:" . "🐲")
(":snake:" . "🐍")
(":turtle:" . "🐢")
(":crocodile:" . "🐊")
(":frog_face:" . "🐸")
(":penguin:" . "🐧")
(":hatched_chick:" . "🐥")
(":baby_chick:" . "🐤")
(":hatching_chick:" . "🐣")
(":rooster:" . "🐓")
(":chicken:" . "🐔")
(":turkey:" . "🦃")
(":feet:" . "🐾")
(":panda_face:" . "🐼")
(":koala_face:" . "🐨")
(":bear_face:" . "🐻")
(":rabbit:" . "🐇")
(":rabbit_face:" . "🐰")
(":hamster_face:" . "🐹")
(":rat:" . "🐀")
(":mouse:" . "🐁")
(":mouse_face:" . "🐭")
(":elephant:" . "🐘")
(":two_hump_camel:" . "🐫")
(":camel:" . "🐪")
(":goat:" . "🐐")
(":sheep:" . "🐑")
(":ram:" . "🐏")
(":pig_nose:" . "🐽")
(":boar:" . "🐗")
(":pig:" . "🐖")
(":pig_face:" . "🐷")
(":cow:" . "🐄")
(":water_buffalo:" . "🐃")
(":ox:" . "🐂")
(":cow_face:" . "🐮")
(":unicorn_face:" . "🦄")
(":horse:" . "🐎")
(":horse_face:" . "🐴")
(":leopard:" . "🐆")
(":tiger:" . "🐅")
(":tiger_face:" . "🐯")
(":lion_face:" . "🦁")
(":cat_face:" . "🐱")
(":wolf_face:" . "🐺")
(":poodle:" . "🐩")
(":dog_face:" . "🐶")
(":monkey:" . "🐒")
(":monkey_face:" . "🐵")
(":tone_dark:" . "🏿")
(":tone_medium_dark:" . "🏾")
(":tone_medium:" . "🏽")
(":tone_medium_light:" . "🏼")
(":tone_light:" . "🏻")
(":footprints:" . "👣")
(":busts_silhouette:" . "👥")
(":bust_silhouette:" . "👤")
(":couple_heart:" . "💑")
(":couple:" . "💏")
(":holding_hands_mm:" . "👬")
(":holding_hands_mw:" . "👫")
(":holding_hands_ww:" . "👭")
(":in_bed:" . "🛌")
(":bath:" . "🛀")
(":person_mountain_biking:" . "🚵")
(":person_biking:" . "🚴")
(":person_rowing_boat:" . "🚣")
(":horse_racing:" . "🏇")
(":people_bunny_ears_partying:" . "👯")
(":dancer:" . "💃")
(":person_running:" . "🏃")
(":person_walking:" . "🚶")
(":person_getting_haircut:" . "💇")
(":person_getting_massage:" . "💆")
(":santa:" . "🎅")
(":baby_angel:" . "👼")
(":bride_veil:" . "👰")
(":man_chinese_cap:" . "👲")
(":person_turban:" . "👳")
(":princess:" . "👸")
(":construction_worker:" . "👷")
(":guard:" . "💂")
(":police_officer:" . "👮")
(":person_bowing:" . "🙇")
(":person_raising_hand:" . "🙋")
(":person_tipping_hand:" . "💁")
(":person_gesturing_ok:" . "🙆")
(":person_gesturing_no:" . "🙅")
(":person_pouting:" . "🙎")
(":person_frowning:" . "🙍")
(":older_woman:" . "👵")
(":older_man:" . "👴")
(":woman:" . "👩")
(":man:" . "👨")
(":blond_person:" . "👱")
(":girl:" . "👧")
(":boy:" . "👦")
(":baby:" . "👶")
(":lips:" . "👄")
(":tongue:" . "👅")
(":eyes:" . "👀")
(":nose:" . "👃")
(":muscle:" . "💪")
(":nail_care:" . "💅")
(":pray:" . "🙏")
(":open_hands:" . "👐")
(":raised_hands:" . "🙌")
(":clap:" . "👏")
(":punch:" . "👊")
(":fist:" . "✊")
(":middle_finger:" . "🖕")
(":metal:" . "🤘")
(":ok_hand:" . "👌")
(":vulcan:" . "🖖")
(":raised_hand:" . "✋")
(":wave:" . "👋")
(":zzz:" . "💤")
(":thought:" . "💭")
(":speech:" . "💬")
(":dash:" . "💨")
(":sweat_drops:" . "💦")
(":dizzy_star:" . "💫")
(":boom:" . "💥")
(":anger:" . "💢")
(":100:" . "💯")
(":purple_heart:" . "💜")
(":blue_heart:" . "💙")
(":green_heart:" . "💚")
(":yellow_heart:" . "💛")
(":broken_heart:" . "💔")
(":heart_decoration:" . "💟")
(":two_hearts:" . "💕")
(":revolving_hearts:" . "💞")
(":heartbeat:" . "💓")
(":heartpulse:" . "💗")
(":sparkling_heart:" . "💖")
(":heart_ribbon:" . "💝")
(":cupid:" . "💘")
(":love_letter:" . "💌")
(":kiss_lips:" . "💋")
(":speak_no_evil:" . "🙊")
(":hear_no_evil:" . "🙉")
(":see_no_evil:" . "🙈")
(":pouting_cat:" . "😾")
(":crying_cat:" . "😿")
(":weary_cat:" . "🙀")
(":kissing_cat:" . "😽")
(":smirking_cat:" . "😼")
(":lovestruck_cat:" . "😻")
(":joyful_cat:" . "😹")
(":grinning_cat:" . "😸")
(":smiling_cat:" . "😺")
(":robot:" . "🤖")
(":alien_monster:" . "👾")
(":ghost:" . "👻")
(":goblin:" . "👺")
(":ogre:" . "👹")
(":poop:" . "💩")
(":skull:" . "💀")
(":angry_imp:" . "👿")
(":imp:" . "😈")
(":angry:" . "😠")
(":enraged:" . "😡")
(":annoyed:" . "😤")
(":tired:" . "😫")
(":weary:" . "😩")
(":shamed:" . "😓")
(":disappointed:" . "😞")
(":persevered:" . "😣")
(":confounded:" . "😖")
(":frightened:" . "😱")
(":distressed:" . "😭")
(":upset:" . "😢")
(":hopeful:" . "😥")
(":cold_sweat:" . "😰")
(":fearful:" . "😨")
(":anguished:" . "😧")
(":bored:" . "😦")
(":flushed:" . "😳")
(":astonished:" . "😲")
(":hushed:" . "😯")
(":surprised:" . "😮")
(":cheerless:" . "🙁")
(":worried:" . "😟")
(":confused:" . "😕")
(":nerd:" . "🤓")
(":confident:" . "😎")
(":dizzy:" . "😵")
(":injured:" . "🤕")
(":sick:" . "🤒")
(":ill:" . "😷")
(":exhausted:" . "😴")
(":sleepy:" . "😪")
(":pensive:" . "😔")
(":relieved:" . "😌")
(":grimaced:" . "😬")
(":disbelief:" . "🙄")
(":unamused:" . "😒")
(":cocky:" . "😏")
(":vacant:" . "😶")
(":apathetic:" . "😑")
(":silenced:" . "🤐")
(":curious:" . "🤔")
(":hugging:" . "🤗")
(":pretentious:" . "🤑")
(":facetious:" . "😝")
(":mischievous:" . "😜")
(":playful:" . "😛")
(":yum:" . "😋")
(":happy_kiss:" . "😙")
(":loving_kiss:" . "😚")
(":kiss:" . "😗")
(":flirty:" . "😘")
(":lovestruck:" . "😍")
(":innocent:" . "😇")
(":blush:" . "😊")
(":coy:" . "😉")
(":ecstatic:" . "🙃")
(":pleased:" . "🙂")
(":joyful:" . "😂")
(":embarrassed:" . "😅")
(":amused:" . "😆")
(":blissful:" . "😁")
(":happy:" . "😄")
(":glad:" . "😃")
(":gleeful:" . "😀")))
(defun load-table ()
(let ((file (res:get-data-file (text-utils:strcat "data/" "emoji-shortcodes.json"))))
(with-open-file (stream file :direction :input)
(let ((table (yason:parse stream))
(results '()))
(labels ((code->emoji (code)
(if (cl-ppcre:scan "-" code)
(let ((codes (mapcar (lambda (a) (code-char (parse-integer a
:radix 16)))
(cl-ppcre:split "-" code))))
(format nil "~{~c~}" codes))
(format nil "~c" (code-char (parse-integer code :radix 16)))))
(append-emoji (code-point shortcode)
(setf results (acons (format nil ":~a:" shortcode)
(code->emoji code-point)
results)))
(maybe-append-kebab (code-point shortcode)
(when (cl-ppcre:scan "_" shortcode)
(append-emoji code-point
(cl-ppcre:regex-replace-all "_"
shortcode
"-")))))
(maphash (lambda (code-point shortcodes)
(etypecase shortcodes
(string
(maybe-append-kebab code-point shortcodes)
(append-emoji code-point shortcodes))
(list
(loop for shortcode in shortcodes do
(maybe-append-kebab code-point shortcode)
(append-emoji code-point shortcode)))))
table)
results)))))
(defun initialize ()
(ignore-errors (setf *shortcodes-db* (load-table))))
(defun shortcode-lookup (key)
(assoc key *shortcodes-db* :test #'string-equal))
(defun emojify (text)
(loop for mapping in *shortcodes-db* do
(setf text (cl-ppcre:regex-replace-all (text-utils:strcat "(?i)" (car mapping))
text
(cdr mapping))))
text)
(defun print-comment-prefix (stream
format-argument
colon-modifier-supplied-p
at-sign-modifier-supplied-p
&optional (repetitions 1))
(declare (ignore format-argument
colon-modifier-supplied-p
at-sign-modifier-supplied-p
repetitions))
(write-string (swconf:config-post-comment-prefix) stream))
(defun emoji-shortcode-as-comment ()
(let ((emojis (list "🤬" "🧐" "🤯" "🤮" "🤨" "🤫"
"🤪" "🤩" "👿" "😈" "😠" "😡"
"😫" "😩" "😓" "😞" "😣" "😖"
"😭" "😢" "😥" "😰" "😨" "😧"
"😳" "😲" "😯" "😮" "🙁" "😟"
"🤓" "😎" "😵" "🤕" "🤒" "😷"
"🤭" "😤" "😱" "😦" "😕" "😴"
"😪" "😔" "😌" "😬" "🙄" "😒"
"😏" "😶" "😑" "🤐" "🤔" "🤗"
"🤑" "😝" "😜" "😛" "😋" "😙"
"😚" "😗" "😘" "😍" "😇" "😊"
"😉" "🙃" "🙂" "😂" "😅" "😆"
"😁" "😄" "😃" "😀" "🤠" "🤧"
"🤢" "🤤" "🤥" "🤣" "👏" "👊"
"✊" "🖕" "🤘" "👌" "🖖" "✋"
"👋" "🤝" "🤜" "🤛" "🤙" "🤞"
"🤚" "🙏" "👍")))
(with-output-to-string (stream)
(format stream
"~{~/emoji-shortcodes::print-comment-prefix/ ~a~^~a~^~a~^~a~^~%~}"
(mapcar (lambda (emoji)
(a:when-let ((shortcodes-found (remove-if-not (lambda (a)
(string= emoji
(cdr a)))
*shortcodes-db*)))
(with-output-to-string (emoji-stream)
(loop for shortcode in shortcodes-found do
(format emoji-stream
"~a ~a "
(car shortcode)
(cdr shortcode))))))
emojis)))))