For me, the best selection of fields to check for programs recorded previously is;
Series: Because this field is almost always present, except where there is no episode name and then it gets put into the [Name] tag (I think that still happens, not sure - yes, confirmed in my current EPG data.) It is almost always spelt correctly, and rarely, though occasionally, has embellishments added to it, such as NEW* or similar. If the EPG data includes Season and Episode numbers, this field seems to always be present and accurate.
Season:If this field is present in the EPG data, and is accurate, you can't get better data. It helps if it is consistent with TheTVDB, even when TheTVDB does something silly, like use the year instead of a Season number. Sometimes the Season field isn't present even when the Episode field is, depending on your data source. But mostly both are there, if either is.
Episode:If this field is present in the EPG data, and is accurate, you can't get better data. It helps if it is consistent with TheTVDB, even when TheTVDB does something silly, like using an absolute Episode number instead of a number within a Season.
With accurate data, the combination of Series, Season, and Episode absolutely identifies the program, with no doubts.
If only Season and Episode are used, MC could match to any Series that has had that program recorded, so that would be no use.
The Name field is often not accurate for repeat showings, and in my part of the world it is often embellished, or even deliberately changed or removed for repeats, so that viewers won't know that they are going to be watching a repeat. The actual repeat flag is almost never set as well. I may be cynical, but I still think I am right when I say the broadcasters hope that people will just watch the repeat episode anyway, and hence see the commercials broadcast with it. Also, I believe that the way viewer numbers are calculated in Australia gives a heavy emphasis on viewers watching the first part of a program, so if they start watching, then realise at some time that they have seen it and change channels, it is still recorded as watched, inflating the viewer counts.
The Description field is rarely included for repeat showings, and is often changed. Often it is just the Series name for repeats. It is useless for comparisons with previous recordings.
So, use Series, Season, Episode for the "Do not record shows that have been recorded" settings.We also compare program ID (if exists) directly, before we get into the Name, Description, etc. If the program ID match, there is no point comparing any other things.
This is interesting and could be a problem. I have thought that before but haven't gotten around to commenting, because my current EPG never includes Program ID, and neither do any of my recordings.
Which Program ID do you use Yaobing? Rovi and Gracenote use different Program IDs from memory. In the past there have been other unique Program ID sources. IceTV in Australia have their own system. Some sources do use the same Program ID, such as Zap2it uses Gracenote, but then Gracenote own zap2it. TheTVDB has a Series ID which is stored in a separate tag in MC, and they seem to use the Series ID in combination with Season and Episode to uniquely identify a program, but they also seem to have an internal Program ID, shown in the URLs used for individual episodes. But MC doesn't gather that Program ID anyway, and it wouldn't be in any EPG data prior to a recording being made.
The Program ID format that is in the EPG data will depend on the EPG data source. If a user changes EPG data source, or the provider does as when Microsoft changed from Gracenote to Rovi, the Program ID format changes, so all previously recorded programs will have the "wrong" Program ID.
I suspect that now that Series, Season, and Episode data is available to those using the "Do not record shows that have been recorded" settings,
Program ID shouldn't be used as an overriding selection criteria. Perhaps make it one of the selectable fields instead, for those users who get the field in their EPG source. Or remove it from the selection criteria altogether. Either way, it shouldn't override a match by Series, Season, and Episode.
Just my thoughts, as usual.