Commit Graph

368 Commits

Author SHA1 Message Date
Reinhard Pointner 0678aa646a Inject ExpressionFormatFunctions via extensionClasses instead of starImports 2019-05-25 01:34:58 +07:00
Reinhard Pointner 49596efa67 access denied ("groovy.security.GroovyCodeSourcePermission" "/groovy/shell") 2019-05-24 17:02:39 +07:00
Reinhard Pointner dc0c1f1cea Fix mediaInfo / inferredMediaFile bottleneck 2019-05-24 01:16:29 +07:00
Reinhard Pointner 996701aec3 Fix mediaInfo / inferredMediaFile bottleneck 2019-05-24 01:13:08 +07:00
Reinhard Pointner 468ded44aa Cache MediaInfo objects for up to 20 minutes to make sure we benefit from cached information even when processing files on network drives, especially when --filter is used followed by --format with lots of MediaInfo bindings.
https://www.filebot.net/forums/viewtopic.php?f=6&p=44112#p44111
2019-05-18 01:40:32 +07:00
Reinhard Pointner 015314e5f5 Added {cy} collection years binding and {movie.collection} extension method 2019-05-15 10:04:23 +07:00
Reinhard Pointner 744f61a291 Prefer direct descendant video files when formatting folder objects
https://www.filebot.net/forums/viewtopic.php?f=8&t=10797
2019-05-12 02:11:41 +07:00
Reinhard Pointner 7b6d154392 Use both "Channel(s)_Original" or "Channel(s)" just use the first one that actually has a valid value.
https://www.filebot.net/forums/viewtopic.php?f=5&t=10773&p=43876#p43869
2019-05-07 03:25:55 +07:00
Reinhard Pointner 570e5ecbee Use both "Channel(s)_Original" or "Channel(s)" just use the first one that actually has a valid value.
https://www.filebot.net/forums/viewtopic.php?f=5&t=10773&p=43876#p43869
2019-05-07 03:17:17 +07:00
Reinhard Pointner 672c015696 + Add {history} binding to access the original historic path of {f} (e.g. useful for -exec post-processing calls) 2019-04-30 19:50:58 +07:00
Reinhard Pointner 3f2a8ee5a6 Support "guarded expressions" when concatting String values.
e.g. {"[" + {n} + " " + {s00e00} + "]"}

