The --filter option is probably the the most powerful, yet least used option the CLI has to offer. As long as everything "just works" you will never need --filter but if you get mismatches then --filter will allow you to pass in arbitrary rules to help FileBot make the correct match. Plus, once you're familiar with format expressions you'll immediately get filter expressions.
The --filter expression allows you to control which episode or movie object is considered for matching. So if one show is confused with another due to bad naming or missing data you can simply exclude the bad one.

Examples:
If you want to process files from a specific season, then you can force a match from that specific season:
Code: Select all
--filter "s == 2"
If you only process recently aired episodes you could exclude any episode of any show that has been aired more than a few days ago, immediately eliminating any and all potential mismatches with similarly named TV Shows aired at different times:
Code: Select all
--filter "age < 5"
A more advanced version of the above might only include episode data of recently aired episodes if there are any recently aired episodes, but otherwise default to accepting any episode data:
Code: Select all
--filter "age < 5 || 5 <= model.age.min()"
If older TV shows are giving you trouble, then you can focus on recent TV shows:
Code: Select all
--filter "y > 2010"
If misleading data from a specific series is making trouble you can simply exclude it:
Code: Select all
--filter "none{ n =~ /Crime Scene Investigation/ }"
You can manage a list of explicitly excluded (or included) series names with an external text file:
Code: Select all
--filter "none{ n in lines('/path/to/excludes.txt') }"
Code: Select all
Magnum, P.I.
CSI: Crime Scene Investigation
You can manage a list of explicitly excluded (or included) series IDs with an external TSV table:
Code: Select all
--filter "none{ id in csv('ids.tsv') }"
Code: Select all
734 Magnum, P.I. (1980)
1431 CSI: Crime Scene Investigation (2000)


Advanced Usage:
--filter expressions can be passed via external *.groovy files:
Code: Select all
--format /path/to/Filter.groovy

