From 8052c400cdba4306ca60f07396c7aae08646968e Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Sun, 16 Dec 2012 13:26:39 +0000 Subject: [PATCH] * added support for batch downloading all movie backdrops --- website/data/release-groups.txt | 2 ++ website/scripts/artwork.tmdb.groovy | 2 +- website/scripts/lib/htpc.groovy | 21 ++++++++++++++++++++- website/scripts/utorrent-postprocess.groovy | 3 ++- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/website/data/release-groups.txt b/website/data/release-groups.txt index 1473fada..f0402a55 100644 --- a/website/data/release-groups.txt +++ b/website/data/release-groups.txt @@ -1482,6 +1482,7 @@ UNTOUCHED UNVEiL USELESS UTOPiA +UTW-Mazui UVall VaAr3 VALiOMEDiA @@ -1527,6 +1528,7 @@ WANKAZ WASABi WASTE WastedTime +Wasurenai WAT WATBATH WATCHABLE diff --git a/website/scripts/artwork.tmdb.groovy b/website/scripts/artwork.tmdb.groovy index 070f7d78..9c19237f 100644 --- a/website/scripts/artwork.tmdb.groovy +++ b/website/scripts/artwork.tmdb.groovy @@ -38,7 +38,7 @@ args.eachMediaFolder { dir -> println "$dir => $movie" try { - fetchMovieArtworkAndNfo(dir, movie, dir.getFiles{ it.isVideo() }.sort{ it.length() }.reverse().findResult{ it } ) + fetchMovieArtworkAndNfo(dir, movie, dir.getFiles{ it.isVideo() }.sort{ it.length() }.reverse().findResult{ it }, true) } catch(e) { println "${e.class.simpleName}: ${e.message}" } diff --git a/website/scripts/lib/htpc.groovy b/website/scripts/lib/htpc.groovy index 4dc20c63..ed3dc627 100644 --- a/website/scripts/lib/htpc.groovy +++ b/website/scripts/lib/htpc.groovy @@ -130,6 +130,21 @@ def fetchMovieArtwork(outputFile, movieInfo, category, language) { return selection.url.saveAs(outputFile) } +def fetchAllMovieArtwork(outputFolder, movieInfo, category, language) { + // select and fetch artwork + def artwork = TheMovieDB.getArtwork(movieInfo.id as String) + def selection = [language, 'en', null].findResults{ l -> artwork.findAll{ (l == it.language || l == null) && it.category == category } }.flatten().unique() + if (selection == null) { + println "Artwork not found: $outputFolder" + return null + } + selection.eachWithIndex{ s, i -> + def outputFile = new File(outputFolder, "$category-${(i+1).pad(2)}.jpg") + println "Fetching $outputFile => $s" + s.url.saveAs(outputFile) + } +} + def fetchMovieFanart(outputFile, movieInfo, type, diskType, locale) { def fanart = [locale, null].findResult{ lang -> FanartTV.getMovieArtwork(movieInfo.id).find{ type == it.type && (diskType == null || diskType == it.diskType) && (lang == null || lang == it.language) }} if (fanart == null) { @@ -209,7 +224,7 @@ def fetchMovieNfo(outputFile, movieInfo, movieFile) { .saveAs(outputFile) } -def fetchMovieArtworkAndNfo(movieDir, movie, movieFile = null, locale = _args.locale) { +def fetchMovieArtworkAndNfo(movieDir, movie, movieFile = null, fetchAll = false, locale = _args.locale) { _guarded { def movieInfo = TheMovieDB.getMovieInfo(movie, locale) @@ -223,5 +238,9 @@ def fetchMovieArtworkAndNfo(movieDir, movie, movieFile = null, locale = _args.lo fetchMovieFanart(movieDir['clearart.png'], movieInfo, 'movieart', null, locale) fetchMovieFanart(movieDir['logo.png'], movieInfo, 'movielogo', null, locale) ['bluray', 'dvd', null].findResult { diskType -> fetchMovieFanart(movieDir['disc.png'], movieInfo, 'moviedisc', diskType, locale) } + + if (fetchAll) { + fetchAllMovieArtwork(movieDir['backdrops'], movieInfo, 'backdrops', locale.language) + } } } diff --git a/website/scripts/utorrent-postprocess.groovy b/website/scripts/utorrent-postprocess.groovy index 6eda1f64..e2aae52b 100644 --- a/website/scripts/utorrent-postprocess.groovy +++ b/website/scripts/utorrent-postprocess.groovy @@ -14,6 +14,7 @@ if (tryQuietly{ ut_state != ut_state_allow }) { // enable/disable features as specified via --def parameters def subtitles = tryQuietly{ subtitles.toBoolean() } def artwork = tryQuietly{ artwork.toBoolean() } +def backdrops = tryQuietly{ backdrops.toBoolean() } // array of xbmc/plex hosts def xbmc = tryQuietly{ xbmc.split(/[ ,|]+/) } @@ -176,7 +177,7 @@ groups.each{ group, files -> if (dest && artwork) { dest.mapByFolder().each{ dir, fs -> println "Fetching artwork for $dir from TheMovieDB" - fetchMovieArtworkAndNfo(dir, group.mov, fs.findAll{ it.isVideo() }.sort{ it.length() }.reverse().findResult{ it }) + fetchMovieArtworkAndNfo(dir, group.mov, fs.findAll{ it.isVideo() }.sort{ it.length() }.reverse().findResult{ it }, backdrops) } } if (dest == null && failOnError) {