From 759d5c9a94fcafdca39ec3ca20a257ccd1f8cb26 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Fri, 22 Jul 2016 22:01:05 +0800 Subject: [PATCH] Added season years binding {sy} --- source/net/filebot/format/MediaBindingBean.java | 7 ++++++- source/net/filebot/ui/rename/BindingDialog.properties | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/source/net/filebot/format/MediaBindingBean.java b/source/net/filebot/format/MediaBindingBean.java index 493f2df8..65532581 100644 --- a/source/net/filebot/format/MediaBindingBean.java +++ b/source/net/filebot/format/MediaBindingBean.java @@ -698,10 +698,15 @@ public class MediaBindingBean { } @Define("episodelist") - public Object getEpisodeList() throws Exception { + public List getEpisodeList() throws Exception { return WebServices.getEpisodeListProvider(getSeriesInfo().getDatabase()).getEpisodeList(getSeriesInfo().getId(), SortOrder.forName(getSeriesInfo().getOrder()), new Locale(getSeriesInfo().getLanguage())); } + @Define("sy") + public List getSeasonYears() throws Exception { + return getEpisodeList().stream().filter(e -> getSeasonNumber().equals(e.getSeason()) && e.getAirdate() != null).map(e -> e.getAirdate().getYear()).sorted().distinct().collect(toList()); + } + @Define("localize") public Object getLocalizedInfoObject() throws Exception { return new DynamicBindings(key -> { diff --git a/source/net/filebot/ui/rename/BindingDialog.properties b/source/net/filebot/ui/rename/BindingDialog.properties index 729497aa..ede098d3 100644 --- a/source/net/filebot/ui/rename/BindingDialog.properties +++ b/source/net/filebot/ui/rename/BindingDialog.properties @@ -2,4 +2,4 @@ parameter.exclude: ^StreamKind|^UniqueID|^StreamOrder|^ID|Count$ # preview expressions (keys are tagged so they can be sorted alphabetically) -expressions: n, y, s, e, es, sxe, s00e00, t, d, startdate, absolute, special, episode, series, primaryTitle, alias, movie, tmdbid, imdbid, pi, pn, lang, subt, plex, az, type, anime, regular, music, album, artist, albumArtist, actors, director, collection, genre, genres, languages, certification, rating, vc, ac, cf, vf, hpi, af, channels, resolution, dim, bitdepth, ws, sdhd, source, tags, s3d, group, original, fn, ext, mediaType, file, file.name, folder, folder.name, gigabytes, crc32, info, info.runtime, info.status, omdb.rating, omdb.votes, localize.German.title, mediaTitle, age, duration, seconds, minutes, media, media.overallBitRateString, video[0], video[0].codecID, video[0].frameRate, video[0].displayAspectRatioString, video[0].scanType, audio[0], audio[0].bitRateString, audio[0].language, audio, audio.language, text[0], text[0].codecInfo, text[0].language, text, text.language +expressions: n, y, s, e, sxe, s00e00, t, d, startdate, absolute, es, sy, special, episode, series, primaryTitle, alias, movie, tmdbid, imdbid, pi, pn, lang, subt, plex, az, type, anime, regular, music, album, artist, albumArtist, actors, director, collection, genre, genres, languages, certification, rating, vc, ac, cf, vf, hpi, af, channels, resolution, dim, bitdepth, ws, sdhd, source, tags, s3d, group, original, fn, ext, mediaType, file, file.name, folder, folder.name, gigabytes, crc32, info, info.runtime, info.status, omdb.rating, omdb.votes, localize.German.title, mediaTitle, age, duration, seconds, minutes, media, media.overallBitRateString, video[0], video[0].codecID, video[0].frameRate, video[0].displayAspectRatioString, video[0].scanType, audio[0], audio[0].bitRateString, audio[0].language, audio, audio.language, text[0], text[0].codecInfo, text[0].language, text, text.language