This is great Yaobing. A couple of thoughts below. I may have more thoughts later. Sorry for the wall of text.
I will eventually also add "Keywords" in the list on the left hand side.
By "Keywords" do you mean the fields available in the XMLTV EPG files, such as CATEGORY, ACTOR, DIRECTOR, GENRE etc., as defined in the
XMLTV standard? If so, that would be perfect.
Based on your image, you are still planning to use the program name as the recording rule name. As we are now going to be able to select searches on any of the main fields, I would like to be able to edit the recording rule name, to make it meaningful to the user. For example, our sports fans may want to call a rule "My favourite NBL games" or "NBL games at home" and "NBL games away", or similar. As the name of the rules isn't being used for the search, this should be achievable. I may want to name a rule "CSI", even though the EPG always includes the name "CSI: Crime Scene Investigation". This could even be useful in identifying some part of the criteria used in the rule, such as "Sunday afternoon Scooby Doo".
Series Name: SHORT VERSION
When MC imports EPG data, have MC check for the value "series" in the EPG <category> fields. If the program is categorised as a series, or if MC already knows the Title is a series, put the contents of the <title> field into both the MC [series] and [name] fields whenever the EPG <sub-title> field is empty.
Series Name: LONG VERSION
The other issue that came to mind the other day was that MC currently uses the [Series] field to decide which series a program belongs to, and that value comes from the <title> field in the XMLTV files, when both the <title> and <sub-title> fields are available. If the <sub-title> field is not provided in the EPG, then the [series] field isn't populated, even when the program is, in fact, a series. It is common in my EPG data for repeat showings of a program for the <sub-title> field, and often the <description> field, to be empty. This is the broadcaster obfuscating that the program is a repeat usually. But just as often it is poor EPG data, even for new showings of a program.
This could lead to missing recordings of a series, obviously, where the rules says, for example;
Series {matches exactly} Doctor Who
But the series field is empty, and it is the [Name] field that contains "Doctor Who".
This can be solved in three ways given the new rules being discussed.
1. Set up two rules for each and every series recording, specifically; "Series {matches exactly} Doctor Who" OR "Name {matches exactly} Doctor Who". That is very achievable, and is simple to understand, but hard to automate if someone just presses the button to record a series, and selects subscribes to the series. The subscription would potentially miss some episodes without user knowledge of the way MC uses the EPG <title> and <sub-title> fields, and intervention on their part to add the second rule.
2. The "Any of the above" field option would catch the program, but would also catch all the Doctor Who extra programs, or any program with "Doctor Who" in the description, which is undesirable from my perspective. Where the search term was a common word that often appeared in descriptions, this could result in a lot of unwanted recordings.
3. If the program is determined to be a series (discussed below), any rule that searches the [series] field when the [series] field is empty, should also search the [name] field. I'm not sure this is a good solution though, since it may not appear obvious to a user how a program was selected for recording. They would have to have a knowledge of the way MC uses the <title> and <sub-title> fields, and expect it to pick up the series correctly. Otherwise they might try to get around the problem of an empty series field using more complex rules.
Perhaps a better solution to all the above it to put the contents of the <title> field into both the MC [series] and [name] fields when the <sub-title> field is empty, and the program is determined to be, in fact, a series that should have a series name and episode name.
How do you determine if a program is a series? I can think of three ways.
a. The most common solution, used by zap2it (Gracenote), Rovi, and IceTV, is to create a Series ID and embed it into the program ID each of them use. "TheTVDB Series ID" tag can't be used as it isn't in the EPG data. Besides, I have watched whole series, imported into MC and looked up on TheTVDB, without ever getting the tag filled, because the site hasn't been updated with the series. "Dexter" and "The Death of Yugoslavia" are two examples where this happened. So this isn't a good solution for MC, since you can't be affiliated with any one of the above solutions world wide, and besides, users may be sourcing and importing XMLTV data from anywhere, with or without a Series ID.
b. If MC had a database of series names, and could look up the value in the <title> field to check if it is a series. I know some software keeps a local database of TV programs, in particular series names to do this. EPG Collector does this, although that is to minimise online lookups for metadata. Maybe MC could look up its own database to see if the name matches a program that has already been identified as a series, rather than a once off program. Alternately, look up the name somewhere on-line where the series could be reliably found, before it is shown on air. But online lookups are problematic, at the time of EPG import or recording rule evaluation. After all, that is what the EPG data is supposed to do, provide information about the program before it is shown, without having to do external lookups.
c. Have MC check for the value "series" in the EPG <category> fields. If the program is categorised as a series, always treat it that way, including for the completion of the [series] and [name] fields.
-----------------
I see Greynolds finished typing before me, and got a post in with similar ideas. Great!
I like the SD vs HD option, and used to use that in software I previously used. The multiple channel numbers selection is already there of course, but could be improved using these new rules.
I would also appreciate more flexibility and meaningfulness of time range selection.
I think his expansion of the Keywords discussion is pretty much spot on as well.