-
Notifications
You must be signed in to change notification settings - Fork 1
/
eztrans.py
52 lines (40 loc) · 2.42 KB
/
eztrans.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# -*- coding: utf-8 -*-
from ctypes import WinDLL, c_char_p, c_int, c_wchar_p
from ctypes.wintypes import BOOL
from flask import Flask, request
import re
app = Flask(__name__)
class TransEngine:
def initialize(self, engine):
self.start = engine.J2K_InitializeEx
self.start.argtypes = [c_char_p, c_char_p]
self.start.restype = BOOL
self.trans = engine.J2K_TranslateMMNTW
self.trans.argtypes = [c_int, c_wchar_p]
self.trans.restype = c_wchar_p
self.start_obj = self.start(b"CSUSER123455", b"C:\Program Files (x86)\ChangShinSoft\ezTrans XP\Dat")
def translate_j2k(self, src_text):
trans_obj = self.trans(0, src_text)
return trans_obj
eng = TransEngine()
def decode_text(txt):
chars = "↔◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞↕↗↙↖↘♩♬㉿㈜㏇™㏂㏘"'∼ˇ˘˝¡˚˙˛¿ː∏₩℉€㎕㎖㎗ℓ㎘㎣㎤㎥㎦㎙㎚㎛㎟㎠㎢㏊㎍㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆┒┑┚┙┖┕┎┍┞┟┡┢┦┧┪┭┮┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊┱┲ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ½⅓⅔¼¾⅛⅜⅝⅞ⁿ₁₂₃₄ŊđĦIJĿŁŒŦħıijĸŀłœŧŋʼn㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂"
for c in chars:
if c in txt:
txt = txt.replace(c,"\\u" + str(hex(ord(c)))[2:])
return txt
def encode_text(txt):
return re.sub(r'(?i)(?<!\\)(?:\\\\)*\\u([0-9a-f]{4})', lambda m: chr(int(m.group(1), 16)), txt)
def main():
engine_object = WinDLL('C:\Program Files (x86)\ChangShinSoft\ezTrans XP\J2KEngineH.dll')
eng.initialize(engine_object)
app.run(host="127.0.0.1", port=5000, threaded=True)
@app.route("/")
def home():
return "ezTranslator J2K Web Wrapper"
@app.route("/translate")
def webtranslate():
src_text = request.args.get('text')
return encode_text(eng.translate_j2k(decode_text(src_text)))
if __name__ == '__main__':
main()