/
emoji2emoticon.py
  1 # irgramd: IRC-Telegram gateway
  2 # emoji2emoticon.py: UTF-8 Emoji to ASCII emoticon replacement
  3 #
  4 # (C) Copyright 2019,2023 E. Bosch <presidev@AT@gmail.com>
  5 #
  6 # Use of this source code is governed by a MIT style license that
  7 # can be found in the LICENSE file included in this project.
  8 
  9 emo = {
 10         '\U0000270c': '"V"',
 11         '\U00002764': '"<3"',
 12         '\U0001f389': '"<*``"',
 13         '\U0001f44c': '"ok"',
 14         '\U0001f44d': '"+1"',
 15         '\U0001f44e': '"-1"',
 16         '\U0001f44f': '"m_m"',
 17         '\U0001f525': '"\^^^/"',
 18         '\U0001f600': '":D"',
 19         '\U0001f601': '"xD"',
 20         '\U0001f602': '"x_D"',
 21         '\U0001f603': '":D"',
 22         '\U0001f604': '"xD"',
 23         '\U0001f605': '"x`D"',
 24         '\U0001f606': '"xD"',
 25         '\U0001f607': '"O:)"',
 26         '\U0001f608': '"}:)"',
 27         '\U0001f609': '";)"',
 28         '\U0001f60a': '"x)"',
 29         '\U0001f60b': '"xP"',
 30         '\U0001f60c': '":)"',
 31         '\U0001f60d': '"E>)"',
 32         '\U0001f60e': '"B)"',
 33         '\U0001f60f': '"- -,"',
 34         '\U0001f610': '":|"',
 35         '\U0001f611': '":|"',
 36         '\U0001f612': '"-. -."',
 37         '\U0001f613': '":`|"',
 38         '\U0001f614': '":|"',
 39         '\U0001f615': '":/"',
 40         '\U0001f616': '":S"',
 41         '\U0001f617': '":*"',
 42         '\U0001f618': '":**"',
 43         '\U0001f619': '"x*"',
 44         '\U0001f61a': '"x*"',
 45         '\U0001f61b': '":P"',
 46         '\U0001f61c': '";P"',
 47         '\U0001f61d': '"xP"',
 48         '\U0001f61e': '":("',
 49         '\U0001f61f': '":(("',
 50         '\U0001f620': '":("',
 51         '\U0001f621': '":("',
 52         '\U0001f622': '":_("',
 53         '\U0001f623': '"x("',
 54         '\U0001f624': '":<("',
 55         '\U0001f625': '":`("',
 56         '\U0001f626': '":(|"',
 57         '\U0001f627': '":(||"',
 58         '\U0001f628': '"||:("',
 59         '\U0001f629': '"::("',
 60         '\U0001f62a': '":`("',
 61         '\U0001f62b': '"x("',
 62         '\U0001f62c': '":E"',
 63         '\U0001f62d': '":__(|"',
 64         '\U0001f62e': '":O"',
 65         '\U0001f62f': '":o"',
 66         '\U0001f630': '":`O"',
 67         '\U0001f631': '":O>"',
 68         '\U0001f632': '"8-O"',
 69         '\U0001f633': '":8|"',
 70         '\U0001f634': '":.zz"',
 71         '\U0001f635': '"6)"',
 72         '\U0001f636': '":"',
 73         '\U0001f637': '":W"',
 74         '\U0001f638': '">:D"',
 75         '\U0001f639': '":_D"',
 76         '\U0001f63a': '">:D"',
 77         '\U0001f63b': '">E>D"',
 78         '\U0001f63c': '">- -,"',
 79         '\U0001f63d': '">:*"',
 80         '\U0001f63e': '">:("',
 81         '\U0001f63f': '">:_("',
 82         '\U0001f640': '">:(|"',
 83         '\U0001f641': '":("',
 84         '\U0001f642': '":)"',
 85         '\U0001f643': '"(:"',
 86         '\U0001f644': '"o o,"',
 87         '\U0001f914': '":-L"',
 88         '\U0001f92b': '":-o-m"',
 89         '\U0001f970': '":)e>"',
 90       }
 91 
 92 emo_inv = { '-': None }
 93 for k in reversed(emo):
 94   emo_inv[emo[k][1:-1]] = k
 95 
 96 def replace_mult(line, emo):
 97   for utf_emo in emo:
 98     if utf_emo in line:
 99       line = line.replace(utf_emo, emo[utf_emo])
100   return line