* 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:
parent
441f2fd2cf
commit
7cf2177f79
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -164,6 +164,7 @@ LIMITED
|
||||||
LMAO
|
LMAO
|
||||||
lol
|
lol
|
||||||
Los.Sustitutos
|
Los.Sustitutos
|
||||||
|
M.HD
|
||||||
mkvonly
|
mkvonly
|
||||||
mpg$
|
mpg$
|
||||||
MultiSub
|
MultiSub
|
||||||
|
|
|
@ -875,6 +875,7 @@ LeON
|
||||||
LEVERAGE
|
LEVERAGE
|
||||||
LEViTY
|
LEViTY
|
||||||
LGLuX
|
LGLuX
|
||||||
|
LiFE
|
||||||
lilwoodenboy
|
lilwoodenboy
|
||||||
LiMiTED
|
LiMiTED
|
||||||
LiNE
|
LiNE
|
||||||
|
|
|
@ -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
|
|
@ -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}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue