Skip to content

Commit dabbe66

Browse files
committed
Add aaEncode/aaDecode
Encode any JavaScript program to Japanese style emoticons (^_^)
1 parent 33c4223 commit dabbe66

4 files changed

Lines changed: 139 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
1+
### v1.0.5 (2017/08/01)
2+
3+
* Add md5 16
4+
5+
```
6+
md5_16: 123 => ac59075b964b0715
7+
md5_32: 123 => 202cb962ac59075b964b07152d234b70
8+
```
9+
10+
* Add aaEncode/aaDecode
11+
12+
> Encode any JavaScript program to Japanese style emoticons (^_^).
13+
>
14+
> http://utf-8.jp/public/aaencode.html
15+
16+
javascript code:
17+
18+
```
19+
alert('hello')
20+
```
21+
22+
After aaencode:
23+
24+
```
25+
゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');
26+
```
27+
128
### v1.0.4 (2017/05/19)
229

330
* Fix Base16 Coding Error

Default.sublime-commands

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,14 @@
141141
"caption": "XssEncode: Js16Decode",
142142
"command": "js16_decode"
143143
},
144+
{
145+
"caption": "XssEncode: AaEncode",
146+
"command": "aa_encode"
147+
},
148+
{
149+
"caption": "XssEncode: AaDecode",
150+
"command": "aa_decode"
151+
},
144152
{
145153
"caption": "XssEncode: TestEncode",
146154
"command": "test_encode"

Main.sublime-menu

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
{"caption": "-"},
3737
{"id": "js16_encode", "caption": "Js16Encode", "command": "js16_encode"},
3838
{"id": "js16_decode", "caption": "Js16Decode", "command": "js16_decode"},
39+
{"id": "aa_encode", "caption": "aaEncode", "command": "aa_encode"},
40+
{"id": "aa_decode", "caption": "aaDecode", "command": "aa_decode"},
3941
{"caption": "-"},
4042
{"id": "unicode_encode", "caption": "UnicodeEncode", "command": "unicode_encode"},
4143
{"id": "unicode_decode", "caption": "UnicodeDecode", "command": "unicode_decode"},

xssencode.py

Lines changed: 102 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import sublime
22
import sublime_plugin
3-
__VERSION__ = '1.0.4'
3+
__VERSION__ = '1.0.5'
44

55

66
class XssEncodeCommand(sublime_plugin.TextCommand):
@@ -437,6 +437,107 @@ def convert(self, source_txt):
437437
sublime.error_message("Js16Decode convert failed.")
438438

439439

440+
class AaEncodeCommand(XssEncodeCommand):
441+
u"""Encode any JavaScript program to Japanese style emoticons (^_^)."""
442+
443+
def aaencode(self, text):
444+
import re
445+
try:
446+
text = unicode(text)
447+
except:
448+
pass
449+
t = ""
450+
b = [
451+
"(c^_^o)",
452+
"(゚Θ゚)",
453+
"((o^_^o) - (゚Θ゚))",
454+
"(o^_^o)",
455+
"(゚ー゚)",
456+
"((゚ー゚) + (゚Θ゚))",
457+
"((o^_^o) +(o^_^o))",
458+
"((゚ー゚) + (o^_^o))",
459+
"((゚ー゚) + (゚ー゚))",
460+
"((゚ー゚) + (゚ー゚) + (゚Θ゚))",
461+
"(゚Д゚) .゚ω゚ノ",
462+
"(゚Д゚) .゚Θ゚ノ",
463+
"(゚Д゚) ['c']",
464+
"(゚Д゚) .゚ー゚ノ",
465+
"(゚Д゚) .゚Д゚ノ",
466+
"(゚Д゚) [゚Θ゚]"
467+
]
468+
r = "゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); "
469+
if re.search('ひだまりスケッチ×(365|356)\s*来週も見てくださいね[!!]', text):
470+
r += "X=_=3; "
471+
r += "\r\n\r\n X / _ / X < \"来週も見てくださいね!\";\r\n\r\n"
472+
473+
r += "(゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);" +\
474+
"(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] " + \
475+
",゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] " +\
476+
",゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];" +\
477+
"(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];" +\
478+
"(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];" +\
479+
"(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + " +\
480+
"((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+" +\
481+
"((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+" +\
482+
"((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+" +\
483+
"((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];" +\
484+
"(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+" +\
485+
"((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+" +\
486+
"((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; " +\
487+
"(゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\\\'; " +\
488+
"(゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];" +\
489+
"(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];" +\
490+
"(゚Д゚) [゚o゚]='\\\"';" +\
491+
"(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+"
492+
r += "(゚Д゚)[゚o゚]+ "
493+
for i in range(len(text)):
494+
n = ord(text[i])
495+
t = "(゚Д゚)[゚ε゚]+"
496+
if(n <= 127):
497+
nt = "%o" % n
498+
for x in range(len(nt)):
499+
t += b[int(nt[x])] + "+ "
500+
else:
501+
nt = "%04x" % n
502+
t += "(o゚ー゚o)+ "
503+
for x in range(len(nt)):
504+
t += b[int(eval("0x%s" % nt[x]))] + "+ "
505+
r += t
506+
r += "(゚Д゚)[゚o゚]) (゚Θ゚)) ('_');"
507+
return r
508+
509+
def convert(self, source_txt):
510+
try:
511+
text = self.aaencode(source_txt)
512+
return text
513+
except:
514+
sublime.error_message("aaEncode convert failed.")
515+
516+
517+
class AaDecodeCommand(XssEncodeCommand):
518+
u"""Encode any JavaScript program to Japanese style emoticons (^_^)."""
519+
520+
def convert(self, source_txt):
521+
try:
522+
evalPreamble = u"(\uFF9F\u0414\uFF9F) ['_'] ( (\uFF9F\u0414\uFF9F) ['_'] ("
523+
decodePreamble = u"( (\uFF9F\u0414\uFF9F) ['_'] ("
524+
evalPostamble = u") (\uFF9F\u0398\uFF9F)) ('_');"
525+
decodePostamble = u") ());"
526+
text = source_txt.strip()
527+
if text.rfind(evalPostamble) < 0:
528+
sublime.error_message("Given code is not encoded as aaencode.")
529+
return source_txt
530+
if text.rfind(evalPostamble) != len(text) - len(evalPostamble):
531+
sublime.error_message("Given code is not encoded as aaencode.")
532+
return source_txt
533+
text = text.replace(evalPreamble, decodePreamble).replace(
534+
evalPostamble, decodePostamble)
535+
sublime.message_dialog('Decode end. Run the script you will see result.')
536+
return text
537+
except:
538+
sublime.error_message("aaDecode convert failed.")
539+
540+
440541
class HexStripxCommand(XssEncodeCommand):
441542
def convert(self, source_txt):
442543
try:

0 commit comments

Comments
 (0)