info.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package dao
  2. import (
  3. "github.com/ChineseSubFinder/ChineseSubFinder/internal/models"
  4. "github.com/ChineseSubFinder/ChineseSubFinder/pkg"
  5. "github.com/ChineseSubFinder/ChineseSubFinder/pkg/settings"
  6. )
  7. func UpdateInfo(version string, settings *settings.Settings) *models.Info {
  8. var infos []models.Info
  9. GetDb().Find(&infos)
  10. mediaServerName := ""
  11. if settings.EmbySettings.Enable == true {
  12. mediaServerName = "Emby"
  13. } else {
  14. mediaServerName = "None"
  15. }
  16. if len(infos) == 0 {
  17. // 不存在则新增
  18. saveInfo := &models.Info{
  19. Id: pkg.RandStringBytesMaskImprSrcSB(64),
  20. MediaServer: mediaServerName,
  21. Version: version,
  22. EnableShare: settings.ExperimentalFunction.ShareSubSettings.ShareSubEnabled,
  23. EnableApiKey: settings.ExperimentalFunction.ApiKeySettings.Enabled,
  24. }
  25. GetDb().Save(saveInfo)
  26. return saveInfo
  27. } else {
  28. // 存在则更新
  29. infos[0].Version = version
  30. infos[0].MediaServer = mediaServerName
  31. infos[0].EnableShare = settings.ExperimentalFunction.ShareSubSettings.ShareSubEnabled
  32. infos[0].EnableApiKey = settings.ExperimentalFunction.ApiKeySettings.Enabled
  33. GetDb().Save(&infos[0])
  34. return &infos[0]
  35. }
  36. }