|
1 | 1 | import sublime |
2 | 2 | import sublime_plugin |
3 | | -__VERSION__ = '1.0.4' |
| 3 | +__VERSION__ = '1.0.5' |
4 | 4 |
|
5 | 5 |
|
6 | 6 | class XssEncodeCommand(sublime_plugin.TextCommand): |
@@ -437,6 +437,107 @@ def convert(self, source_txt): |
437 | 437 | sublime.error_message("Js16Decode convert failed.") |
438 | 438 |
|
439 | 439 |
|
| 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 | + |
440 | 541 | class HexStripxCommand(XssEncodeCommand): |
441 | 542 | def convert(self, source_txt): |
442 | 543 | try: |
|
0 commit comments