diff --git a/Readme.md b/Readme.md index 0261ef5..cf16aa7 100644 --- a/Readme.md +++ b/Readme.md @@ -14,7 +14,7 @@ -->
Current Version -2021.08.25
+Current Version -2021.10.01
A self-hosted podcast manager to download episodes as soon as they become live diff --git a/client/episodes.html b/client/episodes.html index 92f029c..ee7bca4 100644 --- a/client/episodes.html +++ b/client/episodes.html @@ -67,7 +67,7 @@ class="u-full-width" src="/podcastitems/{{.ID}}/image" alt="{{ .Title }}" - lazy="lazy" + loading="lazy" />
Current Version | -2021.08.25 | +2021.10.01 |
Website | diff --git a/controllers/podcast.go b/controllers/podcast.go index 5fb7282..e0688c3 100644 --- a/controllers/podcast.go +++ b/controllers/podcast.go @@ -487,6 +487,28 @@ func createRss(items []db.PodcastItem, title, description string, c *gin.Context } } +func GetRssForPodcastById(c *gin.Context) { + var searchByIdQuery SearchByIdQuery + if c.ShouldBindUri(&searchByIdQuery) == nil { + var podcast db.Podcast + err:=db.GetPodcastById(searchByIdQuery.Id,&podcast) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request"}) + } + var podIds []string + podIds = append(podIds, searchByIdQuery.Id) + items := *service.GetAllPodcastItemsByPodcastIds(podIds) + + description := podcast.Summary + title := podcast.Title + + if err == nil { + c.XML(200, createRss(items, title, description, c)) + } + } else { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request"}) + } +} func GetRssForTagById(c *gin.Context) { var searchByIdQuery SearchByIdQuery if c.ShouldBindUri(&searchByIdQuery) == nil { diff --git a/main.go b/main.go index 0fcdbe0..426c820 100644 --- a/main.go +++ b/main.go @@ -159,6 +159,7 @@ func main() { router.DELETE("/podcasts/:id/podcast", controllers.DeleteOnlyPodcastById) router.GET("/podcasts/:id/pause", controllers.PausePodcastById) router.GET("/podcasts/:id/unpause", controllers.UnpausePodcastById) + router.GET("/podcasts/:id/rss", controllers.GetRssForPodcastById) router.GET("/podcastitems", controllers.GetAllPodcastItems) router.GET("/podcastitems/:id", controllers.GetPodcastItemById) diff --git a/service/fileService.go b/service/fileService.go index cd63bd9..1a91839 100644 --- a/service/fileService.go +++ b/service/fileService.go @@ -377,6 +377,10 @@ func createConfigFolderIfNotExists(folder string) string { return createFolder(folder, dataPath) } +func deletePodcastFolder(folder string) error { + return os.RemoveAll(createDataFolderIfNotExists(folder)) +} + func getFileName(link string, title string, defaultExtension string) string { fileUrl, err := url.Parse(link) checkError(err) diff --git a/service/podcastService.go b/service/podcastService.go index d87b3c0..8efa1fa 100644 --- a/service/podcastService.go +++ b/service/podcastService.go @@ -676,6 +676,12 @@ func DeletePodcast(id string, deleteFiles bool) error { db.DeletePodcastItemById(item.ID) } + + err = deletePodcastFolder(podcast.Title) + if err != nil { + return err + } + err = db.DeletePodcastById(id) if err != nil { return err