Forráskód Böngészése

保存进度

Signed-off-by: allan716 <[email protected]>
allan716 3 éve
szülő
commit
5a8b2822be

+ 3 - 1
internal/dao/init.go

@@ -4,6 +4,7 @@ import (
 	"errors"
 	"fmt"
 	"github.com/allanpk716/ChineseSubFinder/internal/models"
+	"github.com/allanpk716/ChineseSubFinder/internal/models/settings"
 	"github.com/allanpk716/ChineseSubFinder/internal/pkg/log_helper"
 	"github.com/allanpk716/ChineseSubFinder/internal/pkg/my_util"
 	"github.com/allanpk716/ChineseSubFinder/internal/pkg/sqlite"
@@ -72,7 +73,8 @@ you need implement getDbName() in file: internal/dao/init.go `))
 	}
 	// 迁移 schema
 	err = db.AutoMigrate(&models.HotFix{}, &models.SubFormatRec{},
-		&models.UserInfo{})
+		&models.UserInfo{},
+		&settings.Settings{})
 	if err != nil {
 		return errors.New(fmt.Sprintf("db AutoMigrate error, %s", err.Error()))
 	}

+ 1 - 0
internal/dao/settings.go

@@ -0,0 +1 @@
+package dao

+ 0 - 14
internal/models/advanced_settings.go

@@ -1,14 +0,0 @@
-package models
-
-import "gorm.io/gorm"
-
-type AdvancedSettings struct {
-	gorm.Model
-	DebugMode                  bool     // 是否开启调试模式,这个是写入一个特殊的文件来开启日志的 Debug 输出
-	SaveFullSeasonTmpSubtitles bool     // 保存整季的缓存字幕
-	SubTypePriority            int      // 字幕下载的优先级,0 是自动,1 是 srt 优先,2 是 ass/ssa 优先
-	SubNameFormatter           int      // 字幕命名格式(默认不填写或者超出范围,则为 emby 格式),0,emby 支持的的格式(AAA.chinese(简英,subhd).ass or AAA.chinese(简英,xunlei).default.ass),1常规格式(兼容性更好,AAA.zh.ass or AAA.zh.default.ass)
-	SaveMultiSub               bool     // 保存多个网站的 Top 1 字幕
-	CustomVideoExts            []string // 自定义视频扩展名,是在原有基础上新增。
-	FixTimeLine                bool     // 开启校正字幕时间轴,默认 false
-}

+ 0 - 14
internal/models/common_settings.go

@@ -1,14 +0,0 @@
-package models
-
-import "gorm.io/gorm"
-
-type CommonSettings struct {
-	gorm.Model
-	UseHttpProxy     bool     // 是否使用 http 代理
-	HttpProxyAddress string   // Http 代理地址,内网
-	ScanInterval     string   // 一轮字幕扫描的间隔
-	Threads          int      // 同时扫描的并发数
-	RunScanAtStartUp bool     // 完成引导设置后,下次运行程序就开始扫描
-	MoviePaths       []string // 电影的目录
-	SeriesPaths      []string // 连续剧的目录
-}

+ 0 - 8
internal/models/developer_settings.go

@@ -1,8 +0,0 @@
-package models
-
-import "gorm.io/gorm"
-
-type DeveloperSettings struct {
-	gorm.Model
-	BarkServerUrl string // Bark 服务器的地址
-}

+ 0 - 14
internal/models/emby_settings.go

@@ -1,14 +0,0 @@
-package models
-
-import "gorm.io/gorm"
-
-type EmbySettings struct {
-	gorm.Model
-	Enable                 bool              // 是否启用
-	AddressUrl             string            // 内网服务器的 url
-	APIKey                 string            // API key
-	MaxRequestVideoNumber  int               // 最大请求获取视频的数量
-	SkipWatched            bool              // 是否跳过已经观看的
-	MovieDirectoryMapping  map[string]string // 电影目录的映射,一旦 common setting 的目录修改,需要提示用户确认映射
-	SeriesDirectoryMapping map[string]string // 连续剧目录的映射,一旦 common setting 的目录修改,需要提示用户确认映射
-}

+ 0 - 7
internal/models/settings.go

@@ -1,7 +0,0 @@
-package models
-
-import "gorm.io/gorm"
-
-type Settings struct {
-	gorm.Model
-}

+ 11 - 0
internal/models/settings/advanced_settings.go

@@ -0,0 +1,11 @@
+package settings
+
+type AdvancedSettings struct {
+	DebugMode                  bool     `json:"debug_mode"`                            // 是否开启调试模式,这个是写入一个特殊的文件来开启日志的 Debug 输出
+	SaveFullSeasonTmpSubtitles bool     `json:"save_full_season_tmp_subtitles"`        // 保存整季的缓存字幕
+	SubTypePriority            int      `json:"sub_type_priority" gorm:"default:'0'"`  // 字幕下载的优先级,0 是自动,1 是 srt 优先,2 是 ass/ssa 优先
+	SubNameFormatter           int      `json:"sub_name_formatter" gorm:"default:'0'"` // 字幕命名格式(默认不填写或者超出范围,则为 emby 格式),0,emby 支持的的格式(AAA.chinese(简英,subhd).ass or AAA.chinese(简英,xunlei).default.ass),1常规格式(兼容性更好,AAA.zh.ass or AAA.zh.default.ass)
+	SaveMultiSub               bool     `json:"save_multi_sub"`                        // 保存多个网站的 Top 1 字幕
+	CustomVideoExts            []string `json:"custom_video_exts"`                     // 自定义视频扩展名,是在原有基础上新增。
+	FixTimeLine                bool     `json:"fix_time_line"`                         // 开启校正字幕时间轴,默认 false
+}

+ 11 - 0
internal/models/settings/common_settings.go

@@ -0,0 +1,11 @@
+package settings
+
+type CommonSettings struct {
+	UseHttpProxy     bool     `json:"use_http_proxy"`                    // 是否使用 http 代理
+	HttpProxyAddress string   `json:"http_proxy_address"`                // Http 代理地址,内网
+	ScanInterval     string   `json:"scan_interval" gorm:"default:'6h'"` // 一轮字幕扫描的间隔
+	Threads          int      `json:"threads" gorm:"default:'1'"`        // 同时扫描的并发数
+	RunScanAtStartUp bool     `json:"run_scan_at_start_up"`              // 完成引导设置后,下次运行程序就开始扫描
+	MoviePaths       []string `json:"movie_paths"`                       // 电影的目录
+	SeriesPaths      []string `json:"series_paths"`                      // 连续剧的目录
+}

+ 5 - 0
internal/models/settings/developer_settings.go

@@ -0,0 +1,5 @@
+package settings
+
+type DeveloperSettings struct {
+	BarkServerUrl string `json:"barkServerUrl"` // Bark 服务器的地址
+}

+ 11 - 0
internal/models/settings/emby_settings.go

@@ -0,0 +1,11 @@
+package settings
+
+type EmbySettings struct {
+	Enable                 bool              `json:"enable"`                                      // 是否启用
+	AddressUrl             string            `json:"addressUrl"`                                  // 内网服务器的 url
+	APIKey                 string            `json:"APIKey"`                                      // API key
+	MaxRequestVideoNumber  int               `json:"maxRequestVideoNumber"  gorm:"default:'500'"` // 最大请求获取视频的数量
+	SkipWatched            bool              `json:"skipWatched"`                                 // 是否跳过已经观看的
+	MovieDirectoryMapping  map[string]string `json:"movieDirectoryMapping"`                       // 电影目录的映射,一旦 common setting 的目录修改,需要提示用户确认映射
+	SeriesDirectoryMapping map[string]string `json:"seriesDirectoryMapping"`                      // 连续剧目录的映射,一旦 common setting 的目录修改,需要提示用户确认映射
+}

+ 11 - 0
internal/models/settings/settings.go

@@ -0,0 +1,11 @@
+package settings
+
+import "gorm.io/gorm"
+
+type Settings struct {
+	gorm.Model
+	CommonSettings    CommonSettings    `gorm:"embedded;embeddedPrefix:common_"`
+	AdvancedSettings  AdvancedSettings  `gorm:"embedded;embeddedPrefix:advanced_"`
+	EmbySettings      EmbySettings      `gorm:"embedded;embeddedPrefix:emby_"`
+	DeveloperSettings DeveloperSettings `gorm:"embedded;embeddedPrefix:developer_"`
+}