1
0
mirror of https://github.com/mitb-archive/filebot synced 2024-12-24 00:38:52 -05:00

Cache movie info bindings (as before refactoring)

This commit is contained in:
Reinhard Pointner 2016-10-31 02:18:00 +08:00
parent 9e98b2e106
commit ba65be5dfc

View File

@ -44,6 +44,7 @@ import net.filebot.CacheType;
import net.filebot.Language;
import net.filebot.MediaTypes;
import net.filebot.MetaAttributeView;
import net.filebot.Resource;
import net.filebot.Settings;
import net.filebot.hash.HashType;
import net.filebot.media.MetaAttributes;
@ -980,32 +981,6 @@ public class MediaBindingBean {
return MetaAttributes.toJson(infoObject);
}
public MovieInfo getPrimaryMovieInfo() throws Exception {
return TheMovieDB.getMovieInfo(getMovie(), Locale.ENGLISH, false);
}
public SeriesInfo getPrimarySeriesInfo() throws Exception {
if (TheTVDB.getIdentifier().equals(getSeriesInfo().getDatabase()))
return TheTVDB.getSeriesInfo(getSeriesInfo().getId(), Locale.ENGLISH);
return getSeriesInfo();
}
public MovieInfo getMovieInfo() throws Exception {
return getMovieInfo(getMovie().getLanguage(), true);
}
public synchronized MovieInfo getMovieInfo(Locale locale, boolean extendedInfo) throws Exception {
Movie m = getMovie();
if (m.getTmdbId() > 0)
return TheMovieDB.getMovieInfo(m, locale == null ? Locale.ENGLISH : locale, extendedInfo);
if (m.getImdbId() > 0)
return OMDb.getMovieInfo(m);
return null;
}
public File getInferredMediaFile() {
if (getMediaFile().isDirectory()) {
// just select the first video file in the folder as media sample
@ -1044,6 +1019,35 @@ public class MediaBindingBean {
return getMediaFile();
}
public SeriesInfo getPrimarySeriesInfo() throws Exception {
if (TheTVDB.getIdentifier().equals(getSeriesInfo().getDatabase()))
return TheTVDB.getSeriesInfo(getSeriesInfo().getId(), Locale.ENGLISH);
return getSeriesInfo();
}
private final Resource<MovieInfo> primaryMovieInfo = Resource.lazy(() -> TheMovieDB.getMovieInfo(getMovie(), Locale.ENGLISH, false));
private final Resource<MovieInfo> extendedMovieInfo = Resource.lazy(() -> getMovieInfo(getMovie().getLanguage(), true));
public MovieInfo getPrimaryMovieInfo() throws Exception {
return primaryMovieInfo.get();
}
public MovieInfo getMovieInfo() throws Exception {
return extendedMovieInfo.get();
}
public synchronized MovieInfo getMovieInfo(Locale locale, boolean extendedInfo) throws Exception {
Movie m = getMovie();
if (m.getTmdbId() > 0)
return TheMovieDB.getMovieInfo(m, locale == null ? Locale.ENGLISH : locale, extendedInfo);
if (m.getImdbId() > 0)
return OMDb.getMovieInfo(m);
return null;
}
private static final Map<File, MediaInfo> sharedMediaInfoObjects = synchronizedMap(new WeakValueHashMap<File, MediaInfo>(64));
private synchronized MediaInfo getMediaInfo() {