2018-10-16 17:16:58 +00:00
|
|
|
package main
|
|
|
|
|
2018-10-16 20:06:46 +00:00
|
|
|
import (
|
|
|
|
"flag"
|
|
|
|
"log"
|
2018-11-14 03:51:03 +00:00
|
|
|
|
2018-11-15 05:34:24 +00:00
|
|
|
"git.linuxrocker.com/mattburchett/Housekeeper/pkg/communicator"
|
2018-11-14 03:51:03 +00:00
|
|
|
"git.linuxrocker.com/mattburchett/Housekeeper/pkg/config"
|
2018-11-15 05:34:24 +00:00
|
|
|
"git.linuxrocker.com/mattburchett/Housekeeper/pkg/eraser"
|
2018-11-14 03:51:03 +00:00
|
|
|
"git.linuxrocker.com/mattburchett/Housekeeper/pkg/locator"
|
2018-10-16 20:06:46 +00:00
|
|
|
)
|
|
|
|
|
2018-10-17 17:21:16 +00:00
|
|
|
func main() {
|
2018-11-14 03:51:03 +00:00
|
|
|
var c string
|
2018-10-17 17:21:16 +00:00
|
|
|
var days int
|
2018-11-14 03:51:03 +00:00
|
|
|
var sectionID int
|
2018-11-15 05:34:24 +00:00
|
|
|
var check bool
|
|
|
|
var delete bool
|
2018-11-14 03:51:03 +00:00
|
|
|
|
2018-11-15 05:46:16 +00:00
|
|
|
flag.StringVar(&c, "config", "", "Configuration to load")
|
2018-11-15 05:39:41 +00:00
|
|
|
flag.IntVar(&days, "days", 0, "How many days of inactivity to look for on Plex.")
|
|
|
|
flag.IntVar(§ionID, "sectionid", 0, "Plex Section ID")
|
|
|
|
flag.BoolVar(&check, "check", true, "Perform only a check. This will send the message out to Telegram with what can be removed. Does not delete.")
|
2018-11-15 05:34:24 +00:00
|
|
|
flag.BoolVar(&delete, "delete", false, "Perform the delete task.")
|
2018-10-17 17:21:16 +00:00
|
|
|
flag.Parse()
|
2018-11-15 05:54:59 +00:00
|
|
|
|
|
|
|
// Stop the app if they're missing required flags.
|
2018-11-14 03:51:03 +00:00
|
|
|
if c == "" {
|
|
|
|
log.Fatal("You need to specify a configuration file.")
|
|
|
|
}
|
|
|
|
if sectionID == 0 {
|
|
|
|
log.Fatal("You need to specify a section ID for Plex.")
|
|
|
|
}
|
2018-10-17 17:21:16 +00:00
|
|
|
|
2018-11-14 03:51:03 +00:00
|
|
|
cfg, err := config.GetConfig(c)
|
2018-10-17 19:40:19 +00:00
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
2018-11-15 05:34:24 +00:00
|
|
|
|
2018-11-20 18:20:20 +00:00
|
|
|
libraryType := locator.GetLibraryType(cfg, sectionID)
|
|
|
|
|
2018-11-15 05:34:24 +00:00
|
|
|
ids, titles := locator.GetTitles(cfg, sectionID, days)
|
|
|
|
|
|
|
|
if check {
|
|
|
|
err = communicator.TelegramPost(cfg, titles)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if delete {
|
2018-11-20 19:39:15 +00:00
|
|
|
if libraryType == "movie" {
|
2018-11-20 19:50:47 +00:00
|
|
|
files := eraser.LookupMovieFileLocation(cfg, ids)
|
2018-11-20 23:07:22 +00:00
|
|
|
err = eraser.DeleteFiles(delete, files)
|
2018-11-20 19:39:15 +00:00
|
|
|
if err != nil {
|
|
|
|
log.Println(err)
|
|
|
|
}
|
2018-11-20 19:50:47 +00:00
|
|
|
} else if libraryType == "show" {
|
2018-11-20 23:07:22 +00:00
|
|
|
files := eraser.LookupTVFileLocation(cfg, ids)
|
2018-11-21 00:43:18 +00:00
|
|
|
sonarrIDs := locator.GetSonarrIDs(cfg, titles)
|
|
|
|
eraser.DeleteSeriesFromSonarr(cfg, sonarrIDs)
|
2018-11-20 23:07:22 +00:00
|
|
|
err = eraser.DeleteFiles(delete, files)
|
|
|
|
if err != nil {
|
|
|
|
log.Println(err)
|
|
|
|
}
|
2018-11-15 05:34:24 +00:00
|
|
|
}
|
|
|
|
}
|
2018-10-16 17:16:58 +00:00
|
|
|
}
|