201802282131_232e68a03aa2_change_emoji_shortcodes_to_characters.py 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952
  1. # -*- coding: utf-8 -*-
  2. """change emoji shortcodes to characters
  3. Revision ID: 232e68a03aa2
  4. Revises: af3f5579c84d
  5. Create Date: 2018-02-28 21:31:35.260704
  6. """
  7. from __future__ import unicode_literals
  8. from alembic import op
  9. import sqlalchemy as sa
  10. # revision identifiers, used by Alembic.
  11. revision = '232e68a03aa2'
  12. down_revision = 'af3f5579c84d'
  13. branch_labels = ()
  14. depends_on = None
  15. _emoji_replacement_mapping = {
  16. # bowtie: not in Unicode
  17. # neckbeard: not in Unicode
  18. # shipit, squirrel: GitHub inside joke? either way, not in Unicode
  19. # trollface: ancient meme, not in Unicode
  20. # octocat: that's a brand logo, of course it's not in Unicode
  21. # flaskbb: that's our logo! sadly not in Unicode though
  22. # feelsgood: doom reference, not in Unicode
  23. # finnadie: doom reference, not in Unicode
  24. # goberserk: doom reference, not in Unicode
  25. # godmode: doom reference, not in Unicode
  26. # hurtrealbad: doom reference, not in Unicode
  27. # rage1: doom reference, not in Unicode
  28. # rage2: doom reference, not in Unicode
  29. # rage3: doom reference, not in Unicode
  30. # rage4: doom reference, not in Unicode
  31. # suspect: doom reference, not in Unicode
  32. '+1': '๐Ÿ‘',
  33. '-1': '๐Ÿ‘Ž',
  34. '100': '๐Ÿ’ฏ',
  35. '1234': '๐Ÿ”ข',
  36. '8ball': '๐ŸŽฑ',
  37. 'a': '๐Ÿ…ฐ๏ธ',
  38. 'ab': '๐Ÿ†Ž',
  39. 'abc': '๐Ÿ”ค',
  40. 'abcd': '๐Ÿ”ก',
  41. 'accept': '๐Ÿ‰‘',
  42. 'aerial_tramway': '๐Ÿšก',
  43. 'airplane': 'โœˆ๏ธ',
  44. 'alarm_clock': 'โฐ',
  45. 'alien': '๐Ÿ‘ฝ',
  46. 'ambulance': '๐Ÿš‘',
  47. 'anchor': 'โš“๏ธ',
  48. 'angel': '๐Ÿ‘ผ',
  49. 'anger': '๐Ÿ’ข',
  50. 'angry': '๐Ÿ˜ ',
  51. 'anguished': '๐Ÿ˜ง',
  52. 'ant': '๐Ÿœ',
  53. 'apple': '๐ŸŽ',
  54. 'aquarius': 'โ™’๏ธ',
  55. 'aries': 'โ™ˆ๏ธ',
  56. 'arrow_backward': 'โ—€๏ธ',
  57. 'arrow_double_down': 'โฌ',
  58. 'arrow_double_up': 'โซ',
  59. 'arrow_down': 'โฌ‡๏ธ',
  60. 'arrow_down_small': '๐Ÿ”ฝ',
  61. 'arrow_forward': 'โ–ถ๏ธ',
  62. 'arrow_heading_down': 'โคต๏ธ',
  63. 'arrow_heading_up': 'โคด๏ธ',
  64. 'arrow_left': 'โฌ…๏ธ',
  65. 'arrow_lower_left': 'โ†™๏ธ',
  66. 'arrow_lower_right': 'โ†˜๏ธ',
  67. 'arrow_right': 'โžก๏ธ',
  68. 'arrow_right_hook': 'โ†ช๏ธ',
  69. 'arrow_up': 'โฌ†๏ธ',
  70. 'arrow_up_down': 'โ†•๏ธ',
  71. 'arrow_up_small': '๐Ÿ”ผ',
  72. 'arrow_upper_left': 'โ†–๏ธ',
  73. 'arrow_upper_right': 'โ†—๏ธ',
  74. 'arrows_clockwise': '๐Ÿ”ƒ',
  75. 'arrows_counterclockwise': '๐Ÿ”„',
  76. 'art': '๐ŸŽจ',
  77. 'articulated_lorry': '๐Ÿš›',
  78. 'astonished': '๐Ÿ˜ฒ',
  79. 'atm': '๐Ÿง',
  80. 'b': '๐Ÿ…ฑ๏ธ',
  81. 'baby': '๐Ÿ‘ถ',
  82. 'baby_bottle': '๐Ÿผ',
  83. 'baby_chick': '๐Ÿค',
  84. 'baby_symbol': '๐Ÿšผ',
  85. 'back': '๐Ÿ”™',
  86. 'baggage_claim': '๐Ÿ›„',
  87. 'balloon': '๐ŸŽˆ',
  88. 'ballot_box_with_check': 'โ˜‘๏ธ',
  89. 'bamboo': '๐ŸŽ',
  90. 'banana': '๐ŸŒ',
  91. 'bangbang': 'โ€ผ๏ธ',
  92. 'bank': '๐Ÿฆ',
  93. 'bar_chart': '๐Ÿ“Š',
  94. 'barber': '๐Ÿ’ˆ',
  95. 'baseball': 'โšพ๏ธ',
  96. 'basketball': '๐Ÿ€',
  97. 'bath': '๐Ÿ›€',
  98. 'bathtub': '๐Ÿ›',
  99. 'battery': '๐Ÿ”‹',
  100. 'bear': '๐Ÿป',
  101. 'bee': '๐Ÿ',
  102. 'beer': '๐Ÿบ',
  103. 'beers': '๐Ÿป',
  104. 'beetle': '๐Ÿž',
  105. 'beginner': '๐Ÿ”ฐ',
  106. 'bell': '๐Ÿ””',
  107. 'bento': '๐Ÿฑ',
  108. 'bicyclist': '๐Ÿšด',
  109. 'bike': '๐Ÿšฒ',
  110. 'bikini': '๐Ÿ‘™',
  111. 'bird': '๐Ÿฆ',
  112. 'birthday': '๐ŸŽ‚',
  113. 'black_circle': 'โšซ๏ธ',
  114. 'black_joker': '๐Ÿƒ',
  115. 'black_medium_small_square': 'โ—พ๏ธ',
  116. 'black_medium_square': 'โ—ผ๏ธ',
  117. 'black_nib': 'โœ’๏ธ',
  118. 'black_small_square': 'โ–ช๏ธ',
  119. 'black_square': 'โฌ›', # i assume that's black large square
  120. 'black_square_button': '๐Ÿ”ฒ',
  121. 'blossom': '๐ŸŒผ',
  122. 'blowfish': '๐Ÿก',
  123. 'blue_book': '๐Ÿ“˜',
  124. 'blue_car': '๐Ÿš™',
  125. 'blue_heart': '๐Ÿ’™',
  126. 'blush': '๐Ÿ˜Š',
  127. 'boar': '๐Ÿ—',
  128. 'boat': 'โ›ต๏ธ',
  129. 'bomb': '๐Ÿ’ฃ',
  130. 'book': '๐Ÿ“–',
  131. 'bookmark': '๐Ÿ”–',
  132. 'bookmark_tabs': '๐Ÿ“‘',
  133. 'books': '๐Ÿ“š',
  134. 'boom': '๐Ÿ’ฅ',
  135. 'boot': '๐Ÿ‘ข',
  136. 'bouquet': '๐Ÿ’',
  137. 'bow': '๐Ÿ™‡',
  138. 'bowling': '๐ŸŽณ',
  139. 'boy': '๐Ÿ‘ฆ',
  140. 'bread': '๐Ÿž',
  141. 'bride_with_veil': '๐Ÿ‘ฐ',
  142. 'bridge_at_night': '๐ŸŒ‰',
  143. 'briefcase': '๐Ÿ’ผ',
  144. 'broken_heart': '๐Ÿ’”',
  145. 'bug': '๐Ÿ›',
  146. 'bulb': '๐Ÿ’ก',
  147. 'bullettrain_front': '๐Ÿš…',
  148. 'bullettrain_side': '๐Ÿš„',
  149. 'bus': '๐ŸšŒ',
  150. 'busstop': '๐Ÿš',
  151. 'bust_in_silhouette': '๐Ÿ‘ค',
  152. 'busts_in_silhouette': '๐Ÿ‘ฅ',
  153. 'cactus': '๐ŸŒต',
  154. 'cake': '๐Ÿฐ',
  155. 'calendar': '๐Ÿ“†',
  156. 'calling': '๐Ÿ“ฒ',
  157. 'camel': '๐Ÿซ',
  158. 'camera': '๐Ÿ“ท',
  159. 'cancer': 'โ™‹๏ธ',
  160. 'candy': '๐Ÿฌ',
  161. 'capital_abcd': '๐Ÿ” ',
  162. 'capricorn': 'โ™‘๏ธ',
  163. 'car': '๐Ÿš—',
  164. 'card_index': '๐Ÿ“‡',
  165. 'carousel_horse': '๐ŸŽ ',
  166. 'cat': '๐Ÿฑ',
  167. 'cat2': '๐Ÿˆ',
  168. 'cd': '๐Ÿ’ฟ',
  169. 'chart': '๐Ÿ’น',
  170. 'chart_with_downwards_trend': '๐Ÿ“‰',
  171. 'chart_with_upwards_trend': '๐Ÿ“ˆ',
  172. 'checkered_flag': '๐Ÿ',
  173. 'cherries': '๐Ÿ’',
  174. 'cherry_blossom': '๐ŸŒธ',
  175. 'chestnut': '๐ŸŒฐ',
  176. 'chicken': '๐Ÿ”',
  177. 'children_crossing': '๐Ÿšธ',
  178. 'chocolate_bar': '๐Ÿซ',
  179. 'christmas_tree': '๐ŸŽ„',
  180. 'church': 'โ›ช๏ธ',
  181. 'cinema': '๐ŸŽฆ',
  182. 'circus_tent': '๐ŸŽช',
  183. 'city_sunrise': '๐ŸŒ‡',
  184. 'city_sunset': '๐ŸŒ†',
  185. 'cl': '๐Ÿ†‘',
  186. 'clap': '๐Ÿ‘',
  187. 'clapper': '๐ŸŽฌ',
  188. 'clipboard': '๐Ÿ“‹',
  189. 'clock1': '๐Ÿ•',
  190. 'clock10': '๐Ÿ•™',
  191. 'clock1030': '๐Ÿ•ฅ',
  192. 'clock11': '๐Ÿ•š',
  193. 'clock1130': '๐Ÿ•ฆ',
  194. 'clock12': '๐Ÿ•›',
  195. 'clock1230': '๐Ÿ•ง',
  196. 'clock130': '๐Ÿ•œ',
  197. 'clock2': '๐Ÿ•‘',
  198. 'clock230': '๐Ÿ•',
  199. 'clock3': '๐Ÿ•’',
  200. 'clock330': '๐Ÿ•ž',
  201. 'clock4': '๐Ÿ•“',
  202. 'clock430': '๐Ÿ•Ÿ',
  203. 'clock5': '๐Ÿ•”',
  204. 'clock530': '๐Ÿ• ',
  205. 'clock6': '๐Ÿ••',
  206. 'clock630': '๐Ÿ•ก',
  207. 'clock7': '๐Ÿ•–',
  208. 'clock730': '๐Ÿ•ข',
  209. 'clock8': '๐Ÿ•—',
  210. 'clock830': '๐Ÿ•ฃ',
  211. 'clock9': '๐Ÿ•˜',
  212. 'clock930': '๐Ÿ•ค',
  213. 'closed_book': '๐Ÿ“•',
  214. 'closed_lock_with_key': '๐Ÿ”',
  215. 'closed_umbrella': '๐ŸŒ‚',
  216. 'cloud': 'โ˜๏ธ',
  217. 'clubs': 'โ™ฃ๏ธ',
  218. 'cn': '๐Ÿ‡จ๐Ÿ‡ณ',
  219. 'cocktail': '๐Ÿธ',
  220. 'coffee': 'โ˜•๏ธ',
  221. 'cold_sweat': '๐Ÿ˜ฐ',
  222. 'collision': '๐Ÿ’ฅ',
  223. 'computer': '๐Ÿ’ป',
  224. 'confetti_ball': '๐ŸŽŠ',
  225. 'confounded': '๐Ÿ˜–',
  226. 'confused': '๐Ÿ˜•',
  227. 'congratulations': 'ใŠ—',
  228. 'construction': '๐Ÿšง',
  229. 'construction_worker': '๐Ÿ‘ท',
  230. 'convenience_store': '๐Ÿช',
  231. 'cookie': '๐Ÿช',
  232. 'cool': '๐Ÿ†’',
  233. 'cop': '๐Ÿ‘ฎ',
  234. 'copyright': 'ยฉ๏ธ',
  235. 'corn': '๐ŸŒฝ',
  236. 'couple': '๐Ÿ‘ซ',
  237. 'couple_with_heart': '๐Ÿ’‘',
  238. 'couplekiss': '๐Ÿ’', # kiss
  239. 'cow': '๐Ÿฎ',
  240. 'cow2': '๐Ÿ„',
  241. 'credit_card': '๐Ÿ’ณ',
  242. 'crescent_moon': '๐ŸŒ™',
  243. 'crocodile': '๐ŸŠ',
  244. 'crossed_flags': '๐ŸŽŒ',
  245. 'crown': '๐Ÿ‘‘',
  246. 'cry': '๐Ÿ˜ข',
  247. 'crying_cat_face': '๐Ÿ˜ฟ',
  248. 'crystal_ball': '๐Ÿ”ฎ',
  249. 'cupid': '๐Ÿ’˜',
  250. 'curly_loop': 'โžฐ',
  251. 'currency_exchange': '๐Ÿ’ฑ',
  252. 'curry': '๐Ÿ›',
  253. 'custard': '๐Ÿฎ',
  254. 'customs': '๐Ÿ›ƒ',
  255. 'cyclone': '๐ŸŒ€',
  256. 'dancer': '๐Ÿ’ƒ',
  257. 'dancers': '๐Ÿ‘ฏ',
  258. 'dango': '๐Ÿก',
  259. 'dart': '๐ŸŽฏ',
  260. 'dash': '๐Ÿ’จ',
  261. 'date': '๐Ÿ“…',
  262. 'de': '๐Ÿ‡ฉ๐Ÿ‡ช',
  263. 'deciduous_tree': '๐ŸŒณ',
  264. 'department_store': '๐Ÿฌ',
  265. 'diamond_shape_with_a_dot_inside': '๐Ÿ’ ',
  266. 'diamonds': 'โ™ฆ๏ธ',
  267. 'disappointed': '๐Ÿ˜ž',
  268. 'disappointed_relieved': '๐Ÿ˜ฅ',
  269. 'dizzy': '๐Ÿ’ซ',
  270. 'dizzy_face': '๐Ÿ˜ต',
  271. 'do_not_litter': '๐Ÿšฏ',
  272. 'dog': '๐Ÿถ',
  273. 'dog2': '๐Ÿ•',
  274. 'dollar': '๐Ÿ’ต',
  275. 'dolls': '๐ŸŽŽ',
  276. 'dolphin': '๐Ÿฌ',
  277. 'donut': '๐Ÿฉ', # it's doughnut, you 'muricans
  278. 'door': '๐Ÿšช',
  279. 'doughnut': '๐Ÿฉ',
  280. 'dragon': '๐Ÿ‰',
  281. 'dragon_face': '๐Ÿฒ',
  282. 'dress': '๐Ÿ‘—',
  283. 'dromedary_camel': '๐Ÿช',
  284. 'droplet': '๐Ÿ’ง',
  285. 'dvd': '๐Ÿ“€',
  286. 'e-mail': '๐Ÿ“ง',
  287. 'ear': '๐Ÿ‘‚',
  288. 'ear_of_rice': '๐ŸŒพ',
  289. 'earth_africa': '๐ŸŒ',
  290. 'earth_americas': '๐ŸŒŽ',
  291. 'earth_asia': '๐ŸŒ',
  292. 'egg': '๐Ÿฅš',
  293. 'eggplant': '๐Ÿ†',
  294. 'eight': '8๏ธโƒฃ',
  295. 'eight_pointed_black_star': 'โœด๏ธ',
  296. 'eight_spoked_asterisk': 'โœณ๏ธ',
  297. 'electric_plug': '๐Ÿ”Œ',
  298. 'elephant': '๐Ÿ˜',
  299. 'email': 'โœ‰๏ธ',
  300. 'end': '๐Ÿ”š',
  301. 'envelope': 'โœ‰๏ธ',
  302. 'es': '๐Ÿ‡ช๐Ÿ‡ธ',
  303. 'euro': '๐Ÿ’ถ',
  304. 'european_castle': '๐Ÿฐ',
  305. 'european_post_office': '๐Ÿค',
  306. 'evergreen_tree': '๐ŸŒฒ',
  307. 'exclamation': 'โ—๏ธ',
  308. 'expressionless': '๐Ÿ˜‘',
  309. 'eyeglasses': '๐Ÿ‘“',
  310. 'eyes': '๐Ÿ‘€',
  311. 'facepunch': '๐Ÿ‘Š',
  312. 'factory': '๐Ÿญ',
  313. 'fallen_leaf': '๐Ÿ‚',
  314. 'family': '๐Ÿ‘ช',
  315. 'fast_forward': 'โฉ',
  316. 'fax': '๐Ÿ“ ',
  317. 'fearful': '๐Ÿ˜จ',
  318. 'feet': '๐Ÿพ',
  319. 'ferris_wheel': '๐ŸŽก',
  320. 'file_folder': '๐Ÿ“',
  321. 'fire': '๐Ÿ”ฅ',
  322. 'fire_engine': '๐Ÿš’',
  323. 'fireworks': '๐ŸŽ†',
  324. 'first_quarter_moon': '๐ŸŒ“',
  325. 'first_quarter_moon_with_face': '๐ŸŒ›',
  326. 'fish': '๐ŸŸ',
  327. 'fish_cake': '๐Ÿฅ',
  328. 'fishing_pole_and_fish': '๐ŸŽฃ',
  329. 'fist': 'โœŠ',
  330. 'five': '5๏ธโƒฃ',
  331. 'flags': '๐ŸŽ',
  332. 'flashlight': '๐Ÿ”ฆ',
  333. 'floppy_disk': '๐Ÿ’พ',
  334. 'flower_playing_cards': '๐ŸŽด',
  335. 'flushed': '๐Ÿ˜ณ',
  336. 'foggy': '๐ŸŒ',
  337. 'football': '๐Ÿˆ',
  338. 'fork_and_knife': '๐Ÿด',
  339. 'fountain': 'โ›ฒ๏ธ',
  340. 'four': '4๏ธโƒฃ',
  341. 'four_leaf_clover': '๐Ÿ€',
  342. 'fr': '๐Ÿ‡ซ๐Ÿ‡ท',
  343. 'free': '๐Ÿ†“',
  344. 'fried_shrimp': '๐Ÿค',
  345. 'fries': '๐ŸŸ',
  346. 'frog': '๐Ÿธ',
  347. 'frowning': '๐Ÿ˜ฆ',
  348. 'fu': '๐Ÿ–•',
  349. 'fuelpump': 'โ›ฝ๏ธ',
  350. 'full_moon': '๐ŸŒ•',
  351. 'full_moon_with_face': '๐ŸŒ',
  352. 'game_die': '๐ŸŽฒ',
  353. 'gb': '๐Ÿ‡ฌ๐Ÿ‡ง',
  354. 'gem': '๐Ÿ’Ž',
  355. 'gemini': 'โ™Š๏ธ',
  356. 'ghost': '๐Ÿ‘ป',
  357. 'gift': '๐ŸŽ',
  358. 'gift_heart': '๐Ÿ’',
  359. 'girl': '๐Ÿ‘ง',
  360. 'globe_with_meridians': '๐ŸŒ',
  361. 'goat': '๐Ÿ',
  362. 'golf': 'โ›ณ๏ธ',
  363. 'grapes': '๐Ÿ‡',
  364. 'green_apple': '๐Ÿ',
  365. 'green_book': '๐Ÿ“—',
  366. 'green_heart': '๐Ÿ’š',
  367. 'grey_exclamation': 'โ•',
  368. 'grey_question': 'โ”',
  369. 'grimacing': '๐Ÿ˜ฌ',
  370. 'grin': '๐Ÿ˜',
  371. 'grinning': '๐Ÿ˜€',
  372. 'guardsman': '๐Ÿ’‚',
  373. 'guitar': '๐ŸŽธ',
  374. 'gun': '๐Ÿ”ซ',
  375. 'haircut': '๐Ÿ’‡',
  376. 'hamburger': '๐Ÿ”',
  377. 'hammer': '๐Ÿ”จ',
  378. 'hamster': '๐Ÿน',
  379. 'hand': 'โœ‹',
  380. 'handbag': '๐Ÿ‘œ',
  381. 'hankey': '๐Ÿ’ฉ',
  382. 'hash': '#๏ธโƒฃ',
  383. 'hatched_chick': '๐Ÿฅ',
  384. 'hatching_chick': '๐Ÿฃ',
  385. 'headphones': '๐ŸŽง',
  386. 'hear_no_evil': '๐Ÿ™‰',
  387. 'heart': 'โค๏ธ',
  388. 'heart_decoration': '๐Ÿ’Ÿ',
  389. 'heart_eyes': '๐Ÿ˜',
  390. 'heart_eyes_cat': '๐Ÿ˜ป',
  391. 'heartbeat': '๐Ÿ’“',
  392. 'heartpulse': '๐Ÿ’—',
  393. 'hearts': 'โ™ฅ๏ธ',
  394. 'heavy_check_mark': 'โœ”๏ธ',
  395. 'heavy_division_sign': 'โž—',
  396. 'heavy_dollar_sign': '๐Ÿ’ฒ',
  397. 'heavy_exclamation_mark': 'โ—๏ธ',
  398. 'heavy_minus_sign': 'โž–',
  399. 'heavy_multiplication_x': 'โœ–๏ธ',
  400. 'heavy_plus_sign': 'โž•',
  401. 'helicopter': '๐Ÿš',
  402. 'herb': '๐ŸŒฟ',
  403. 'hibiscus': '๐ŸŒบ',
  404. 'high_brightness': '๐Ÿ”†',
  405. 'high_heel': '๐Ÿ‘ ',
  406. 'hocho': '๐Ÿ”ช',
  407. 'honey_pot': '๐Ÿฏ',
  408. 'honeybee': '๐Ÿ',
  409. 'horse': '๐Ÿด',
  410. 'horse_racing': '๐Ÿ‡',
  411. 'hospital': '๐Ÿฅ',
  412. 'hotel': '๐Ÿจ',
  413. 'hotsprings': 'โ™จ๏ธ',
  414. 'hourglass': 'โŒ›๏ธ',
  415. 'hourglass_flowing_sand': 'โณ',
  416. 'house': '๐Ÿ ',
  417. 'house_with_garden': '๐Ÿก',
  418. 'hushed': '๐Ÿ˜ฏ',
  419. 'ice_cream': '๐Ÿจ',
  420. 'icecream': '๐Ÿฆ',
  421. 'id': '๐Ÿ†”',
  422. 'ideograph_advantage': '๐Ÿ‰',
  423. 'imp': '๐Ÿ‘ฟ',
  424. 'inbox_tray': '๐Ÿ“ฅ',
  425. 'incoming_envelope': '๐Ÿ“จ',
  426. 'information_desk_person': '๐Ÿ’',
  427. 'information_source': 'โ„น๏ธ',
  428. 'innocent': '๐Ÿ˜‡',
  429. 'interrobang': 'โ‰๏ธ',
  430. 'iphone': '๐Ÿ“ฑ',
  431. 'it': '๐Ÿ‡ฎ๐Ÿ‡น',
  432. 'izakaya_lantern': '๐Ÿฎ',
  433. 'jack_o_lantern': '๐ŸŽƒ',
  434. 'japan': '๐Ÿ—พ',
  435. 'japanese_castle': '๐Ÿฏ',
  436. 'japanese_goblin': '๐Ÿ‘บ',
  437. 'japanese_ogre': '๐Ÿ‘น',
  438. 'jeans': '๐Ÿ‘–',
  439. 'joy': '๐Ÿ˜‚',
  440. 'joy_cat': '๐Ÿ˜น',
  441. 'jp': '๐Ÿ‡ฏ๐Ÿ‡ต',
  442. 'key': '๐Ÿ”‘',
  443. 'keycap_ten': '๐Ÿ”Ÿ',
  444. 'kimono': '๐Ÿ‘˜',
  445. 'kiss': '๐Ÿ’‹',
  446. 'kissing': '๐Ÿ˜—',
  447. 'kissing_cat': '๐Ÿ˜ฝ',
  448. 'kissing_closed_eyes': '๐Ÿ˜š',
  449. 'kissing_face': '๐Ÿ˜—', # aparently, the shortcode is just 'kissing'
  450. 'kissing_heart': '๐Ÿ˜˜',
  451. 'kissing_smiling_eyes': '๐Ÿ˜™',
  452. 'koala': '๐Ÿจ',
  453. 'koko': '๐Ÿˆ',
  454. 'kr': '๐Ÿ‡ฐ๐Ÿ‡ท',
  455. 'large_blue_circle': '๐Ÿ”ต',
  456. 'large_blue_diamond': '๐Ÿ”ท',
  457. 'large_orange_diamond': '๐Ÿ”ถ',
  458. 'last_quarter_moon': '๐ŸŒ—',
  459. 'last_quarter_moon_with_face': '๐ŸŒœ',
  460. 'laughing': '๐Ÿ˜†',
  461. 'leaves': '๐Ÿƒ',
  462. 'ledger': '๐Ÿ“’',
  463. 'left_luggage': '๐Ÿ›…',
  464. 'left_right_arrow': 'โ†”๏ธ',
  465. 'leftwards_arrow_with_hook': 'โ†ฉ๏ธ',
  466. 'lemon': '๐Ÿ‹',
  467. 'leo': 'โ™Œ๏ธ',
  468. 'leopard': '๐Ÿ†',
  469. 'libra': 'โ™Ž๏ธ',
  470. 'light_rail': '๐Ÿšˆ',
  471. 'link': '๐Ÿ”—',
  472. 'lips': '๐Ÿ‘„',
  473. 'lipstick': '๐Ÿ’„',
  474. 'lock': '๐Ÿ”’',
  475. 'lock_with_ink_pen': '๐Ÿ”',
  476. 'lollipop': '๐Ÿญ',
  477. 'loop': 'โžฟ',
  478. 'loudspeaker': '๐Ÿ“ข',
  479. 'love_hotel': '๐Ÿฉ',
  480. 'love_letter': '๐Ÿ’Œ',
  481. 'low_brightness': '๐Ÿ”…',
  482. 'm': 'โ“‚๏ธ',
  483. 'mag': '๐Ÿ”',
  484. 'mag_right': '๐Ÿ”Ž',
  485. 'mahjong': '๐Ÿ€„๏ธ',
  486. 'mailbox': '๐Ÿ“ซ',
  487. 'mailbox_closed': '๐Ÿ“ช',
  488. 'mailbox_with_mail': '๐Ÿ“ฌ',
  489. 'mailbox_with_no_mail': '๐Ÿ“ญ',
  490. 'man': '๐Ÿ‘จ',
  491. 'man_with_gua_pi_mao': '๐Ÿ‘ฒ',
  492. 'man_with_turban': '๐Ÿ‘ณ',
  493. 'mans_shoe': '๐Ÿ‘ž',
  494. 'maple_leaf': '๐Ÿ',
  495. 'mask': '๐Ÿ˜ท',
  496. 'massage': '๐Ÿ’†',
  497. 'meat_on_bone': '๐Ÿ–',
  498. 'mega': '๐Ÿ“ฃ',
  499. 'melon': '๐Ÿˆ',
  500. 'memo': '๐Ÿ“',
  501. 'mens': '๐Ÿšน',
  502. 'metal': '๐Ÿค˜',
  503. 'metro': '๐Ÿš‡',
  504. 'microphone': '๐ŸŽค',
  505. 'microscope': '๐Ÿ”ฌ',
  506. 'milky_way': '๐ŸŒŒ',
  507. 'minibus': '๐Ÿš',
  508. 'minidisc': '๐Ÿ’ฝ',
  509. 'mobile_phone_off': '๐Ÿ“ด',
  510. 'money_with_wings': '๐Ÿ’ธ',
  511. 'moneybag': '๐Ÿ’ฐ',
  512. 'monkey': '๐Ÿ’',
  513. 'monkey_face': '๐Ÿต',
  514. 'monorail': '๐Ÿš',
  515. 'mortar_board': '๐ŸŽ“',
  516. 'mount_fuji': '๐Ÿ—ป',
  517. 'mountain_bicyclist': '๐Ÿšต',
  518. 'mountain_cableway': '๐Ÿš ',
  519. 'mountain_railway': '๐Ÿšž',
  520. 'mouse': '๐Ÿญ',
  521. 'mouse2': '๐Ÿ',
  522. 'movie_camera': '๐ŸŽฅ',
  523. 'moyai': '๐Ÿ—ฟ',
  524. 'muscle': '๐Ÿ’ช',
  525. 'mushroom': '๐Ÿ„',
  526. 'musical_keyboard': '๐ŸŽน',
  527. 'musical_note': '๐ŸŽต',
  528. 'musical_score': '๐ŸŽผ',
  529. 'mute': '๐Ÿ”‡',
  530. 'nail_care': '๐Ÿ’…',
  531. 'name_badge': '๐Ÿ“›',
  532. 'necktie': '๐Ÿ‘”',
  533. 'negative_squared_cross_mark': 'โŽ',
  534. 'neutral_face': '๐Ÿ˜',
  535. 'new': '๐Ÿ†•',
  536. 'new_moon': '๐ŸŒ‘',
  537. 'new_moon_with_face': '๐ŸŒš',
  538. 'newspaper': '๐Ÿ“ฐ',
  539. 'ng': '๐Ÿ†–',
  540. 'nine': '9๏ธโƒฃ',
  541. 'no_bell': '๐Ÿ”•',
  542. 'no_bicycles': '๐Ÿšณ',
  543. 'no_entry': 'โ›”๏ธ',
  544. 'no_entry_sign': '๐Ÿšซ',
  545. 'no_good': '๐Ÿ™…',
  546. 'no_mobile_phones': '๐Ÿ“ต',
  547. 'no_mouth': '๐Ÿ˜ถ',
  548. 'no_pedestrians': '๐Ÿšท',
  549. 'no_smoking': '๐Ÿšญ',
  550. 'non-potable_water': '๐Ÿšฑ',
  551. 'nose': '๐Ÿ‘ƒ',
  552. 'notebook': '๐Ÿ““',
  553. 'notebook_with_decorative_cover': '๐Ÿ“”',
  554. 'notes': '๐ŸŽถ',
  555. 'nut_and_bolt': '๐Ÿ”ฉ',
  556. 'o': 'โญ•๏ธ',
  557. 'o2': '๐Ÿ…พ๏ธ',
  558. 'ocean': '๐ŸŒŠ',
  559. 'octopus': '๐Ÿ™',
  560. 'oden': '๐Ÿข',
  561. 'office': '๐Ÿข',
  562. 'ok': '๐Ÿ†—',
  563. 'ok_hand': '๐Ÿ‘Œ',
  564. 'ok_woman': '๐Ÿ™†',
  565. 'older_man': '๐Ÿ‘ด',
  566. 'older_woman': '๐Ÿ‘ต',
  567. 'on': '๐Ÿ”›',
  568. 'oncoming_automobile': '๐Ÿš˜',
  569. 'oncoming_bus': '๐Ÿš',
  570. 'oncoming_police_car': '๐Ÿš”',
  571. 'oncoming_taxi': '๐Ÿš–',
  572. 'one': '1๏ธโƒฃ',
  573. 'open_file_folder': '๐Ÿ“‚',
  574. 'open_hands': '๐Ÿ‘',
  575. 'open_mouth': '๐Ÿ˜ฎ',
  576. 'ophiuchus': 'โ›Ž',
  577. 'orange_book': '๐Ÿ“™',
  578. 'outbox_tray': '๐Ÿ“ค',
  579. 'ox': '๐Ÿ‚',
  580. 'package': '๐Ÿ“ฆ',
  581. 'page_facing_up': '๐Ÿ“„',
  582. 'page_with_curl': '๐Ÿ“ƒ',
  583. 'pager': '๐Ÿ“Ÿ',
  584. 'palm_tree': '๐ŸŒด',
  585. 'panda_face': '๐Ÿผ',
  586. 'paperclip': '๐Ÿ“Ž',
  587. 'parking': '๐Ÿ…ฟ๏ธ',
  588. 'part_alternation_mark': 'ใ€ฝ',
  589. 'partly_sunny': 'โ›…๏ธ',
  590. 'passport_control': '๐Ÿ›‚',
  591. 'paw_prints': '๐Ÿพ',
  592. 'peach': '๐Ÿ‘',
  593. 'pear': '๐Ÿ',
  594. 'pencil': '๐Ÿ“',
  595. 'pencil2': 'โœ๏ธ',
  596. 'penguin': '๐Ÿง',
  597. 'pensive': '๐Ÿ˜”',
  598. 'performing_arts': '๐ŸŽญ',
  599. 'persevere': '๐Ÿ˜ฃ',
  600. 'person_frowning': '๐Ÿ™',
  601. 'person_with_blond_hair': '๐Ÿ‘ฑ',
  602. 'person_with_pouting_face': '๐Ÿ™Ž',
  603. 'phone': 'โ˜Ž๏ธ',
  604. 'pig': '๐Ÿท',
  605. 'pig2': '๐Ÿ–',
  606. 'pig_nose': '๐Ÿฝ',
  607. 'pill': '๐Ÿ’Š',
  608. 'pineapple': '๐Ÿ',
  609. 'pisces': 'โ™“๏ธ',
  610. 'pizza': '๐Ÿ•',
  611. 'plus1': '๐Ÿ‘', # an alias to +1
  612. 'point_down': '๐Ÿ‘‡',
  613. 'point_left': '๐Ÿ‘ˆ',
  614. 'point_right': '๐Ÿ‘‰',
  615. 'point_up': 'โ˜๏ธ',
  616. 'point_up_2': '๐Ÿ‘†',
  617. 'police_car': '๐Ÿš“',
  618. 'poodle': '๐Ÿฉ',
  619. 'poop': '๐Ÿ’ฉ',
  620. 'post_office': '๐Ÿฃ',
  621. 'postal_horn': '๐Ÿ“ฏ',
  622. 'postbox': '๐Ÿ“ฎ',
  623. 'potable_water': '๐Ÿšฐ',
  624. 'pouch': '๐Ÿ‘',
  625. 'poultry_leg': '๐Ÿ—',
  626. 'pound': '๐Ÿ’ท',
  627. 'pouting_cat': '๐Ÿ˜พ',
  628. 'pray': '๐Ÿ™',
  629. 'princess': '๐Ÿ‘ธ',
  630. 'punch': '๐Ÿ‘Š',
  631. 'purple_heart': '๐Ÿ’œ',
  632. 'purse': '๐Ÿ‘›',
  633. 'pushpin': '๐Ÿ“Œ',
  634. 'put_litter_in_its_place': '๐Ÿšฎ',
  635. 'question': 'โ“',
  636. 'rabbit': '๐Ÿฐ',
  637. 'rabbit2': '๐Ÿ‡',
  638. 'racehorse': '๐ŸŽ',
  639. 'radio': '๐Ÿ“ป',
  640. 'radio_button': '๐Ÿ”˜',
  641. 'rage': '๐Ÿ˜ก',
  642. 'railway_car': '๐Ÿšƒ',
  643. 'rainbow': '๐ŸŒˆ',
  644. 'raised_hand': 'โœ‹',
  645. 'raised_hands': '๐Ÿ™Œ',
  646. 'raising_hand': '๐Ÿ™‹',
  647. 'ram': '๐Ÿ',
  648. 'ramen': '๐Ÿœ',
  649. 'rat': '๐Ÿ€',
  650. 'recycle': 'โ™ป๏ธ',
  651. 'red_car': '๐Ÿš—',
  652. 'red_circle': '๐Ÿ”ด',
  653. 'registered': 'ยฎ๏ธ',
  654. 'relaxed': 'โ˜บ๏ธ',
  655. 'relieved': '๐Ÿ˜Œ',
  656. 'repeat': '๐Ÿ”',
  657. 'repeat_one': '๐Ÿ”‚',
  658. 'restroom': '๐Ÿšป',
  659. 'revolving_hearts': '๐Ÿ’ž',
  660. 'rewind': 'โช',
  661. 'ribbon': '๐ŸŽ€',
  662. 'rice': '๐Ÿš',
  663. 'rice_ball': '๐Ÿ™',
  664. 'rice_cracker': '๐Ÿ˜',
  665. 'rice_scene': '๐ŸŽ‘',
  666. 'ring': '๐Ÿ’',
  667. 'rocket': '๐Ÿš€',
  668. 'roller_coaster': '๐ŸŽข',
  669. 'rooster': '๐Ÿ“',
  670. 'rose': '๐ŸŒน',
  671. 'rotating_light': '๐Ÿšจ',
  672. 'round_pushpin': '๐Ÿ“',
  673. 'rowboat': '๐Ÿšฃ',
  674. 'ru': '๐Ÿ‡ท๐Ÿ‡บ',
  675. 'rugby_football': '๐Ÿ‰',
  676. 'runner': '๐Ÿƒ',
  677. 'running': '๐Ÿƒ',
  678. 'running_shirt_with_sash': '๐ŸŽฝ',
  679. 'sa': '๐Ÿˆ‚',
  680. 'sagittarius': 'โ™๏ธ',
  681. 'sailboat': 'โ›ต๏ธ',
  682. 'sake': '๐Ÿถ',
  683. 'sandal': '๐Ÿ‘ก',
  684. 'santa': '๐ŸŽ…',
  685. 'satellite': '๐Ÿ“ก',
  686. 'satisfied': '๐Ÿ˜†',
  687. 'saxophone': '๐ŸŽท',
  688. 'school': '๐Ÿซ',
  689. 'school_satchel': '๐ŸŽ’',
  690. 'scissors': 'โœ‚๏ธ',
  691. 'scorpius': 'โ™๏ธ',
  692. 'scream': '๐Ÿ˜ฑ',
  693. 'scream_cat': '๐Ÿ™€',
  694. 'scroll': '๐Ÿ“œ',
  695. 'seat': '๐Ÿ’บ',
  696. 'secret': 'ใŠ™',
  697. 'see_no_evil': '๐Ÿ™ˆ',
  698. 'seedling': '๐ŸŒฑ',
  699. 'seven': '7๏ธโƒฃ',
  700. 'shaved_ice': '๐Ÿง',
  701. 'sheep': '๐Ÿ‘',
  702. 'shell': '๐Ÿš',
  703. 'ship': '๐Ÿšข',
  704. 'shirt': '๐Ÿ‘•',
  705. 'shit': '๐Ÿ’ฉ',
  706. 'shoe': '๐Ÿ‘ž',
  707. 'shower': '๐Ÿšฟ',
  708. 'signal_strength': '๐Ÿ“ถ',
  709. 'simple_smile': '๐Ÿ™‚', # slightly smiling face
  710. 'six': '6๏ธโƒฃ',
  711. 'six_pointed_star': '๐Ÿ”ฏ',
  712. 'ski': '๐ŸŽฟ',
  713. 'skull': '๐Ÿ’€',
  714. 'sleeping': '๐Ÿ˜ด',
  715. 'sleepy': '๐Ÿ˜ช',
  716. 'slot_machine': '๐ŸŽฐ',
  717. 'small_blue_diamond': '๐Ÿ”น',
  718. 'small_orange_diamond': '๐Ÿ”ธ',
  719. 'small_red_triangle': '๐Ÿ”บ',
  720. 'small_red_triangle_down': '๐Ÿ”ป',
  721. 'smile': '๐Ÿ˜„',
  722. 'smile_cat': '๐Ÿ˜ธ',
  723. 'smiley': '๐Ÿ˜ƒ',
  724. 'smiley_cat': '๐Ÿ˜บ',
  725. 'smiling_imp': '๐Ÿ˜ˆ',
  726. 'smirk': '๐Ÿ˜',
  727. 'smirk_cat': '๐Ÿ˜ผ',
  728. 'smoking': '๐Ÿšฌ',
  729. 'snail': '๐ŸŒ',
  730. 'snake': '๐Ÿ',
  731. 'snowboarder': '๐Ÿ‚',
  732. 'snowflake': 'โ„๏ธ',
  733. 'snowman': 'โ›„๏ธ',
  734. 'sob': '๐Ÿ˜ญ',
  735. 'soccer': 'โšฝ๏ธ',
  736. 'soon': '๐Ÿ”œ',
  737. 'sos': '๐Ÿ†˜',
  738. 'sound': '๐Ÿ”‰',
  739. 'space_invader': '๐Ÿ‘พ',
  740. 'spades': 'โ™ ๏ธ',
  741. 'spaghetti': '๐Ÿ',
  742. 'sparkle': 'โ‡๏ธ',
  743. 'sparkler': '๐ŸŽ‡',
  744. 'sparkles': 'โœจ',
  745. 'sparkling_heart': '๐Ÿ’–',
  746. 'speak_no_evil': '๐Ÿ™Š',
  747. 'speaker': '๐Ÿ”ˆ',
  748. 'speech_balloon': '๐Ÿ’ฌ',
  749. 'speedboat': '๐Ÿšค',
  750. 'star': 'โญ๏ธ',
  751. 'star2': '๐ŸŒŸ',
  752. 'stars': '๐ŸŒ ',
  753. 'station': '๐Ÿš‰',
  754. 'statue_of_liberty': '๐Ÿ—ฝ',
  755. 'steam_locomotive': '๐Ÿš‚',
  756. 'stew': '๐Ÿฒ',
  757. 'straight_ruler': '๐Ÿ“',
  758. 'strawberry': '๐Ÿ“',
  759. 'stuck_out_tongue': '๐Ÿ˜›',
  760. 'stuck_out_tongue_closed_eyes': '๐Ÿ˜',
  761. 'stuck_out_tongue_winking_eye': '๐Ÿ˜œ',
  762. 'sun_with_face': '๐ŸŒž',
  763. 'sunflower': '๐ŸŒป',
  764. 'sunglasses': '๐Ÿ˜Ž',
  765. 'sunny': 'โ˜€๏ธ',
  766. 'sunrise': '๐ŸŒ…',
  767. 'sunrise_over_mountains': '๐ŸŒ„',
  768. 'surfer': '๐Ÿ„',
  769. 'sushi': '๐Ÿฃ',
  770. 'suspension_railway': '๐ŸšŸ',
  771. 'sweat': '๐Ÿ˜“',
  772. 'sweat_drops': '๐Ÿ’ฆ',
  773. 'sweat_smile': '๐Ÿ˜…',
  774. 'sweet_potato': '๐Ÿ ',
  775. 'swimmer': '๐ŸŠ',
  776. 'symbols': '๐Ÿ”ฃ',
  777. 'syringe': '๐Ÿ’‰',
  778. 'tada': '๐ŸŽ‰',
  779. 'tanabata_tree': '๐ŸŽ‹',
  780. 'tangerine': '๐ŸŠ',
  781. 'taurus': 'โ™‰๏ธ',
  782. 'taxi': '๐Ÿš•',
  783. 'tea': '๐Ÿต',
  784. 'telephone': 'โ˜Ž๏ธ',
  785. 'telephone_receiver': '๐Ÿ“ž',
  786. 'telescope': '๐Ÿ”ญ',
  787. 'tennis': '๐ŸŽพ',
  788. 'tent': 'โ›บ๏ธ',
  789. 'thought_balloon': '๐Ÿ’ญ',
  790. 'three': '3๏ธโƒฃ',
  791. 'thumbsdown': '๐Ÿ‘Ž',
  792. 'thumbsup': '๐Ÿ‘',
  793. 'ticket': '๐ŸŽซ',
  794. 'tiger': '๐Ÿฏ',
  795. 'tiger2': '๐Ÿ…',
  796. 'tired_face': '๐Ÿ˜ซ',
  797. 'tm': 'โ„ข๏ธ',
  798. 'toilet': '๐Ÿšฝ',
  799. 'tokyo_tower': '๐Ÿ—ผ',
  800. 'tomato': '๐Ÿ…',
  801. 'tongue': '๐Ÿ‘…',
  802. 'top': '๐Ÿ”',
  803. 'tophat': '๐ŸŽฉ',
  804. 'tractor': '๐Ÿšœ',
  805. 'traffic_light': '๐Ÿšฅ',
  806. 'train': '๐Ÿš‹',
  807. 'train2': '๐Ÿš†',
  808. 'tram': '๐ŸšŠ',
  809. 'triangular_flag_on_post': '๐Ÿšฉ',
  810. 'triangular_ruler': '๐Ÿ“',
  811. 'trident': '๐Ÿ”ฑ',
  812. 'triumph': '๐Ÿ˜ค',
  813. 'trolleybus': '๐ŸšŽ',
  814. 'trophy': '๐Ÿ†',
  815. 'tropical_drink': '๐Ÿน',
  816. 'tropical_fish': '๐Ÿ ',
  817. 'truck': '๐Ÿšš',
  818. 'trumpet': '๐ŸŽบ',
  819. 'tshirt': '๐Ÿ‘•',
  820. 'tulip': '๐ŸŒท',
  821. 'turtle': '๐Ÿข',
  822. 'tv': '๐Ÿ“บ',
  823. 'twisted_rightwards_arrows': '๐Ÿ”€',
  824. 'two': '2๏ธโƒฃ',
  825. 'two_hearts': '๐Ÿ’•',
  826. 'two_men_holding_hands': '๐Ÿ‘ฌ',
  827. 'two_women_holding_hands': '๐Ÿ‘ญ',
  828. 'u5272': '๐Ÿˆน',
  829. 'u5408': '๐Ÿˆด',
  830. 'u55b6': '๐Ÿˆบ',
  831. 'u6307': '๐Ÿˆฏ',
  832. 'u6708': '๐Ÿˆท',
  833. 'u6709': '๐Ÿˆถ',
  834. 'u6e80': '๐Ÿˆต',
  835. 'u7121': '๐Ÿˆš',
  836. 'u7533': '๐Ÿˆธ',
  837. 'u7981': '๐Ÿˆฒ',
  838. 'u7a7a': '๐Ÿˆณ',
  839. 'uk': '๐Ÿ‡ฌ๐Ÿ‡ง',
  840. 'umbrella': 'โ˜”๏ธ',
  841. 'unamused': '๐Ÿ˜’',
  842. 'underage': '๐Ÿ”ž',
  843. 'unlock': '๐Ÿ”“',
  844. 'up': '๐Ÿ†™',
  845. 'us': '๐Ÿ‡บ๐Ÿ‡ธ',
  846. 'v': 'โœŒ๏ธ',
  847. 'vertical_traffic_light': '๐Ÿšฆ',
  848. 'vhs': '๐Ÿ“ผ',
  849. 'vibration_mode': '๐Ÿ“ณ',
  850. 'video_camera': '๐Ÿ“น',
  851. 'video_game': '๐ŸŽฎ',
  852. 'violin': '๐ŸŽป',
  853. 'virgo': 'โ™๏ธ',
  854. 'volcano': '๐ŸŒ‹',
  855. 'vs': '๐Ÿ†š',
  856. 'walking': '๐Ÿšถ',
  857. 'waning_crescent_moon': '๐ŸŒ˜',
  858. 'waning_gibbous_moon': '๐ŸŒ–',
  859. 'warning': 'โš ๏ธ',
  860. 'watch': 'โŒš๏ธ',
  861. 'water_buffalo': '๐Ÿƒ',
  862. 'watermelon': '๐Ÿ‰',
  863. 'wave': '๐Ÿ‘‹',
  864. 'wavy_dash': 'ใ€ฐ๏ธ',
  865. 'waxing_crescent_moon': '๐ŸŒ’',
  866. 'waxing_gibbous_moon': '๐ŸŒ”',
  867. 'wc': '๐Ÿšพ',
  868. 'weary': '๐Ÿ˜ฉ',
  869. 'wedding': '๐Ÿ’’',
  870. 'whale': '๐Ÿณ',
  871. 'whale2': '๐Ÿ‹',
  872. 'wheelchair': 'โ™ฟ๏ธ',
  873. 'white_check_mark': 'โœ…',
  874. 'white_circle': 'โšช๏ธ',
  875. 'white_flower': '๐Ÿ’ฎ',
  876. 'white_large_square': 'โฌœ๏ธ',
  877. 'white_medium_small_square': 'โ—ฝ๏ธ',
  878. 'white_medium_square': 'โ—ป๏ธ',
  879. 'white_small_square': 'โ–ซ๏ธ',
  880. 'white_square_button': '๐Ÿ”ณ',
  881. 'wind_chime': '๐ŸŽ',
  882. 'wine_glass': '๐Ÿท',
  883. 'wink': '๐Ÿ˜‰',
  884. 'wolf': '๐Ÿบ',
  885. 'woman': '๐Ÿ‘ฉ',
  886. 'womans_clothes': '๐Ÿ‘š',
  887. 'womans_hat': '๐Ÿ‘’',
  888. 'womens': '๐Ÿšบ',
  889. 'worried': '๐Ÿ˜Ÿ',
  890. 'wrench': '๐Ÿ”ง',
  891. 'x': 'โŒ',
  892. 'yellow_heart': '๐Ÿ’›',
  893. 'yen': '๐Ÿ’ด',
  894. 'yum': '๐Ÿ˜‹',
  895. 'zap': 'โšก๏ธ',
  896. 'zero': '0๏ธโƒฃ',
  897. 'zzz': '๐Ÿ’ค',
  898. }
  899. def _replace_emoji(line):
  900. for shortcode, characters in _emoji_replacement_mapping.items():
  901. line = line.replace(':{}:'.format(shortcode), characters)
  902. return line
  903. def _unreplace_emoji(line):
  904. # replace sequences before single characters
  905. for shortcode, character in sorted(
  906. _emoji_replacement_mapping.items(),
  907. key=lambda t: len(t[1]),
  908. reverse=True
  909. ):
  910. line = line.replace(character, ':{}:'.format(shortcode))
  911. return line
  912. def do_the_thing(func):
  913. conn = op.get_bind()
  914. for table_name, column_name in (('posts', 'content'),
  915. ('messages', 'message')):
  916. table = sa.Table(
  917. table_name,
  918. sa.MetaData(),
  919. sa.Column('id', sa.Integer, primary_key=True),
  920. sa.Column(column_name, sa.String)
  921. )
  922. for row in conn.execute(table.select()):
  923. content = getattr(row, column_name)
  924. new_content = func(content)
  925. if not new_content == content:
  926. conn.execute(
  927. table.update().where(
  928. table.c.id == row.id
  929. ).values(**{column_name: new_content})
  930. )
  931. def upgrade():
  932. do_the_thing(_replace_emoji)
  933. def downgrade():
  934. do_the_thing(_unreplace_emoji)