mirror of
https://github.com/ZxwyWebSite/lx-source.git
synced 2025-05-23 21:37:42 +08:00
156 lines
5.0 KiB
Go
156 lines
5.0 KiB
Go
// 全局变量
|
||
package env
|
||
|
||
import (
|
||
"github.com/ZxwyWebSite/ztool"
|
||
"github.com/ZxwyWebSite/ztool/cache/memo"
|
||
"github.com/ZxwyWebSite/ztool/conf"
|
||
"github.com/ZxwyWebSite/ztool/logs"
|
||
)
|
||
|
||
const (
|
||
Version = `1.0.2-b0.7`
|
||
)
|
||
|
||
var (
|
||
RunPath string
|
||
)
|
||
|
||
// 配置结构
|
||
/*
|
||
注:Mode字段建议使用名称方式调用,序号可能频繁更改
|
||
e.g. 0: off(), 1: builtin(), 2: custom()
|
||
序号 名称 描述
|
||
*/
|
||
type (
|
||
Conf_Main struct {
|
||
Debug bool `comment:"调试模式"`
|
||
Listen string `comment:"监听地址"`
|
||
Gzip bool `comment:"开启GZip (对已压缩的内容使用会产生反效果)"`
|
||
LogPath string `comment:"文件日志路径,不填禁用"`
|
||
Print bool `comment:"控制台输出"`
|
||
SysLev bool `comment:"(实验性) 设置进程高优先级"`
|
||
// FFConv bool `comment:"(实验性) 使用FFMpeg修复音频(本地缓存)"`
|
||
}
|
||
Conf_Apis struct {
|
||
// BindAddr string `comment:"外部访问地址,用于生成文件链接"`
|
||
// LxM_Auth string `comment:"验证Key,自动生成,填写null禁用"`
|
||
}
|
||
Conf_Auth struct {
|
||
// ApiKey
|
||
ApiKey_Enable bool `comment:"是否开启Key验证"`
|
||
ApiKey_Value string `comment:"验证Key值,留空自动生成"`
|
||
// 速率限制
|
||
RateLimit_Enable bool `comment:"是否开启速率限制"`
|
||
RateLimit_Global int `comment:"全局速率限制,单位秒"`
|
||
RateLimit_Single int `comment:"单IP速率限制,单位秒"`
|
||
// 黑白名单
|
||
BanList_Mode string `comment:"名单模式 0: off(关闭), 1: white(白名单), 2: black(黑名单)"`
|
||
BanList_White []string `comment:"host白名单"`
|
||
BanList_Black []string `comment:"host黑名单"`
|
||
}
|
||
Conf_Source struct {
|
||
Mode string `comment:"音乐来源 0: off(关闭 仅本地), 1: builtin(内置), 2: custom(登录账号 暂不支持)"`
|
||
// 伪装IP
|
||
FakeIP_Mode string `comment:"伪装IP模式 0: off(关闭), 1: req(传入值), 2: val(静态)"`
|
||
FakeIP_Value string `comment:"静态伪装IP"`
|
||
// 代理
|
||
Proxy_Enable bool `comment:"使用代理"`
|
||
Proxy_Address string `comment:"代理地址 (支持http, socks)"`
|
||
// 平台账号
|
||
// ...(待实现)
|
||
} // `comment:""`
|
||
Conf_Script struct {
|
||
Ver string `comment:"自定义脚本版本" json:"ver"`
|
||
Log string `comment:"更新日志" json:"log"`
|
||
Url string `comment:"脚本下载地址 (public目录内文件名)" json:"url"`
|
||
Force bool `comment:"强制推送更新" json:"force"`
|
||
}
|
||
Conf_Cache struct {
|
||
Mode string `comment:"缓存模式 0: off(关闭), 1: local(本地), 2: cloudreve(云盘 未完善)"`
|
||
LinkMode string `comment:"外链样式 1: static(永久链), 2: dynamic(临时链)"`
|
||
// 本地
|
||
Local_Path string `comment:"本地缓存保存路径"`
|
||
Local_Bind string `comment:"本地缓存外部访问地址"`
|
||
// 云盘
|
||
Cloud_Site string `comment:"Cloudreve站点地址"`
|
||
Cloud_User string `comment:"Cloudreve用户名"`
|
||
Cloud_Pass string `comment:"Cloudreve密码"`
|
||
Cloud_Sess string `comment:"Cloudreve会话"`
|
||
Cloud_Path string `comment:"Cloudreve存储路径"`
|
||
}
|
||
Conf struct {
|
||
Main Conf_Main `comment:"程序主配置"`
|
||
Apis Conf_Apis `comment:"接口设置"`
|
||
Auth Conf_Auth `comment:"访问控制"`
|
||
Source Conf_Source `comment:"解析源配置"`
|
||
Script Conf_Script `comment:"自定义脚本更新"` // ini:",omitempty"
|
||
Cache Conf_Cache `comment:"音乐缓存设置"`
|
||
}
|
||
)
|
||
|
||
var (
|
||
// 默认配置
|
||
defCfg = Conf{
|
||
Main: Conf_Main{
|
||
Debug: false,
|
||
Listen: `0.0.0.0:1011`,
|
||
Gzip: false,
|
||
LogPath: `/data/logfile.log`,
|
||
Print: true,
|
||
SysLev: false,
|
||
},
|
||
Apis: Conf_Apis{
|
||
// BindAddr: `http://192.168.10.22:1011/`,
|
||
},
|
||
Auth: Conf_Auth{
|
||
ApiKey_Enable: true,
|
||
RateLimit_Enable: false,
|
||
RateLimit_Global: 1,
|
||
RateLimit_Single: 5,
|
||
BanList_Mode: `off`,
|
||
BanList_White: []string{`127.0.0.1`},
|
||
},
|
||
Source: Conf_Source{
|
||
Mode: `builtin`,
|
||
FakeIP_Mode: `0`,
|
||
FakeIP_Value: `192.168.10.2`,
|
||
Proxy_Enable: false,
|
||
Proxy_Address: `{protocol}://({user}:{password})@{address}:{port}`,
|
||
},
|
||
Script: Conf_Script{
|
||
Log: `发布更新 (请删除旧源后重新导入):进行了部分优化,修复了部分Bug`, // 更新日志
|
||
|
||
Ver: `1.0.3`, // 自定义脚本版本
|
||
Url: `lx-custom-source.js`, // 脚本下载地址
|
||
Force: true, // 强制推送更新
|
||
},
|
||
Cache: Conf_Cache{
|
||
Mode: `local`, // 缓存模式
|
||
LinkMode: `1`,
|
||
Local_Path: `data/cache`,
|
||
Local_Bind: `http://127.0.0.1:1011/`,
|
||
Cloud_Site: `https://cloudreveplus-demo.onrender.com/`,
|
||
Cloud_User: `admin@cloudreve.org`,
|
||
Cloud_Pass: `CloudrevePlusDemo`,
|
||
Cloud_Sess: ``,
|
||
Cloud_Path: `/Lx-Source/cache`,
|
||
},
|
||
}
|
||
Config = defCfg
|
||
// 通用对象
|
||
Loger = logs.NewLogger(`LX-SOURCE`)
|
||
Cfg, _ = conf.New(&Config, &conf.Confg{
|
||
AutoFormat: true,
|
||
UseBuf: true,
|
||
UnPretty: true,
|
||
Loger: Loger.NewGroup(`Config`),
|
||
})
|
||
Defer = new(ztool.Err_DeferList)
|
||
Cache = memo.NewMemoStoreConf(Loger, 300) // 内存缓存 默认每5分钟进行一次GC //memo.NewMemoStore()
|
||
)
|
||
|
||
// func init() {
|
||
|
||
// }
|