* check for series .nfo 2 folder levels deep

* update artwork.* scripts and generate tvdb links in series .nfo for future lookup
This commit is contained in:
Reinhard Pointner 2013-04-25 19:23:22 +00:00
parent 441f2fd2cf
commit 7cf2177f79
7 changed files with 21 additions and 6 deletions

View File

@ -32,6 +32,7 @@ import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
import java.util.Set; import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet; import java.util.TreeSet;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -870,8 +871,16 @@ public class MediaDetection {
public static Set<SearchResult> lookupSeriesNameByInfoFile(Collection<File> files, Locale language) throws Exception { public static Set<SearchResult> lookupSeriesNameByInfoFile(Collection<File> files, Locale language) throws Exception {
Set<SearchResult> names = new LinkedHashSet<SearchResult>(); Set<SearchResult> names = new LinkedHashSet<SearchResult>();
SortedSet<File> folders = new TreeSet<File>(reverseOrder());
for (File f : files) {
for (int i = 0; i < 2 && f.getParentFile() != null; i++) {
f = f.getParentFile();
folders.add(f);
}
}
// search for id in sibling nfo files // search for id in sibling nfo files
for (File folder : mapByFolder(files).keySet()) { for (File folder : folders) {
if (!folder.exists()) if (!folder.exists())
continue; continue;

View File

@ -164,6 +164,7 @@ LIMITED
LMAO LMAO
lol lol
Los.Sustitutos Los.Sustitutos
M.HD
mkvonly mkvonly
mpg$ mpg$
MultiSub MultiSub

View File

@ -875,6 +875,7 @@ LeON
LEVERAGE LEVERAGE
LEViTY LEViTY
LGLuX LGLuX
LiFE
lilwoodenboy lilwoodenboy
LiMiTED LiMiTED
LiNE LiNE

View File

@ -5,3 +5,4 @@ hoc House of Cards
M.A.S.H M*A*S*H M.A.S.H M*A*S*H
MASH M*A*S*H MASH M*A*S*H
NCIS.LA NCIS: Los Angeles NCIS.LA NCIS: Los Angeles
tvs.got Game of Thrones

View File

@ -1,4 +1,5 @@
// filebot -script fn:artwork.tmdb /path/to/movies/ // filebot -script fn:artwork.tmdb /path/to/movies/
def override = _args.conflict == 'override'
/* /*
* Fetch movie artwork. The movie is determined using the parent folders name. * Fetch movie artwork. The movie is determined using the parent folders name.
@ -10,7 +11,7 @@ include('lib/htpc')
args.eachMediaFolder{ dir -> args.eachMediaFolder{ dir ->
// fetch only missing artwork by default // fetch only missing artwork by default
if (_args.conflict == 'skip' && dir.hasFile{it.name == 'movie.nfo'} && dir.hasFile{it.name == 'poster.jpg'} && dir.hasFile{it.name == 'fanart.jpg'}) { if (!override && dir.hasFile{it.name == 'movie.nfo'} && dir.hasFile{it.name == 'poster.jpg'} && dir.hasFile{it.name == 'fanart.jpg'}) {
println "Skipping $dir" println "Skipping $dir"
return return
} }
@ -45,7 +46,7 @@ args.eachMediaFolder{ dir ->
println "$dir => $movie" println "$dir => $movie"
try { try {
fetchMovieArtworkAndNfo(dir, movie, dir.getFiles{ it.isVideo() }.sort{ it.length() }.reverse().findResult{ it }, true, true) fetchMovieArtworkAndNfo(dir, movie, dir.getFiles{ it.isVideo() }.sort{ it.length() }.reverse().findResult{ it }, true, override)
} catch(e) { } catch(e) {
println "${e.class.simpleName}: ${e.message}" println "${e.class.simpleName}: ${e.message}"
} }

View File

@ -1,4 +1,5 @@
// filebot -script fn:artwork.tvdb /path/to/media/ // filebot -script fn:artwork.tvdb /path/to/media/
def override = _args.conflict == 'override'
/* /*
* Fetch series and season banners for all tv shows. Series name is auto-detected if possible or the folder name is used. * Fetch series and season banners for all tv shows. Series name is auto-detected if possible or the folder name is used.
@ -10,7 +11,7 @@ include('lib/htpc')
args.eachMediaFolder{ dir -> args.eachMediaFolder{ dir ->
// fetch only missing artwork by default // fetch only missing artwork by default
if (_args.conflict == 'skip' && [dir, dir.dir].find{ it.hasFile{it.name == 'banner.jpg'} }) { if (!override && dir.hasFile{it.name == 'banner.jpg'}) {
println "Skipping $dir" println "Skipping $dir"
return return
} }
@ -47,5 +48,5 @@ args.eachMediaFolder{ dir ->
def season = sxe && sxe.season > 0 ? sxe.season : 1 def season = sxe && sxe.season > 0 ? sxe.season : 1
println "$dir => $series" println "$dir => $series"
fetchSeriesArtworkAndNfo(seriesDir, dir, series, season, true) fetchSeriesArtworkAndNfo(seriesDir, dir, series, season, override)
} }

View File

@ -98,6 +98,7 @@ def fetchSeriesNfo(outputFile, seriesInfo, override, locale) {
name(n) name(n)
} }
} }
tvdb(id:i.id, "http://www.thetvdb.com/?tab=series&id=${i.id}")
} }
} }
.saveAs(outputFile) .saveAs(outputFile)