# SPDX-FileCopyrightText: 2025 QinHan
# SPDX-License-Identifier: MPL-2.0
import argparse
import sys # 用于检查命令行参数数量


def main():
    parser = argparse.ArgumentParser(
        description="DocuTranslate: 一个文档翻译工具。",
        # 更新示例，展示如何使用 host 参数
        epilog="示例:\n"
               "  docutranslate -i                     (启动图形界面，默认本地访问)\n"
               "  docutranslate -i --host 0.0.0.0      (允许局域网内其他设备访问)\n"
               "  docutranslate -i -p 8081             (指定端口号)\n"
               "  docutranslate -i --cors              (启用默认的跨域设置)\n",
        formatter_class=argparse.RawDescriptionHelpFormatter
    )

    parser.add_argument(
        "-i", "--interactive",
        action="store_true",
        help="打开图形化用户界面 (GUI) 并启动后端服务。"
    )

    # --- 新增 host 参数 ---
    parser.add_argument(
        "--host",
        type=str,
        default=None,
        help="指定服务监听的主机地址。默认为 '127.0.0.1' (仅本地)。若需局域网访问请设为 '0.0.0.0'。"
    )
    # ---------------------

    parser.add_argument(
        "-p", "--port",
        type=int,
        default=None,
        help="指定服务监听的端口号（默认：8010）。"
    )

    parser.add_argument(
        "--cors",
        action="store_true",
        help="启用跨域资源共享 (CORS)。如果是前后端分离开发或需跨域调用 API，请开启此选项。"
    )

    parser.add_argument(
        "--cors-regex",
        type=str,
        default=r"^(https?://.*|null|file://.*)$",
        help="设置 CORS 允许的 Origin 正则表达式。默认为允许所有 HTTP 和 HTTPS 请求。"
    )

    parser.add_argument(
         "--version",
        action="store_true",
        help="查看版本号。"
    )

    # 检查是否没有提供任何参数
    if len(sys.argv) == 1:
        print("欢迎使用 DocuTranslate！")
        print("请使用 '-i' 或 '--interactive' 选项来启动图形化界面。")
        print("\n示例:")
        print("  docutranslate -i")
        print("  docutranslate -i --host 0.0.0.0 (局域网共享)")
        print("\n如需查看所有可用选项，请运行:")
        print("  docutranslate --help")
        sys.exit(0)

    args = parser.parse_args()

    # 调用核心逻辑
    if args.interactive:
        from docutranslate.app import run_app
        run_app(
            host=args.host,
            port=args.port,
            enable_CORS=args.cors,
            allow_origin_regex=args.cors_regex
        )
    elif args.version:
        from docutranslate import  __version__
        print(__version__)
    else:
        parser.print_help()
        sys.exit(1)


if __name__ == "__main__":
    main()