diff --git a/client/settings.html b/client/settings.html
index f6d929f..851190b 100644
--- a/client/settings.html
+++ b/client/settings.html
@@ -93,6 +93,10 @@
Generate NFO files for Podcasts
+
@@ -168,7 +172,8 @@ var app = new Vue({
appendEpisodeNumberToFileName:self.appendEpisodeNumberToFileName,
darkMode:self.darkMode,
downloadEpisodeImages:self.downloadEpisodeImages,
- generateNFOFile:self.generateNFOFile
+ generateNFOFile:self.generateNFOFile,
+ dontDownloadDeletedFromDisk:self.dontDownloadDeletedFromDisk
})
.then(function(response){
Vue.toasted.show('Settings saved successfully.' ,{
@@ -210,7 +215,8 @@ var app = new Vue({
darkMode:{{ .setting.DarkMode }},
originalThemeSetting:{{ .setting.DarkMode }},
downloadEpisodeImages:{{.setting.DownloadEpisodeImages }},
- generateNFOFile:{{.setting.GenerateNFOFile }},
+ generateNFOFile:{{ .setting.GenerateNFOFile }},
+ dontDownloadDeletedFromDisk:{{ .setting.DontDownloadDeletedFromDisk }},
},
})
diff --git a/controllers/pages.go b/controllers/pages.go
index 2d2476d..4bffa41 100644
--- a/controllers/pages.go
+++ b/controllers/pages.go
@@ -29,6 +29,7 @@ type SettingModel struct {
DarkMode bool `form:"darkMode" json:"darkMode" query:"darkMode"`
DownloadEpisodeImages bool `form:"downloadEpisodeImages" json:"downloadEpisodeImages" query:"downloadEpisodeImages"`
GenerateNFOFile bool `form:"generateNFOFile" json:"generateNFOFile" query:"generateNFOFile"`
+ DontDownloadDeletedFromDisk bool `form:"dontDownloadDeletedFromDisk" json:"dontDownloadDeletedFromDisk" query:"dontDownloadDeletedFromDisk"`
}
var searchOptions = map[string]string{
diff --git a/controllers/podcast.go b/controllers/podcast.go
index af04c2d..04713d6 100644
--- a/controllers/podcast.go
+++ b/controllers/podcast.go
@@ -547,7 +547,7 @@ func UpdateSetting(c *gin.Context) {
err = service.UpdateSettings(model.DownloadOnAdd, model.InitialDownloadCount,
model.AutoDownload, model.AppendDateToFileName, model.AppendEpisodeNumberToFileName,
- model.DarkMode, model.DownloadEpisodeImages, model.GenerateNFOFile)
+ model.DarkMode, model.DownloadEpisodeImages, model.GenerateNFOFile, model.DontDownloadDeletedFromDisk)
if err == nil {
c.JSON(200, gin.H{"message": "Success"})
diff --git a/db/podcast.go b/db/podcast.go
index 854d3f5..fa9abdb 100644
--- a/db/podcast.go
+++ b/db/podcast.go
@@ -83,6 +83,7 @@ type Setting struct {
DarkMode bool `gorm:"default:false"`
DownloadEpisodeImages bool `gorm:"default:false"`
GenerateNFOFile bool `gorm:"default:false"`
+ DontDownloadDeletedFromDisk bool `gorm:"default:false"`
}
type Migration struct {
Base
diff --git a/service/podcastService.go b/service/podcastService.go
index f92870e..0ff9ce2 100644
--- a/service/podcastService.go
+++ b/service/podcastService.go
@@ -532,6 +532,7 @@ func DownloadMissingEpisodes() error {
}
func CheckMissingFiles() error {
data, err := db.GetAllPodcastItemsAlreadyDownloaded()
+ setting := db.GetOrCreateSetting()
//fmt.Println("Processing episodes: ", strconv.Itoa(len(*data)))
if err != nil {
@@ -540,7 +541,11 @@ func CheckMissingFiles() error {
for _, item := range *data {
fileExists := FileExists(item.DownloadPath)
if !fileExists {
- SetPodcastItemAsNotDownloaded(item.ID, db.NotDownloaded)
+ if setting.DontDownloadDeletedFromDisk {
+ SetPodcastItemAsNotDownloaded(item.ID, db.Deleted)
+ } else {
+ SetPodcastItemAsNotDownloaded(item.ID, db.NotDownloaded)
+ }
}
}
return nil
@@ -736,7 +741,7 @@ func GetSearchFromPodcastIndex(pod *podcastindex.Podcast) *model.CommonSearchRes
return p
}
-func UpdateSettings(downloadOnAdd bool, initialDownloadCount int, autoDownload bool, appendDateToFileName bool, appendEpisodeNumberToFileName bool, darkMode bool, downloadEpisodeImages bool, generateNFOFile bool) error {
+func UpdateSettings(downloadOnAdd bool, initialDownloadCount int, autoDownload bool, appendDateToFileName bool, appendEpisodeNumberToFileName bool, darkMode bool, downloadEpisodeImages bool, generateNFOFile bool, dontDownloadDeletedFromDisk bool) error {
setting := db.GetOrCreateSetting()
setting.AutoDownload = autoDownload
@@ -747,6 +752,7 @@ func UpdateSettings(downloadOnAdd bool, initialDownloadCount int, autoDownload b
setting.DarkMode = darkMode
setting.DownloadEpisodeImages = downloadEpisodeImages
setting.GenerateNFOFile = generateNFOFile
+ setting.DontDownloadDeletedFromDisk = dontDownloadDeletedFromDisk
return db.UpdateSettings(setting)
}