THAT is a god send! Will definitely make use of that.
Here is my current expression (still tweaking it)...
Code: Select all
...path.../Movies/{def cleanName=n.colon(" - ").validateFileName();A:{any{"_ COLLECTIONS _/".concat(any{MC:{readLines('P:/collections.txt').find{ it =~ imdbid }.after(':').match(/(.*?)(?:[:#\t*]|$)/)}}{collection})+"/${y} - ${cleanName}"}{if (minutes <= 60 && info.runtime.toInteger() < 75) ("_ MINI MOVIES _/${cleanName} (${y})")}{"${az}/${cleanName} (${y})"}+"/${cleanName} (${y})"}}{'.'+certification}{'.'+resolution}{'.'+source}{if (fn.find(/[. ]CD\d+[. ]/)) '.CD'+pi}{'.'+any{minutes+'m'}{info.runtime+(info.runtime.toInteger().toString()==info.runtime ? "m" : '')}}{".[${crc32}]"}
You'll notice I made a slight alteration to the collections readLines. It's to allow me to optionally include comments/notes at the end of a line, in case I want something to remind me of what is included (without actually naming everything). I might decide to break the James Bond listings based on the actor of the main character (and include those who weren't in more than two films). That would give me four lines and I'd know which titles are included. Then could also allow me to rename the collection more easily based on that knowledge.
For the .CD#, have it checking the file to see if it's already included. Sometimes, having a couple of different copies of something gets it trying to do .cd1 and .cd2 when they are individual copies rather than parts to combine. This lets me avoid that happening. Granted, there is a chance of a grouping being misnamed, but I'm confident it will be a rare situation if it happens at all.
Then the time of the video. Came across one where the 'minutes' wasn't working, so added in a backup method along with a fix to the chance of 'runtime' not being simply a value. That lack of a time for the video isn't filebot's fault, it's a DVD structured folder.
I have one more tweak in mind for the 'mini' minute check, but will need to find something to test it on first.
Maybe I'm missing something, but I tried to use .match() on {folder} in an attempt to use the same initial structure (there are currently three library areas due to it being on different drives that aren't part of Storage Spaces yet). However, it gets really mad at me saying that it's not supported (I guess?) to use .match on {folder}. Is that right? Is there a way to follow the same/similar root structure? I see there are ways to pick based on free space or first letter of the title, was hoping there would be a way to keep it on the same path without having to change the start of the line based on which library I'm working on.