diff --git a/lfy.in b/lfy.in index 2a48373..2d0a1be 100755 --- a/lfy.in +++ b/lfy.in @@ -87,6 +87,7 @@ def main(): parser = argparse.ArgumentParser(description="translate") parser.add_argument('-t', type=str, help='翻译后面的文字') + parser.add_argument('-o', type=str, help='识别图片') parser.add_argument('-c', action='store_true', help='翻译剪贴板') args = parser.parse_args() @@ -95,6 +96,10 @@ def main(): from lfy.code import req_text # pylint: disable=c0415 return req_text(args.t) + if args.o: + from lfy.code import ocr_img # pylint: disable=c0415 + return ocr_img(args.o) + # if args.c: # from lfy.code import req_clip # return req_clip() diff --git a/lfy/code.py b/lfy/code.py index 233c788..4d57ca5 100644 --- a/lfy/code.py +++ b/lfy/code.py @@ -5,11 +5,34 @@ from gi.repository import Gdk -from lfy.api import create_server_t, get_lang, server_key2i +from lfy.api import create_server_o, create_server_t, get_lang, server_key2i +from lfy.api.server import Server from lfy.api.utils.debug import get_logger from lfy.settings import Settings +def ocr_img(s): + """命令行识别 + + Args: + s (str): 图片路径 + """ + setting = Settings.get() + server: Server = create_server_o(setting.server_ocr_selected_key) + + try: + print(server.name) + _ok, text = server.ocr_image(s) + print(text) + + except Exception as e: # pylint: disable=W0718 + get_logger().error(e) + error_msg = _("something error:") + error_msg2 = f"{str(e)}\n\n{traceback.format_exc()}" + text = f"{error_msg}{server.name}\n\n{error_msg2}" + + + def req_text(s): """子线程翻译 @@ -45,6 +68,8 @@ def req_text(s): text = f"{error_msg}{tran_server.name}\n\n{error_msg2}" def req_clip(): + """获取截剪贴板 + """ print("req_clip") def on_active_copy(cb2, res): req_text(cb2.read_text_finish(res))