From 84e7e73b8e17bd2cdc83fc5fce700a1fd1d70608 Mon Sep 17 00:00:00 2001 From: ra1nbowpill Date: Wed, 19 Jul 2017 17:00:35 +0200 Subject: [PATCH 1/5] Updated libdeflog.py Updated module `htmlentitydefs ` to `html.entities`, `unichr()` to `chr()`, and removed the `.encode('utf-8')` --- pylibdeflog/libdeflog.py | 45 +++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/pylibdeflog/libdeflog.py b/pylibdeflog/libdeflog.py index fccf01b..d4d016f 100644 --- a/pylibdeflog/libdeflog.py +++ b/pylibdeflog/libdeflog.py @@ -7,7 +7,7 @@ #********************************************************/ import re -from htmlentitydefs import name2codepoint +from html.entities import name2codepoint # EntityPattern = re.compile(u'&(?:#(\d+)|(?:#x([\da-fA-F]+))|([a-zA-Z]+));') @@ -16,15 +16,15 @@ def decodeEntities(s, encoding='utf-8'): def unescape(match): code = match.group(1) if code: - return unichr(int(code, 10)) + return chr(int(code, 10)) else: code = match.group(2) if code: - return unichr(int(code, 16)) + return chr(int(code, 16)) else: code = match.group(3) if code in name2codepoint: - return unichr(name2codepoint[code]) + return chr(name2codepoint[code]) return match.group(0) return EntityPattern.sub(unescape, s) @@ -153,9 +153,9 @@ def desms(word, format='html'): u'acá' >>> desms(u'ak', format='html') u'acá' - >>> #no se como hacer que pase sin hacer esta cosa - >>> print desms(u'ak', format='plain').encode('utf-8') - ac\xc3\xa1 + >>> #no se como hacer que este pase + >>> desms(u'ak', format='plain') + u'ac\xe1' """ translations = {u'+': u'más', @@ -296,9 +296,9 @@ def desestupidizar(word, format='html'): u'estás' >>> desestupidizar(u'taz', format='html') u'estás' - >>> #no se como hacer que pase sin hacer esta cosa - >>> print desestupidizar(u'taz', format='plain').encode('utf-8') - est\xc3\xa1s + >>> #no se como hacer que este pase + >>> desestupidizar(u'taz', format='plain') + u'est\xe1s' """ translations = {u'10pre': u'siempre', u'arre': u'<alguna sensación>', @@ -444,6 +444,12 @@ def desk(word, format='html'): def desporteniar(word, format='html'): + """ + Elimina las eses finales en palabras que terminan en istes + + >>> desestupidizar(u'lo vistes y me dijistes') + u'lo viste y me dijiste' + """ lword = word.lower() if len(lword) > 5 and lword[-4:] == u'stes': word = lword[:-1] @@ -465,6 +471,25 @@ def deszezear(word, format='html'): def fixmissingvowels(word, format='html'): + """ + Arega vocales omitidas el final de las palabras (va a fallar en palabras + en inglés, porque se supone que en español muy pocas palabras finalizan + por ejemplo en 't', entonces se asume que se le debe agregar una e) + >>> fixmissingvowels(u'stamos') + u'estamos' + >>> fixmissingvowels(u'spero') + u'estamos' + >>> fixmissingvowels(u'stamos') + u'espero' + >>> fixmissingvowels(u'dcile') + u'decile' + >>> fixmissingvowels(u'nterado') + u'enterado' + >>> fixmissingvowels(u'vrdad') + u'verdad' + >>> fixmissingvowels(u'comprart') + u'comprarte' + """ exceptions = [u'get', u'cat', u'that', u'best', u'post', u'net', u'chat'] vocales = [u'a', u'e', u'i', u'o',u'u'] followsd = [u'a', u'e', u'i', u'o',u'u', u'r', u'h', u'y'] From ae52155d1ca593b3498ef511b3933cb3cc8f0fab Mon Sep 17 00:00:00 2001 From: ra1nbowpill Date: Wed, 19 Jul 2017 20:36:59 +0200 Subject: [PATCH 2/5] Made libdeflog.py PEP8 compliant --- pylibdeflog/libdeflog.py | 312 ++++++++++++++++++++------------------- 1 file changed, 158 insertions(+), 154 deletions(-) diff --git a/pylibdeflog/libdeflog.py b/pylibdeflog/libdeflog.py index d4d016f..bec915e 100644 --- a/pylibdeflog/libdeflog.py +++ b/pylibdeflog/libdeflog.py @@ -1,18 +1,20 @@ # -*- coding: utf-8 -*- -#********************************************************* -#* DeFlog 2008-11-02 * -#* Traduce Fotolog/SMS a español * -#* http://www.santiagobruno.com.ar/programas.html#deflog * -#* Licencia: GPL v3 * -#********************************************************/ +# ********************************************************* +# * DeFlog 2008-11-02 * +# * Traduce Fotolog/SMS a español * +# * http://www.santiagobruno.com.ar/programas.html#deflog * +# * Licencia: GPL v3 * +# ********************************************************/ import re -from html.entities import name2codepoint +from html.entities import name2codepoint -# +# EntityPattern = re.compile(u'&(?:#(\d+)|(?:#x([\da-fA-F]+))|([a-zA-Z]+));') + def decodeEntities(s, encoding='utf-8'): + # def unescape(match): code = match.group(1) if code: @@ -26,9 +28,7 @@ def unescape(match): if code in name2codepoint: return chr(name2codepoint[code]) return match.group(0) - - return EntityPattern.sub(unescape, s) -# + return EntityPattern.sub(unescape, s) def dessimbolizar(word, format='html'): @@ -40,20 +40,22 @@ def dessimbolizar(word, format='html'): word = re.sub(r"(\w+?)¡", r"\1i", word) return word + def deleet(word, format='html'): if not re.match(r"\b\d+\b", word): - word = word.replace(u'0',u'o') - word = word.replace(u'1',u'i') - word = word.replace(u'3',u'e') - word = word.replace(u'4',u'a') - word = word.replace(u'5',u's') - word = word.replace(u'7',u't') + word = word.replace(u'0', u'o') + word = word.replace(u'1', u'i') + word = word.replace(u'3', u'e') + word = word.replace(u'4', u'a') + word = word.replace(u'5', u's') + word = word.replace(u'7', u't') return word + def desalternar(word, format='html'): """ Convierte palabras con mayusculas y minusculas alternadas a minusculas - + >>> desalternar(u"hola") u'hola' >>> desalternar(u"Hola") @@ -65,7 +67,7 @@ def desalternar(word, format='html'): >>> desalternar(u"hOlA") u'hola' """ - + if word.isupper() or word.islower() or word.istitle(): return word else: @@ -75,7 +77,7 @@ def desalternar(word, format='html'): def desmultiplicar(word, format='html'): """ Elimina las repeticiones de letras - + >>> desmultiplicar(u"hola") u'hola' >>> desmultiplicar(u"holaaaaaaa") @@ -92,50 +94,49 @@ def desmultiplicar(word, format='html'): u'www' """ - exceptions = [u'http',u'www',u'://', u'ss', u'ppio', u'ff', u'bb', u'kiss'] + exceptions = [u'http', u'www', u'://', u'ss', u'ppio', u'ff', u'bb', u'kiss'] lword = word.lower() - if re.match(r"^bs[s]+$",lword): + if re.match(r"^bs[s]+$", lword): return u'besos' - if re.match(r"^mm[m]+[h]*$",lword): + if re.match(r"^mm[m]+[h]*$", lword): return u'mmmh' - if re.match(r"^aa[a]+[h]*$",lword): + if re.match(r"^aa[a]+[h]*$", lword): return u'aaah' - if re.match(r"^ba[a]+[h]*$",lword): + if re.match(r"^ba[a]+[h]*$", lword): return u'baaah' - if re.match(r"^bu[u]+[h]*$",lword): + if re.match(r"^bu[u]+[h]*$", lword): return u'buuu' - - if not lword in exceptions and lword[:3] != u'...' : - if re.match(r"(^|[^l]+)[l][l]([^l])+",lword): + + if lword not in exceptions and lword[:3] != u'...': + if re.match(r"(^|[^l]+)[l][l]([^l])+", lword): pos = lword.index(u'll') - return desmultiplicar(lword[:pos]) + u'll' + desmultiplicar(lword[pos+2:]) + return desmultiplicar(lword[:pos]) + u'll' + desmultiplicar(lword[pos + 2:]) - if re.match(r"([^r])+[r][r]([^r])+",lword): + if re.match(r"([^r])+[r][r]([^r])+", lword): pos = lword.index(u'rr') - return desmultiplicar(lword[:pos]) + u'rr' + desmultiplicar(lword[pos+2:]) + return desmultiplicar(lword[:pos]) + u'rr' + desmultiplicar(lword[pos + 2:]) - ##Los dos casos siguientes se pueden sacar si no se esperan muchas - ##palabras en inglés. Sirve para pasar google, good, teen, etc - if re.match(r"([^o])+[o][o]([^o])+",lword): + # Los dos casos siguientes se pueden sacar si no se esperan muchas + # palabras en inglés. Sirve para pasar google, good, teen, etc + if re.match(r"([^o])+[o][o]([^o])+", lword): pos = lword.index(u'oo') - return desmultiplicar(lword[:pos]) + u'oo' + desmultiplicar(lword[pos+2:]) - - if re.match(r"([^e])+[e][e]([^e])+",lword): + return desmultiplicar(lword[:pos]) + u'oo' + desmultiplicar(lword[pos + 2:]) + + if re.match(r"([^e])+[e][e]([^e])+", lword): pos = lword.index(u'ee') - return desmultiplicar(lword[:pos]) + u'ee' + desmultiplicar(lword[pos+2:]) + return desmultiplicar(lword[:pos]) + u'ee' + desmultiplicar(lword[pos + 2:]) - return re.sub(r'(.)\1+',r'\1',word) + return re.sub(r'(.)\1+', r'\1', word) else: - return word; - - - + return word + + def desms(word, format='html'): """ Reemplaza algunas abreviaturas tipicas del sms @@ -157,7 +158,7 @@ def desms(word, format='html'): >>> desms(u'ak', format='plain') u'ac\xe1' """ - + translations = {u'+': u'más', u'+a': u'masa', u'ad+': u'además', @@ -283,6 +284,7 @@ def desms(word, format='html'): return word + def desestupidizar(word, format='html'): """ Corrige algunas estupideces @@ -300,92 +302,93 @@ def desestupidizar(word, format='html'): >>> desestupidizar(u'taz', format='plain') u'est\xe1s' """ - translations = {u'10pre': u'siempre', - u'arre': u'<alguna sensación>', - u'ahrre': u'<alguna sensación>', - u'ahre': u'<alguna sensación>', - u'ai': u'ahí/hay/ay', - u'aios': u'adiós', - u'aka': u'acá', - u'aki': u'aquí', - u'akí': u'aquí', - u'anio': u'año', - u'bai': u'bye', - u'ben': u'bien', - u'bem': u'bien', - u'bue': u'bueno', - u'bzo': u'beso', - u'doi': u'doy', - u'efe': u'favorito', - u'efeo': u'agrego a mis favoritos', - u'efen': u'agreguen a favoritos', - u'efes': u'favoritos', - u'efs': u'favoritos', - u'estoi': u'estoy', - u'ff': u'favoritos', - u'fs': u'favoritos', - u'grax': u'gracias', - u'groxo': u'grosso', - u'hai': u'hay', - u'hoi': u'hoy', - u'i': u'y', - u'ia': u'ya', - u'io': u'yo', - u'ise': u'hice', - u'iwal': u'igual', - u'kmo': u'como', - u'kn': u'con', - u'oi': u'hoy', - u'moy': u'muy', - u'muchio': u'mucho', - u'mu': u'muy', - u'mui': u'muy', - u'nah': u'nada', - u'nuche': u'no se', - u'nus': u'nos', - u'nuse': u'no se', - u'ola': u'hola', - u'olas': u'hola', - u'olaz': u'hola', - u'pic': u'foto', - u'pick': u'foto', - u'pik': u'foto', - u'plis': u'por favor', - u'pliz': u'por favor', - u'plz': u'por favor', - u'sho': u'yo', - u'sip': u'si', - u'soi': u'soy', - u'stoi': u'estoy', - u'sullo': u'suyo', - u'ta': u'está', - u'tawena': u'está buena', - u'tap': u'top', - u'taz': u'estás', - u'teno': u'tengo', - u'toi': u'estoy', - u'toos': u'todos', - u'tullo': u'tuyo', - u'lav': u'love', - u'lov': u'love', - u'lendo': u'lindo', - u'llendo': u'yendo', - u'mua': u'besos', - u'muak': u'besos', - u'muac': u'besos', - u'muack': u'besos', - u'muto': u'mucho', - u'nah': u'nada', - u'nu': u'no', - u'nueo': u'nuevo', - u'nunk': u'nunca', - u'nuc': u'no se', - u'voi': u'voy', - u'we': u'bueno', - u'wem': u'bueno', - u'wno': u'bueno', - u'xau': u'chau', - u'xfa': u'por favor' + translations = { + u'10pre': u'siempre', + u'arre': u'<alguna sensación>', + u'ahrre': u'<alguna sensación>', + u'ahre': u'<alguna sensación>', + u'ai': u'ahí/hay/ay', + u'aios': u'adiós', + u'aka': u'acá', + u'aki': u'aquí', + u'akí': u'aquí', + u'anio': u'año', + u'bai': u'bye', + u'ben': u'bien', + u'bem': u'bien', + u'bue': u'bueno', + u'bzo': u'beso', + u'doi': u'doy', + u'efe': u'favorito', + u'efeo': u'agrego a mis favoritos', + u'efen': u'agreguen a favoritos', + u'efes': u'favoritos', + u'efs': u'favoritos', + u'estoi': u'estoy', + u'ff': u'favoritos', + u'fs': u'favoritos', + u'grax': u'gracias', + u'groxo': u'grosso', + u'hai': u'hay', + u'hoi': u'hoy', + u'i': u'y', + u'ia': u'ya', + u'io': u'yo', + u'ise': u'hice', + u'iwal': u'igual', + u'kmo': u'como', + u'kn': u'con', + u'oi': u'hoy', + u'moy': u'muy', + u'muchio': u'mucho', + u'mu': u'muy', + u'mui': u'muy', + u'nah': u'nada', + u'nuche': u'no se', + u'nus': u'nos', + u'nuse': u'no se', + u'ola': u'hola', + u'olas': u'hola', + u'olaz': u'hola', + u'pic': u'foto', + u'pick': u'foto', + u'pik': u'foto', + u'plis': u'por favor', + u'pliz': u'por favor', + u'plz': u'por favor', + u'sho': u'yo', + u'sip': u'si', + u'soi': u'soy', + u'stoi': u'estoy', + u'sullo': u'suyo', + u'ta': u'está', + u'tawena': u'está buena', + u'tap': u'top', + u'taz': u'estás', + u'teno': u'tengo', + u'toi': u'estoy', + u'toos': u'todos', + u'tullo': u'tuyo', + u'lav': u'love', + u'lov': u'love', + u'lendo': u'lindo', + u'llendo': u'yendo', + u'mua': u'besos', + u'muak': u'besos', + u'muac': u'besos', + u'muack': u'besos', + u'muto': u'mucho', + u'nah': u'nada', + u'nu': u'no', + u'nueo': u'nuevo', + u'nunk': u'nunca', + u'nuc': u'no se', + u'voi': u'voy', + u'we': u'bueno', + u'wem': u'bueno', + u'wno': u'bueno', + u'xau': u'chau', + u'xfa': u'por favor' } lword = word.lower() @@ -393,21 +396,20 @@ def desestupidizar(word, format='html'): word = lword.replace(u'emd', u'ind') if u'md' in lword: word = lword.replace(u'md', u'nd') - if re.match(r'^[i]+$',lword): + if re.match(r'^[i]+$', lword): word = u'y' if len(lword) > 2 and lword[:3] == u'wen': word = u"buen" + lword[3:] if len(lword) > 2 and lword[:3] == u'oka': word = u"ok" - #posible risa + # posible risa if len(lword) > 6: - if re.match(u"^((j|a|k)+)$",lword): + if re.match(u"^((j|a|k)+)$", lword): return u"jajaja" - elif len(lword) > 8 and re.match(u"^((j|a|k|h|l|s|d|ñ)+)j((j|a|k|h|l|s|d|ñ)+)j((j|a|k|h|l|s|d|ñ)*)$",lword): + elif len(lword) > 8 and re.match(u"^((j|a|k|h|l|s|d|ñ)+)j((j|a|k|h|l|s|d|ñ)+)j((j|a|k|h|l|s|d|ñ)*)$", lword): return u"jajaja" - if word.lower() in translations: word = translations[word.lower()] @@ -416,30 +418,31 @@ def desestupidizar(word, format='html'): return word + def desk(word, format='html'): exceptions = [u'kiosco', u'kilo', u'kiló', u'fuck', u'punk', u'rock', u'look', u'kiss'] - vocales = [u'a', u'e', u'i', u'o',u'u'] + vocales = [u'a', u'e', u'i', u'o', u'u'] lword = word.lower() if lword == u'ok': return word - + for a in exceptions: if a in lword: return word - + if u"ki" in lword: word = word.lower().replace(u'ki', u'qui') - + if u"ke" in word: word = word.lower().replace(u'ke', u'que') if len(word) > 2 and word[0].lower() == u'k' and word[1].lower() not in vocales: word = u"ka" + word[1:].lower() - - word = word.replace(u'k',u'c') - word = word.replace(u'K',u'C') + + word = word.replace(u'k', u'c') + word = word.replace(u'K', u'C') return word @@ -460,13 +463,13 @@ def deszezear(word, format='html'): exceptions = [u'arroz', u'feliz', u'zorr', u'azul', u'azucar', u'azúcar', u'conoz', u'zapa'] lword = word.lower() - + for a in exceptions: if a in lword: return word - - word = word.replace(u'z',u's') - word = word.replace(u'Z',u'S') + + word = word.replace(u'z', u's') + word = word.replace(u'Z', u'S') return word @@ -491,20 +494,20 @@ def fixmissingvowels(word, format='html'): u'comprarte' """ exceptions = [u'get', u'cat', u'that', u'best', u'post', u'net', u'chat'] - vocales = [u'a', u'e', u'i', u'o',u'u'] - followsd = [u'a', u'e', u'i', u'o',u'u', u'r', u'h', u'y'] + vocales = [u'a', u'e', u'i', u'o', u'u'] + followsd = [u'a', u'e', u'i', u'o', u'u', u'r', u'h', u'y'] lword = word.lower() - if not lword in exceptions: + if lword not in exceptions: if len(lword) > 1 and lword[0] == u'n' and not lword[1] in vocales: lword = u"en" + lword[1:] word = lword - + wlen = len(word) - if wlen > 1 and lword[wlen-1] == u't': + if wlen > 1 and lword[wlen - 1] == u't': lword += u'e' word = lword - + if len(lword) > 2 and lword[:2] == u"vr" and not lword[2] in vocales: lword = u"ver" + lword[2:] word = lword @@ -527,6 +530,7 @@ def fixmissingvowels(word, format='html'): def _test(): import doctest doctest.testmod() - + + if __name__ == "__main__": _test() From 5cd87a73c29a8f434fcc628a8b23208aa14c2b84 Mon Sep 17 00:00:00 2001 From: ra1nbowpill Date: Wed, 19 Jul 2017 20:38:49 +0200 Subject: [PATCH 3/5] Adapted pyqt/run.py for CLI usage --- deflog.py | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100755 deflog.py diff --git a/deflog.py b/deflog.py new file mode 100755 index 0000000..6b355b9 --- /dev/null +++ b/deflog.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Author: Santiago Bruno +# License: GPL v3 +# Web pages: http://www.santiagobruno.com.ar/programas.html +# http://code.google.com/p/deflog/ + +import re +import sys +import argparse +from pylibdeflog.libdeflog import * + + +""" +Categorization of the different treatments + + Lang independant +"deleet" : l33t 5p34k -> leet speak (no transliteration 2morrow -> twomorrow) +"desalternar" : keep all lowercase or uppercase +"desmultiplicar" : olaaaaa -> ola (no language model to disambiguate gooood -> {good, god} + + Spanish +"dessmsar" : using a dictionnary +"desestupidizar" : using a dictionnary +"deszezear" : replace s by z +"deskar" : replace k by c +"desporteniar" : remove s at the end of word ending in 'istes' +"fixmissingvowels" : add vowels where they are missing following spanish language rules +""" + +ordinate_operations = ['deleet', 'desalternar', 'desmultiplicar', 'dessmsar', 'desestupidizar', 'deszezear', 'deskar', 'desporteniar', 'fixmissingvowels'] + +func_of_operation = { + "deleet": deleet, + "desalternar": desalternar, + "desmultiplicar": desmultiplicar, + "dessmsar": lambda x: desms(x, format='plain'), + "desestupidizar": lambda x: desestupidizar(x, format='plain'), + "deszezear": deszezear, + "deskar": desk, + "desporteniar": desporteniar, + "fixmissingvowels": fixmissingvowels +} + +words_re = re.compile(u"([\\w\\d+]+)", re.UNICODE) + +def translate(origText, opt=None): + if opt is None: + opt = dict() + + text = dessimbolizar(origText) + words = words_re.split(text) + + print(words) + + for operation in ordinate_operations: + try: + if opt[operation] is True: + words = map(func_of_operation[operation], words) + except KeyError as e: + () + + return ''.join(words) + + +def main(): + + def arguments(): + parser = argparse.ArgumentParser(description='Translator of Spanish Fotolog and SMS language to Spanish. By default all the rules are applied. Choose the one yu want to apply using the arguments.') + + parser.add_argument('--desmultiplicar', action='store_true', help='Removes letters repetition (holaaaaa -> hola)') + parser.add_argument('--deszezear', action='store_true', help='Transforms \'z\' in \'s\' (Deactivated by default because it creates more harm than good)') + parser.add_argument('--deskar', action='store_true', help='Transforms \'k\' in \'q\' (ki -> qui)') + parser.add_argument('--dessmsar', action='store_true', help='Replace SMS abbreviations (xq -> por que, dsp -> después)') + parser.add_argument('--desestupidizar', action='store_true', help='(toi -> estoy, i -> y, lemdo -> lindo)') + parser.add_argument('--desalternar', action='store_true', help='Convert mixed lowercase uppercase words to lowercase and keeps uppercased word (Letra DE UnA CaNcIoN -> letra DE una cancion)') + parser.add_argument('--desporteniar', action='store_true', help='Removes finals \'s\'s in words ending in \'istes\' (lo vistes y me dijistes -> lo viste y me dijiste)') + parser.add_argument('--deleet', action='store_true', help='Convert l33t 5p34k to standard speak (3s7o e5 un 73x70 f30 -> esto es un texto feo)') + parser.add_argument('--missing-vowels', action='store_true', help='Add missing vowels (it doesn\'t work english words) (stamos -> estamos, spero -> espero, dcile -> decile, nterado -> enterado, vrdad -> verdad, comprart, comprarte)') + + parser.add_argument('--lang-independant', action='store_true', help='Shortcut for --deleet --desalternar --desmultiplicar') + return parser.parse_args() + + args = arguments() + + default_opt = { + "deleet": True, + "desalternar": True, + "desmultiplicar": True, + "dessmsar": True, + "desestupidizar": True, + "deszezear": args.deszezear, + "deskar": True, + "desporteniar": True, + "fixmissingvowels": True + } + + lang_independant = { + "deleet": True, + "desalternar": True, + "desmultiplicar": True + } + + opt = dict() + + for key, value in vars(args).items(): + if value and key == 'lang_independant': + opt.update(lang_independant) + elif value: + opt[key] = True + + if not (opt.keys() - {'deszezear'}): + opt.update(default_opt) + + for line in sys.stdin: + print(translate(line, opt)) + + +if __name__ == '__main__': + main() From 4311b240d15bc4cda255bad443806d247986f03b Mon Sep 17 00:00:00 2001 From: ra1nbowpill Date: Wed, 19 Jul 2017 20:45:59 +0200 Subject: [PATCH 4/5] Pasted README.md from https://code.google.com/archive/p/deflog/ --- README.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..dc445d4 --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +# [Deflog](https://github.com/sbruno/deflog) + +## Descripción + +Este programa intenta eliminar varias de las características del lenguaje flogger, como repetición de letras, alternación de mayúsculas y minúsculas, abreviaturas de sms, etc. Se presenta en un varias versiones: + +### Versiones web + +* PHP +* Javascript +* Python usando cherrypy + +### Versiones desktop + +* PyQT4 +* CLI +* Otres + - Como un plugin para Messenger Plus! Live. + - Módulo python con las funciones utilizadas. + +## Capturas de pantalla + +### Captura de la versión online: + +![Online version](http://bananabruno.googlepages.com/deflog-javascript-screenshot-small.jpg) + +Captura del plugin para Messenger Plus! Live: + +![Plugin for Messenger PLus! Live](http://bananabruno.googlepages.com/deflog-msnlive-screenshot-small.jpg) + +## Descargas + +Las descargas recomendadas para las cuatro variantes del programa son las que aparecen en Featured Downloads. + +El plugin puede ser descargado también desde el sitio de Messenger Plus! Live : http://www.msgpluslive.net/scripts/view/404-DeFlog/ + +Pero esa puede no ser la última versión. Para descargar la última versión, hacerlo desde http://code.google.com/p/deflog/downloads/list + +O para ver alguna novedad experimental (?), el trunk del repositorio: http://deflog.googlecode.com/svn/trunk/msnlive_plugin/package/deflog.plsc + +DISCLAIMER: El plugin solo puede aplicar todos los métodos correctamente a los mensajes salientes. Es una limitación del messenger como se dice en mi página o la página del plugin en el sitio de Messenger Plus! Live + +## Probar Online + +[Versión en PHP](http://www.santiagobruno.com.ar/php/desfotologuear.php) + +[Versión en Javascript](http://www.santiagobruno.com.ar/javascript/desfotologuear.html) + +## Descripción de los métodos aplicables al texto + +* **Desmultiplicar**: Elimina repeticiones de letras (holaaaaa -> hola) + +* **Deszezear**: Transforma zetas en eses (Desactivado por defecto ya que no es nada inteligente, y si el texto está relativamente bien escrito generará más errores de ortografía de los que solucionará) + +* **Des-k-ar**: Similar a Deszezear pero para k -> c. Además transforma ki en qui. + +* **DesSMSar**: Elimina abreviaturas SMS (xq -> por que, dsp -> después) + +* **Desestupidizar**: (toi -> estoy, i -> y, lemdo -> lindo) + +* **Desalternar**: Convierte palabras con mezcla de mayúsculas y minúsculas a minúscula (LeTrA dE uNa CaNcIoN -> letra de una cancion) + +* **Desporteñar**: Elimina las eses finales en palabras que terminan en istes (lo vistes y me dijistes -> lo viste y me dijiste) + +* **Deleet**: Convierte a letra los números que se usan como letra (3s7o e5 un 73x70 f30 -> esto es un texto feo) + +* **Fix missing vowels**: Arega vocales omitidas el final de las palabras (va a fallar en palabras en inglés, porque se supone que en español muy pocas palabras finalizan por ejemplo en 't', entonces se asume que se le debe agregar una e) (stamos -> estamos, spero -> espero, dcile -> decile, nterado -> enterado, vrdad -> verdad, comprart, comprarte) + +Todos los métodos pueden aplicarse selectivamente From 3c8667befac102a2f5a3c9f4a14d8d7926237085 Mon Sep 17 00:00:00 2001 From: ra1nbowpill Date: Wed, 19 Jul 2017 21:10:25 +0200 Subject: [PATCH 5/5] Made a README in english README_orig.md is the readme in the google repo README.md is a translation + update of the original readme --- README.md | 74 ++++++++++++++++++++++++++------------------------ README_orig.md | 69 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+), 35 deletions(-) create mode 100644 README_orig.md diff --git a/README.md b/README.md index dc445d4..9688ceb 100644 --- a/README.md +++ b/README.md @@ -1,69 +1,73 @@ # [Deflog](https://github.com/sbruno/deflog) -## Descripción -Este programa intenta eliminar varias de las características del lenguaje flogger, como repetición de letras, alternación de mayúsculas y minúsculas, abreviaturas de sms, etc. Se presenta en un varias versiones: +## Description -### Versiones web +This program tries to eliminate several characteristics of the language flogger, like repetition of letters, alternation of uppercase and lowercase, abbreviations of sms, etc. for spanish. It is presented in a number of versions: -* PHP -* Javascript -* Python usando cherrypy -### Versiones desktop +### Web Versions -* PyQT4 -* CLI -* Otres - - Como un plugin para Messenger Plus! Live. - - Módulo python con las funciones utilizadas. +* [PHP](./php/) +* [Javascript](./javascript/) +* [Python w/ cherrypy](./python-cherrypy/) -## Capturas de pantalla +### Desktop Versions -### Captura de la versión online: +* [PyQT4](./pyqt/) +* [CLI](./deflog.py) +* Others + - [Plugin for Messenger Plus! Live](./msnlive_plugin/) + - [Python module](./pylibdeflog/) + + +## Screenshots + +### Online version: ![Online version](http://bananabruno.googlepages.com/deflog-javascript-screenshot-small.jpg) -Captura del plugin para Messenger Plus! Live: +### Messenger Plus! Live Plugin: ![Plugin for Messenger PLus! Live](http://bananabruno.googlepages.com/deflog-msnlive-screenshot-small.jpg) -## Descargas -Las descargas recomendadas para las cuatro variantes del programa son las que aparecen en Featured Downloads. +## Download -El plugin puede ser descargado también desde el sitio de Messenger Plus! Live : http://www.msgpluslive.net/scripts/view/404-DeFlog/ +The latest stable versions can be downloaded from http://code.google.com/p/deflog/downloads/list -Pero esa puede no ser la última versión. Para descargar la última versión, hacerlo desde http://code.google.com/p/deflog/downloads/list +The plugin for Messenger Plus! Live was available through their website : http://www.msgpluslive.net/scripts/view/404-DeFlog/ -O para ver alguna novedad experimental (?), el trunk del repositorio: http://deflog.googlecode.com/svn/trunk/msnlive_plugin/package/deflog.plsc -DISCLAIMER: El plugin solo puede aplicar todos los métodos correctamente a los mensajes salientes. Es una limitación del messenger como se dice en mi página o la página del plugin en el sitio de Messenger Plus! Live +## Try it ! -## Probar Online +[PHP Version](http://www.santiagobruno.com.ar/php/desfotologuear.php) -[Versión en PHP](http://www.santiagobruno.com.ar/php/desfotologuear.php) +[JS Version](http://www.santiagobruno.com.ar/javascript/desfotologuear.html) -[Versión en Javascript](http://www.santiagobruno.com.ar/javascript/desfotologuear.html) -## Descripción de los métodos aplicables al texto +## Description of the methods -* **Desmultiplicar**: Elimina repeticiones de letras (holaaaaa -> hola) +Most of the method are made for spanish. -* **Deszezear**: Transforma zetas en eses (Desactivado por defecto ya que no es nada inteligente, y si el texto está relativamente bien escrito generará más errores de ortografía de los que solucionará) +§ = The method is language independant. -* **Des-k-ar**: Similar a Deszezear pero para k -> c. Además transforma ki en qui. +All methods can be applied selectively -* **DesSMSar**: Elimina abreviaturas SMS (xq -> por que, dsp -> después) +* **Desmultiplicar §**: Removes letters repetition (holaaaaa -> hola) -* **Desestupidizar**: (toi -> estoy, i -> y, lemdo -> lindo) +* **Deszezear**: Transforms \'z\' in \'s\' (Deactivated by default because it creates more harm than good) -* **Desalternar**: Convierte palabras con mezcla de mayúsculas y minúsculas a minúscula (LeTrA dE uNa CaNcIoN -> letra de una cancion) +* **Des-k-ar**: Transforms \'k\' in \'q\' (ki -> qui) + +* **DesSMSar**: Replace SMS abbreviations (xq -> por que, dsp -> después) + +* **Desestupidizar**: (toi -> estoy, i -> y, lemdo -> lindo) -* **Desporteñar**: Elimina las eses finales en palabras que terminan en istes (lo vistes y me dijistes -> lo viste y me dijiste) +* **Desalternar §**: Convert mixed lowercase uppercase words to lowercase and keeps uppercased word (Letra DE UnA CaNcIoN -> letra DE una cancion) -* **Deleet**: Convierte a letra los números que se usan como letra (3s7o e5 un 73x70 f30 -> esto es un texto feo) +* **Desporteñar**: Removes finals \'s\'s in words ending in \'istes\' (lo vistes y me dijistes -> lo viste y me dijiste) -* **Fix missing vowels**: Arega vocales omitidas el final de las palabras (va a fallar en palabras en inglés, porque se supone que en español muy pocas palabras finalizan por ejemplo en 't', entonces se asume que se le debe agregar una e) (stamos -> estamos, spero -> espero, dcile -> decile, nterado -> enterado, vrdad -> verdad, comprart, comprarte) +* **Deleet §**: Convert l33t 5p34k to standard speak (3s7o e5 un 73x70 f30 -> esto es un texto feo) -Todos los métodos pueden aplicarse selectivamente +* **Fix missing vowels**: Add missing vowels (it doesn\'t work english words) (stamos -> estamos, spero -> espero, dcile -> decile, nterado -> enterado, vrdad -> verdad, comprart, comprarte) diff --git a/README_orig.md b/README_orig.md new file mode 100644 index 0000000..c713ee0 --- /dev/null +++ b/README_orig.md @@ -0,0 +1,69 @@ +# [Deflog](https://github.com/sbruno/deflog) + +## Descripción + +Este programa intenta eliminar varias de las características del lenguaje flogger, como repetición de letras, alternación de mayúsculas y minúsculas, abreviaturas de sms, etc. Se presenta en un varias versiones: + +### Versiones web + +* PHP +* Javascript +* Python usando cherrypy + +### Versiones desktop + +* PyQT4 +* CLI +* Otres + - Como un plugin para Messenger Plus! Live. + - Módulo python con las funciones utilizadas. + +## Capturas de pantalla + +### Captura de la versión online: + +![Online version](http://bananabruno.googlepages.com/deflog-javascript-screenshot-small.jpg) + +### Captura del plugin para Messenger Plus! Live: + +![Plugin for Messenger PLus! Live](http://bananabruno.googlepages.com/deflog-msnlive-screenshot-small.jpg) + +## Descargas + +Las descargas recomendadas para las cuatro variantes del programa son las que aparecen en Featured Downloads. + +El plugin puede ser descargado también desde el sitio de Messenger Plus! Live : http://www.msgpluslive.net/scripts/view/404-DeFlog/ + +Pero esa puede no ser la última versión. Para descargar la última versión, hacerlo desde http://code.google.com/p/deflog/downloads/list + +O para ver alguna novedad experimental (?), el trunk del repositorio: http://deflog.googlecode.com/svn/trunk/msnlive_plugin/package/deflog.plsc + +DISCLAIMER: El plugin solo puede aplicar todos los métodos correctamente a los mensajes salientes. Es una limitación del messenger como se dice en mi página o la página del plugin en el sitio de Messenger Plus! Live + +## Probar Online + +[Versión en PHP](http://www.santiagobruno.com.ar/php/desfotologuear.php) + +[Versión en Javascript](http://www.santiagobruno.com.ar/javascript/desfotologuear.html) + +## Descripción de los métodos aplicables al texto + +* **Desmultiplicar**: Elimina repeticiones de letras (holaaaaa -> hola) + +* **Deszezear**: Transforma zetas en eses (Desactivado por defecto ya que no es nada inteligente, y si el texto está relativamente bien escrito generará más errores de ortografía de los que solucionará) + +* **Des-k-ar**: Similar a Deszezear pero para k -> c. Además transforma ki en qui. + +* **DesSMSar**: Elimina abreviaturas SMS (xq -> por que, dsp -> después) + +* **Desestupidizar**: (toi -> estoy, i -> y, lemdo -> lindo) + +* **Desalternar**: Convierte palabras con mezcla de mayúsculas y minúsculas a minúscula (LeTrA dE uNa CaNcIoN -> letra de una cancion) + +* **Desporteñar**: Elimina las eses finales en palabras que terminan en istes (lo vistes y me dijistes -> lo viste y me dijiste) + +* **Deleet**: Convierte a letra los números que se usan como letra (3s7o e5 un 73x70 f30 -> esto es un texto feo) + +* **Fix missing vowels**: Arega vocales omitidas el final de las palabras (va a fallar en palabras en inglés, porque se supone que en español muy pocas palabras finalizan por ejemplo en 't', entonces se asume que se le debe agregar una e) (stamos -> estamos, spero -> espero, dcile -> decile, nterado -> enterado, vrdad -> verdad, comprart, comprarte) + +Todos los métodos pueden aplicarse selectivamente