feat: nfo support frontend

This commit is contained in:
Simon Ding
2024-08-13 10:17:46 +08:00
parent 19c6308a81
commit d3ad80380f
3 changed files with 24 additions and 1 deletions

View File

@@ -19,6 +19,7 @@ type GeneralSettings struct {
LogLevel string `json:"log_level"` LogLevel string `json:"log_level"`
Proxy string `json:"proxy"` Proxy string `json:"proxy"`
EnablePlexmatch bool `json:"enable_plexmatch"` EnablePlexmatch bool `json:"enable_plexmatch"`
EnableNfo bool `json:"enable_nfo"`
AllowQiangban bool `json:"allow_qiangban"` AllowQiangban bool `json:"allow_qiangban"`
} }
@@ -62,6 +63,12 @@ func (s *Server) SetSetting(c *gin.Context) (interface{}, error) {
s.db.SetSetting(db.SettingAllowQiangban, "false") s.db.SetSetting(db.SettingAllowQiangban, "false")
} }
if in.EnableNfo {
s.db.SetSetting(db.SettingNfoSupportEnabled, "true")
} else {
s.db.SetSetting(db.SettingNfoSupportEnabled, "false")
}
return nil, nil return nil, nil
} }
@@ -71,6 +78,7 @@ func (s *Server) GetSetting(c *gin.Context) (interface{}, error) {
logLevel := s.db.GetSetting(db.SettingLogLevel) logLevel := s.db.GetSetting(db.SettingLogLevel)
plexmatchEnabled := s.db.GetSetting(db.SettingPlexMatchEnabled) plexmatchEnabled := s.db.GetSetting(db.SettingPlexMatchEnabled)
allowQiangban := s.db.GetSetting(db.SettingAllowQiangban) allowQiangban := s.db.GetSetting(db.SettingAllowQiangban)
enableNfo := s.db.GetSetting(db.SettingNfoSupportEnabled)
return &GeneralSettings{ return &GeneralSettings{
TmdbApiKey: tmdb, TmdbApiKey: tmdb,
DownloadDir: downloadDir, DownloadDir: downloadDir,
@@ -78,6 +86,7 @@ func (s *Server) GetSetting(c *gin.Context) (interface{}, error) {
Proxy: s.db.GetSetting(db.SettingProxy), Proxy: s.db.GetSetting(db.SettingProxy),
EnablePlexmatch: plexmatchEnabled == "true", EnablePlexmatch: plexmatchEnabled == "true",
AllowQiangban: allowQiangban == "true", AllowQiangban: allowQiangban == "true",
EnableNfo: enableNfo == "true",
}, nil }, nil
} }

View File

@@ -53,6 +53,7 @@ class GeneralSetting {
String? proxy; String? proxy;
bool? enablePlexmatch; bool? enablePlexmatch;
bool? allowQiangban; bool? allowQiangban;
bool? enableNfo;
GeneralSetting( GeneralSetting(
{this.tmdbApiKey, {this.tmdbApiKey,
@@ -60,6 +61,7 @@ class GeneralSetting {
this.logLevel, this.logLevel,
this.proxy, this.proxy,
this.enablePlexmatch, this.enablePlexmatch,
this.enableNfo,
this.allowQiangban}); this.allowQiangban});
factory GeneralSetting.fromJson(Map<String, dynamic> json) { factory GeneralSetting.fromJson(Map<String, dynamic> json) {
@@ -69,6 +71,7 @@ class GeneralSetting {
logLevel: json["log_level"], logLevel: json["log_level"],
proxy: json["proxy"], proxy: json["proxy"],
allowQiangban: json["allow_qiangban"] ?? false, allowQiangban: json["allow_qiangban"] ?? false,
enableNfo: json["enable_nfo"] ?? false,
enablePlexmatch: json["enable_plexmatch"] ?? false); enablePlexmatch: json["enable_plexmatch"] ?? false);
} }
@@ -80,6 +83,7 @@ class GeneralSetting {
data["proxy"] = proxy; data["proxy"] = proxy;
data["enable_plexmatch"] = enablePlexmatch; data["enable_plexmatch"] = enablePlexmatch;
data["allow_qiangban"] = allowQiangban; data["allow_qiangban"] = allowQiangban;
data["enable_nfo"] = enableNfo;
return data; return data;
} }
} }

View File

@@ -36,6 +36,7 @@ class _GeneralState extends ConsumerState<GeneralSettings> {
"proxy": v.proxy, "proxy": v.proxy,
"enable_plexmatch": v.enablePlexmatch, "enable_plexmatch": v.enablePlexmatch,
"allow_qiangban": v.allowQiangban, "allow_qiangban": v.allowQiangban,
"enable_nfo": v.enableNfo,
}, },
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@@ -92,7 +93,15 @@ class _GeneralState extends ConsumerState<GeneralSettings> {
width: 300, width: 300,
child: FormBuilderSwitch( child: FormBuilderSwitch(
decoration: decoration:
const InputDecoration(icon: Icon(Icons.phone_iphone)), const InputDecoration(icon: Icon(Icons.library_books), helperText: "emby/kodi等软件刮削需要"),
name: "enable_nfo",
title: const Text("nfo 文件支持")),
),
SizedBox(
width: 300,
child: FormBuilderSwitch(
decoration:
const InputDecoration(icon: Icon(Icons.remove_circle)),
name: "allow_qiangban", name: "allow_qiangban",
title: const Text("是否下载枪版资源")), title: const Text("是否下载枪版资源")),
), ),
@@ -115,6 +124,7 @@ class _GeneralState extends ConsumerState<GeneralSettings> {
logLevel: values["log_level"], logLevel: values["log_level"],
proxy: values["proxy"], proxy: values["proxy"],
allowQiangban: values["allow_qiangban"], allowQiangban: values["allow_qiangban"],
enableNfo: values["enable_nfo"],
enablePlexmatch: enablePlexmatch:
values["enable_plexmatch"])) values["enable_plexmatch"]))
.then((v) => showSnakeBar("更新成功")); .then((v) => showSnakeBar("更新成功"));