File size: 2,749 Bytes
38b7815
 
 
 
 
 
 
 
 
 
 
 
 
 
56cf38b
 
 
 
38b7815
56cf38b
 
 
 
 
 
 
 
 
679a546
56cf38b
679a546
 
56cf38b
 
 
 
 
 
 
 
 
679a546
 
 
38b7815
 
 
 
 
 
 
56cf38b
679a546
 
56cf38b
 
679a546
56cf38b
 
 
 
 
 
 
 
 
679a546
 
 
 
56cf38b
679a546
 
 
 
 
 
38b7815
56cf38b
 
 
 
 
 
 
 
 
 
 
38b7815
 
56cf38b
 
38b7815
56cf38b
679a546
 
39d4f47
56cf38b
39d4f47
 
 
 
 
 
 
 
 
 
 
 
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
"""Failed attempt to fix "This event loop is already running" in Widows:
from platform import platform
if platform().lower().startswith("windows"):
    from install import install
    try:
        import nest_asyncio
    except ModuleNotFoundError:
        try:
            install("nest-asyncio")
            import nest_asyncio
        except Exception as exc:
            print(exc)
            raise SystemExit(1)
    nest_asyncio.apply()

from gevent import monkey
monkey.patch_all()

# """
# from gevent import monkey
# monkey.patch_all()

import nest_asyncio
# nest_asyncio.apply()

import asyncio

from multiprocessing import Process  #  , freeze_support
import gradio as gr

import httpx
from logzero import logger

# from deepl_fastapi.run_uvicorn import main
# from deepl_fastapi_pw.run_uvicorn_async import main
from deepl_fastapi_pw.deepl_server_async import main

# from deepl_scraper_pw.deepl_tr import deepl_tr
from deepl_fastapi_pw.deepl_tr import deepl_tr

arun = asyncio.get_event_loop().run_until_complete


def deepl(text, from_lang, to_lang):
    try:
        text = str(text).strip()
    except Exception:
        text = ""
    if not text:
        return "Put something there, man."

    # _ = """
    # "http://127.0.0.1:8000/text/?q=test%20me&to_lang=zh"
    url = "http://127.0.0.1:8000/text/" # ?q=test%20me&to_lang=zh"
    url = "http://127.0.0.1:8001/text/" # ?q=test%20me&to_lang=zh"

    try:
        # resp = httpx.get(f"{url}?q={text}&from_lang={from_lang}&to_lang={to_lang}")
        resp = httpx.post(
            url,
            json={
                "text": text,
                "from_lang": from_lang,
                "to_lang": to_lang,
            },
        )
        resp.raise_for_status()
    except Exception as exc:
        logger.error(exc)
        return str(exc)

    try:
        jdata = resp.json()
    except Exception as exc:
        logger.error(exc)
        return str(exc)

    try:
        # res = jdata.get("trtext")
        res = jdata.get("result")
    except Exception as exc:
        logger.error(exc)
        res = str(exc)
    # """

    _ = """
    try:
        # _ = deepl_tr(text, from_lang, to_lang)
        _ = arun(deepl_tr(text, from_lang, to_lang))
    except Exception as exc:
        logger.error(exc)
        return str(exc)
    # """

    return res


if __name__ == "__main__":
    # freeze_support()
    Process(target=main).start()

    iface = gr.Interface(
        fn=deepl,
        inputs=[
            gr.Textbox(placeholder="Paste text here (max. 5000 chars)", lines=7,),
            gr.Textbox(label="from_lang", value="en", lines=1),
            gr.Textbox(label="to_lang", value="zh", lines=1),
        ],
        outputs="textarea"
    )
    iface.launch()