https://www.filebot.net/forums/viewtopic.php?f=8&t=10719
2019-04-24 14:44:09 +07:00
Reinhard Pointner 2911ea488a Move DSL utilities 2019-04-24 13:58:41 +07:00
Reinhard Pointner 4979de00f7 Backwards compatibility: Make sure String.replaceAll(String) defaults to String.replaceAll(String, "") 2019-03-07 11:09:03 +07:00
Reinhard Pointner bcd179c36f Add {fps} (as BigDecimal) convenience binding 2019-03-02 20:47:23 +07:00
Reinhard Pointner 21693b0117 access denied ("java.io.FilePermission" "/mnt/ext/opt/medialibrary/bin/ffprobe" "execute") 2019-03-01 04:34:34 +07:00
Reinhard Pointner 8aa798318a Split music category tags like "hardrock;Hard Rock" as one would expect 2019-02-28 11:41:59 +07:00
Reinhard Pointner 9d08f5f192 az.match('[a-f]': '/volume1', '[g-x]': '/volume2') ?: '/volume3' 2019-02-26 14:02:04 +07:00
Reinhard Pointner 6856275a42 Refactor ExpressionFormatMethods 2019-02-23 17:20:31 +07:00
Reinhard Pointner 17c94baeca Best effort to make {aco} work on different versions of libmediainfo (if possible) 2019-02-22 19:42:09 +07:00
Reinhard Pointner 8c8e1045fb Add String.initialName() for "James Cameron" ➔ "J. Cameron" 2019-02-22 18:57:52 +07:00
Reinhard Pointner 580f2bd8f4 Make sure not to expose public locks 2019-02-11 14:34:02 +07:00
Reinhard Pointner b38f9a3ddb Use Caffeine for in-memory caching 2019-02-07 13:27:04 +07:00
Reinhard Pointner aa0ba70848 Use Guava Cache for in-memory caches 2019-02-03 01:56:01 +07:00
Reinhard Pointner 342ced903d Improved support for read / writing CRC32 checksum to / from xattr (and enable by default) 2019-02-03 01:44:17 +07:00
Reinhard Pointner 103dd239c2 access episode list and find minimum airdate if necessary 2019-01-01 14:05:47 +07:00
Reinhard Pointner be7f86bf98 Make it clear that inferredMediaFile is used here 2018-12-31 12:07:33 +07:00
Reinhard Pointner 5ce426daed Fix import 2018-12-30 14:40:22 +07:00
Reinhard Pointner 05700c63c6 // try to place embedded media title first 2018-12-06 15:35:05 +07:00
Reinhard Pointner 49b22e4137 Extended MediaCharacteristics common interface 2018-12-06 14:58:53 +07:00
Reinhard Pointner b2438ec6a1 Use embedded media title for filename-based bindings such as {group} {source} etc via libmediainfo 2018-12-05 22:41:55 +07:00
Reinhard Pointner 9496ce6f10 Add {ci} collection index binding 2018-12-03 20:00:27 +07:00
Reinhard Pointner 6acd4b62ec Add {ci} collection index binding 2018-12-03 19:07:29 +07:00
Reinhard Pointner a7c736d40b Fix dateutil methods in case groovy extension methods dont work 2018-12-03 03:23:37 +07:00
Reinhard Pointner 1710681ff6 Fix dateutil methods in case groovy extension methods dont work 2018-12-03 03:19:54 +07:00
Reinhard Pointner 6e8359913b Support Kodi Naming Standard (i.e. same as Plex, but with SxE and non-range based multi-episode formatting) via {kodi} binding 2018-11-18 00:50:34 +07:00
Reinhard Pointner 0d8d007ef4 Read and cache EXIF metadata only once while preserving File-mode backwards-compatibility 2018-08-04 22:40:13 +07:00
Reinhard Pointner 7ab9bb779c Refactor local datasources (exif, xattr, file) 2018-08-04 17:48:41 +07:00
Reinhard Pointner a615b362db Default to {n} if {y} is undefined 2018-07-22 08:53:11 +07:00
Reinhard Pointner 212b52d83c + add {hdr} binding (i.e. yield HDR or unwind) 2018-06-17 20:05:45 +07:00
Reinhard Pointner 9bc99007e1 Don't use sortName() transformation when applying String.acronym()
https://www.filebot.net/forums/viewtopic.php?f=8&t=5969
2018-06-06 16:57:51 +07:00
Reinhard Pointner 1390a23318 Refactor common media characteristics (e.g. to use ffprobe instead of libmediainfo internally for various use cases) 2018-06-04 19:44:35 +07:00
Reinhard Pointner 82557248d4 Refactor common media characteristics (e.g. to use ffprobe instead of libmediainfo internally for various use cases) 2018-06-03 19:12:05 +07:00
Reinhard Pointner c5395e5ff1 EXPERIMENTAL: Add {ffprobe} binding for direct access to ffprobe -show_streams -print_format json 2018-06-02 23:38:27 +07:00
Reinhard Pointner 736018deb4 Easy access to TheMovieDB Alternative Titles in custom formats via Movie.getAlternativeTitles() extension function 2018-05-28 15:07:16 +07:00
Reinhard Pointner 6d818f8ffe + Support for --file-filter option (e.g. useful on Windows where find -exec isn't possible) 2018-05-21 16:33:58 +07:00
Reinhard Pointner a9aa5d8ae1 Add Long.toDate() convenience method 2018-04-24 14:15:59 +07:00
Reinhard Pointner ba93efa911 Always use canonical file path for application folder paths 2018-03-18 18:24:29 +07:00
Reinhard Pointner a67c466c91 Refactor PlexNamingStandard 2018-02-17 11:36:20 +07:00
Reinhard Pointner 430d292bfe Use smallest channel value for {af} in case there are objects / channels
e.g.
Channel(s)                     : 15 objects / 6 channels
2018-02-08 12:06:31 +07:00
Reinhard Pointner 8563ae349f Reduce String.replacePart() false positive rate
https://www.filebot.net/forums/viewtopic.php?f=5&t=4068&p=32229#p32229
2018-02-05 13:55:33 +07:00