diff --git a/sugar/chat/Emoticons.py b/sugar/chat/Emoticons.py new file mode 100644 index 00000000..56c42f60 --- /dev/null +++ b/sugar/chat/Emoticons.py @@ -0,0 +1,67 @@ +emoticons_table = [ \ +[ 'stock_smiley-10', [ ':P', ':p' ] ], \ +[ 'stock_smiley-19', None ], \ +[ 'stock_smiley-2', None ], \ +[ 'stock_smiley-11', None ], \ +[ 'stock_smiley-1', ':)' ], \ +[ 'stock_smiley-3', None ], \ +[ 'stock_smiley-12', None ], \ +[ 'stock_smiley-20', None ], \ +[ 'stock_smiley-4', ':(' ], \ +[ 'stock_smiley-13', None ], \ +[ 'stock_smiley-21', None ], \ +[ 'stock_smiley-5', None ], \ +[ 'stock_smiley-14', None ], \ +[ 'stock_smiley-22', None ], \ +[ 'stock_smiley-6', None ], \ +[ 'stock_smiley-15', None ], \ +[ 'stock_smiley-23', None ], \ +[ 'stock_smiley-7', None ], \ +[ 'stock_smiley-16', None ], \ +[ 'stock_smiley-24', None ], \ +[ 'stock_smiley-8', None ], \ +[ 'stock_smiley-17', None ], \ +[ 'stock_smiley-25', None ], \ +[ 'stock_smiley-9', None ], \ +[ 'stock_smiley-18', None ], \ +[ 'stock_smiley-26', None ], \ +] + +class Emoticons: + instance = None + + def get_instance(): + if not Emoticons.instance: + Emoticons.instance = Emoticons() + return Emoticons.instance + + get_instance = staticmethod(get_instance) + + def __init__(self): + self._table = {} + + for emoticon in emoticons_table: + [ name, text_emts ] = emoticon + self.add(name, text_emts) + + def add(self, icon_name, text=None): + self._table[icon_name] = text + + def get_all(self): + return self._table.keys() + + """Replace emoticons text with the icon name. + + Parse the provided text to find emoticons (in + textual form) and replace them with their xml + representation in the form: + + """ + def replace(self, text): + for icon_name in self._table.keys(): + text_emts = self._table[icon_name] + if text_emts: + for emoticon_text in text_emts: + xml = '' + text = text.replace(emoticon_text, xml) + return text