/* * @Author: Vincent Yang * @Date: 2024-04-23 00:39:03 * @LastEditors: Vincent Yang * @LastEditTime: 2024-09-17 19:34:32 * @FilePath: /DeepLX/config.go * @Telegram: https://t.me/missuo * @GitHub: https://github.com/missuo * * Copyright © 2024 by Vincent, All Rights Reserved. */ package main import ( "flag" "fmt" "os" ) type Config struct { IP string Port int Token string DlSession string Proxy string } func initConfig() *Config { cfg := &Config{ IP: "0.0.0.0", Port: 1188, } // IP flag if ip, ok := os.LookupEnv("IP"); ok && ip != "" { cfg.IP = ip } flag.StringVar(&cfg.IP, "ip", cfg.IP, "set up the IP address to bind to") flag.StringVar(&cfg.IP, "i", cfg.IP, "set up the IP address to bind to") // Port flag if port, ok := os.LookupEnv("PORT"); ok && port != "" { fmt.Sscanf(port, "%d", &cfg.Port) } flag.IntVar(&cfg.Port, "port", cfg.Port, "set up the port to listen on") flag.IntVar(&cfg.Port, "p", cfg.Port, "set up the port to listen on") // DL Session flag flag.StringVar(&cfg.DlSession, "s", "", "set the dl-session for /v1/translate endpoint") if cfg.DlSession == "" { if dlSession, ok := os.LookupEnv("DL_SESSION"); ok { cfg.DlSession = dlSession } } // Access token flag flag.StringVar(&cfg.Token, "token", "", "set the access token for /translate endpoint") if cfg.Token == "" { if token, ok := os.LookupEnv("TOKEN"); ok { cfg.Token = token } } // HTTP Proxy flag flag.StringVar(&cfg.Proxy, "proxy", "", "set the proxy URL for HTTP requests") if cfg.Proxy == "" { if proxy, ok := os.LookupEnv("PROXY"); ok { cfg.Proxy = proxy } } flag.Parse() return cfg }