v1.1.25 Release

An evolving, supported alternative to Rovi
Forum rules
★ Download the latest EPG123 here: https://garyan2.github.io/ <> Setup guide here: https://garyan2.github.io/install.html
User avatar
garyan2

Posts: 7438
Joined: Fri Nov 27, 2015 7:23 pm
Location:

HTPC Specs: Show details

v1.1.25 Release

#1

Post by garyan2 » Thu Mar 22, 2018 5:35 am

It was discovered that the language value of a program would have to match any series recording requests’ "prototypicalLanguage" value in order to be scheduled to record. Starting in v1.1.20, I had changed the program language value to be the 2-character plus locale ISO language code. It appears that “English” and “en” is equivalent in WMC, but “English” and “en-GB” are not for the purpose of recording. This caused a lot of scheduled series recordings to no longer “find” episodes to record. I have reverted back to the original method to be the common language name with no locale information in order for existing series recordings to work.

If you created any series recordings while using v1.1.20 – v1.1.24, please check your schedule to see if they are still working after updating with v1.1.25. If not, you will have to cancel the current request and create a new one.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io

User avatar
IT Troll

Posts: 1172
Joined: Sun Nov 27, 2011 9:42 am
Location: Edinburgh, UK

HTPC Specs: Show details

#2

Post by IT Troll » Thu Mar 22, 2018 10:18 am

Thanks for the quick fix. :thumbup:

I got caught out by this because initially the Scheduled Recordings look OK. I didn't realise I had a problem until I noticed a few days later that recordings were being missed. So people running the affected releases may not be aware yet.
Are you a Recorded TV HD user or want to give it a try? Check out the new community-made update; Recorded TV HD v2.1.1

User avatar
StinkyImp

Posts: 669
Joined: Thu May 11, 2017 7:53 pm
Location:

HTPC Specs: Show details

#3

Post by StinkyImp » Thu Mar 22, 2018 12:18 pm

garyan2 wrote:It appears that “English” and “en” is equivalent in WMC, but “English” and “en-GB” are not for the purpose of recording.
Does this affect "en-US" (or all en-XX) users?

User avatar
garyan2

Posts: 7438
Joined: Fri Nov 27, 2015 7:23 pm
Location:

HTPC Specs: Show details

#4

Post by garyan2 » Thu Mar 22, 2018 2:33 pm

StinkyImp wrote:Does this affect "en-US" (or all en-XX) users?
I don't know who all are affected. All I know is I didn't have any issue will my recordings. The language code from SD/Gracenote does not use a locale designator for the US, so it was simply "en".

I would imagine the french languages were affected and maybe spanish. Obviously UK users were affected.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io

ViperJohn

Posts: 26
Joined: Wed May 17, 2017 12:20 am
Location:

HTPC Specs: Show details

#5

Post by ViperJohn » Fri Mar 23, 2018 6:07 am

garyan2 wrote:
StinkyImp wrote:Does this affect "en-US" (or all en-XX) users?
I don't know who all are affected.
I am SoCal USA. All my scheduled are for the OTA channels and I got freaken hammered. I had 34 of 40 scheduled recordings just up and disappear when I switched to 1.1.21. Thought I had screwed up some how until I saw the 1.1.25 notes. Did the series delete and reschedule thing to get them back and fortunately I caught it before I missed any recordings.

8 of 25 series I record had already finished their seasons so won't know till next season if they won't schedule. Guess I will have do do it all over again when going to 1.1.25 but maybe the 8 "season finished" series will just work again now since they haven't been R&R'ed yet.

The only reason I even apply updates now is because of the "new version" error entry in the Windows Event Log every time ya change version numbers. How about adding a switch to allow suppression the "new version" error entry in the Event Log if desired.

Viper

User avatar
garyan2

Posts: 7438
Joined: Fri Nov 27, 2015 7:23 pm
Location:

HTPC Specs: Show details

#6

Post by garyan2 » Fri Mar 23, 2018 2:56 pm

ViperJohn wrote:I am SoCal USA. All my scheduled are for the OTA channels and I got freaken hammered.
D@mn... So this is a case where going from "English" to "en" certainly did break series recordings (rimmel's experience may be another). Maybe there is a difference in the WMC versions in how they respond to this situation. What version of Windows are you running?

I don't think I can express enough to everyone affected how sorry I am. I thought the change in the language code was so innocuous that it didn't even rate mentioning in the change history. I believed so in part because the transfer tool to bring in Rovi created recording requests worked. The Rovi recording requests use the ISO language code ("en-US"), while EPG123 used the text ("English") and it worked. It appears that is true only in 1 direction. The language field for a program is undefined, but it looks like it should be the ISO code so I chose poorly from the beginning on how to populate that attribute.

By my count on downloads for 1.1.21-1.1.24, I would estimate about 300 users could potentially be affected by this. There have only been ~100 downloads of 1.1.25 but of course I don't know how many of the 300 that covers. Everything is recoverable, of course, but EPG123 was meant to alleviate all the frustration with WMC guide listings and recordings.

On the bright side, I/we did learn something more about how WMC ticks and possibly explain past weirdness that we've seen. D@mn MS and their prototypical settings.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io

User avatar
StinkyImp

Posts: 669
Joined: Thu May 11, 2017 7:53 pm
Location:

HTPC Specs: Show details

#7

Post by StinkyImp » Fri Mar 23, 2018 4:51 pm

garyan2 wrote:I don't think I can express enough to everyone affected how sorry I am.
I'd like to say that, from me, you have absolutely nothing to be sorry about. Your unconditional dedication to the ongoing upkeep and advancement of this utility is nothing short of impressive! I appreciate everything you do.

Imagine my chagrin when I put all those hours into my log utility only to find out that it wouldn't work outside the US? Unfortunately I had to study locales, date formats for different countries, and then write an algorithm to calculate their individual date format. I found out that even persons in the same country (even next door to each other) could have a different date format... That was fun.

Speaking of that... I'm quickly coming up on my fourth log backup. Based on our discussions I've coded for only three. One of the things I did early on was force a backup of the trac*.log files and then have the utility work from those. Therefore, I will always have ALL the log files generated by EPG123. One thing I'm contemplating is merging the oldest log files so that I'm always at three.

Would it be possible to change the automated backup name in EPG123 to "traceYYYYMMDD.log" and leave out the timestamp? :D

ViperJohn

Posts: 26
Joined: Wed May 17, 2017 12:20 am
Location:

HTPC Specs: Show details

#8

Post by ViperJohn » Fri Mar 23, 2018 5:05 pm

garyan2 wrote: What version of Windows are you running?
Windows 7 SP1

From "About Windows Media Center / Software Version":
>
Windows Media Center
Windows 7
Version: 6.1.7601.17514 (win7sp1_rtm.101119-1850)
with Windows Media Center technologies

Viper

User avatar
IT Troll

Posts: 1172
Joined: Sun Nov 27, 2011 9:42 am
Location: Edinburgh, UK

HTPC Specs: Show details

#9

Post by IT Troll » Fri Mar 23, 2018 6:54 pm

garyan2 wrote:The language field for a program is undefined, but it looks like it should be the ISO code so I chose poorly from the beginning on how to populate that attribute.
What format is used in a vanilla MS EPG setup? If that uses the ISO code and if that is what EPG123 should really be using, then perhaps a future version should make the switch (in a managed way). I guess you could make a tool for migrating existing series recordings.
Are you a Recorded TV HD user or want to give it a try? Check out the new community-made update; Recorded TV HD v2.1.1

User avatar
garyan2

Posts: 7438
Joined: Fri Nov 27, 2015 7:23 pm
Location:

HTPC Specs: Show details

#10

Post by garyan2 » Fri Mar 23, 2018 10:43 pm

ViperJohn wrote:
garyan2 wrote: What version of Windows are you running?
Windows 7 SP1

From "About Windows Media Center / Software Version":
>
Windows Media Center
Windows 7
Version: 6.1.7601.17514 (win7sp1_rtm.101119-1850)
with Windows Media Center technologies

Viper
Well, that went nowhere. I am using the same version and didn't have any problems. :? To be fair, I only had 4 series that could have been affected by this, so there must be another factor involved in WMC determining whether an episode is part of a series or not. Could you send me a copy of your recordings backup file from c:\programdata\microsoft\ehome\mcepgX-Y\backup\recordings folder? I'll be able to see what the old/cancelled series looked like along with the new replaced series requests.

Thank you,
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io

User avatar
garyan2

Posts: 7438
Joined: Fri Nov 27, 2015 7:23 pm
Location:

HTPC Specs: Show details

#11

Post by garyan2 » Fri Mar 23, 2018 10:45 pm

IT Troll wrote:
garyan2 wrote:The language field for a program is undefined, but it looks like it should be the ISO code so I chose poorly from the beginning on how to populate that attribute.
What format is used in a vanilla MS EPG setup? If that uses the ISO code and if that is what EPG123 should really be using, then perhaps a future version should make the switch (in a managed way). I guess you could make a tool for migrating existing series recordings.
Technically it would be an easy thing to "convert" to the proper usage of the ISO codes, procedurally is a different matter for the non-technical/common user. I'll give it some thought, but yeah, vanilla MS EPG uses the ISO codes with locale.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io

ViperJohn

Posts: 26
Joined: Wed May 17, 2017 12:20 am
Location:

HTPC Specs: Show details

#12

Post by ViperJohn » Sat Mar 24, 2018 7:39 pm

garyan2 wrote:
ViperJohn wrote:
garyan2 wrote: What version of Windows are you running?
Windows 7 SP1

From "About Windows Media Center / Software Version":
>
Windows Media Center
Windows 7
Version: 6.1.7601.17514 (win7sp1_rtm.101119-1850)
with Windows Media Center technologies

Viper
Well, that went nowhere. I am using the same version and didn't have any problems.
Could you send me a copy of your recordings backup file from \backup\recordings folder?
Attached the files (one at a time) to a PM to you. Should be 5 files if I did it right

I have also gone to 1.1.25. A good 80% of my scheduled records went "poof" again. That was expected and I knew what to do this immediately this time so it wasn't a problem. I actully R&R'ed 4 or 5 series that I didn't need to be this round cause it was just easier that way this time.

Viper

User avatar
garyan2

Posts: 7438
Joined: Fri Nov 27, 2015 7:23 pm
Location:

HTPC Specs: Show details

#13

Post by garyan2 » Sat Mar 24, 2018 8:18 pm

I'm working on v1.2.0 which will take care of this language thing. It might be better defined, not as populating the prototypicalLanguage attribute, but setting the anyLanguage attribute to "true". My current approach is to scan all the series recordings and ensure the anyLanguage attribute is set. In this way, regardless of how the series request was created, they should all work.

My difficulty is proving this works since for some reason I can't get any of my requests to fail. Hopefully, your recordings files will help.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io

Space

Posts: 2838
Joined: Sun Jun 02, 2013 9:44 pm
Location:

HTPC Specs: Show details

#14

Post by Space » Sun Mar 25, 2018 6:41 am

What happens if you actually only want to record the English version of a show and not the (say) Spanish version?

I suppose you can limit the Series to a particular channel, but I am not sure how common it is to run the same show on a channel in two or more different languages...

Also, if you just want to record the show no matter what channel it is on, and that show is available of different channels in different languages, will you not be able to specify that you only want the Spanish version?

User avatar
IT Troll

Posts: 1172
Joined: Sun Nov 27, 2011 9:42 am
Location: Edinburgh, UK

HTPC Specs: Show details

#15

Post by IT Troll » Sun Mar 25, 2018 9:25 am

I was thinking that for migration purposes you could simply blank out prototypicalLanguage attribute so that is matches any. However, users may run into the scenarios Space describes. I think in Wales they broadcast some shows separately in Welsh and English.

Part of the problem is that Media Center doesn't have an interface for setting this option. You would have thought it should be available in the series recording settings. I guess most people work around this using channel and time preferences and don't realise that the language may or may not get set depending on how the recording is scheduled.
Are you a Recorded TV HD user or want to give it a try? Check out the new community-made update; Recorded TV HD v2.1.1

User avatar
garyan2

Posts: 7438
Joined: Fri Nov 27, 2015 7:23 pm
Location:

HTPC Specs: Show details

#16

Post by garyan2 » Sun Mar 25, 2018 3:29 pm

In regards to the language code for programs/series. The UID for any series is language specific. So a series that is broadcast in English will have a different UID than the same series broadcast in Spanish. There actually is no language code for the program itself from SD/Gracenote but I get that information from a language identifier for the series/program description.

Some technical:
A series request created using an episode of the series will populate prototypicalLanguage and set anyLanguage to false.
A series request created using a series search will not populate prototypicalLanguage and will set anyLanguage to true.

My plan is to keep the prototypicalLanguage but to change the anyLanguage boolean to true. Right now (v1.2.0), I am scanning all active series requests and setting anyLanguage to true. Below is some code that WMC uses to determine whether a program is an acceptable match for the series. This is from the WMC from Win8.1, so it may be different than the other OS versions. [EDIT: They are the same.] What is interesting is it appears to me that either all should fail, or all should pass when I went from "English" to "en" and back, but that is certainly not Viper's experience. Because it only compares the first 2 characters of the language (assuming ISO code), it should either have failed comparing "en" to "En" due to the capitalization, or should have passed if somewhere it changed case for the evaluation. Also, looking at the code you can also see that either clearing the prototypicalLanguage (this.Language) or setting anyLanguage (this.AnyLanguage) to true will work.

Code: Select all

protected virtual bool IsAcceptable(Program program)
{
	if (program == null)
	{
		return false;
	}
	if (this.Complete)
	{
		return false;
	}
	if (!this.AnyLanguage)
	{
		string language = this.Language;
		string language2 = program.Language;
		if (!string.IsNullOrEmpty(language2) && language2.Length >= 2 && !string.IsNullOrEmpty(language) && language.Length >= 2 && string.Compare(language2.Substring(0, 2), language.Substring(0, 2), StringComparison.CurrentCulture) != 0)
		{
			return false;
		}
	}
	return true;
}
What is currently frustrating is Viper sent me his WMC backup where I could recreate not only his series requests, but also his tuner and lineup configurations. Other than actually having no tuners available, my virtual machine was exactly like his. Unfortunately I am not able to create this failure mechanism. I even started my system with v1.1.15 and worked my way up but never had a series request fail when I moved to v1.1.21-v1.1.24. Without being able to create it, I can't verify my fix.

If someone/anyone wants to purposely try to create this failure on their system and succeeds, let me know and I will send you the working version to see if it automatically fixes it.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io

Space

Posts: 2838
Joined: Sun Jun 02, 2013 9:44 pm
Location:

HTPC Specs: Show details

#17

Post by Space » Sun Mar 25, 2018 8:50 pm

Where did you get WMC source code?

stuartm

Posts: 721
Joined: Mon Nov 05, 2012 8:05 pm
Location: Longmont, CO

HTPC Specs: Show details

#18

Post by stuartm » Sun Mar 25, 2018 9:12 pm

I'd guess more likely this is from a decompiler than Gary actually having access to WMC source. (also, if he did he would almost surely be prohibited from posting any of it)

User avatar
garyan2

Posts: 7438
Joined: Fri Nov 27, 2015 7:23 pm
Location:

HTPC Specs: Show details

#19

Post by garyan2 » Mon Mar 26, 2018 1:40 am

^correct.

A lot of the WMC libraries are .NET assemblies and what makes .NET so great for quickly building programs also exposes the code through reflection. What I did to peek into mcepg.dll can also be done with all my programs. As soon as I figure out how to use Github and have time, that won't be necessary though.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io

ViperJohn

Posts: 26
Joined: Wed May 17, 2017 12:20 am
Location:

HTPC Specs: Show details

#20

Post by ViperJohn » Mon Mar 26, 2018 7:57 am

garyan2 wrote: What is currently frustrating is Viper sent me his WMC backup where I could recreate not only his series requests, but also his tuner and lineup configurations.
My HTPC runs 32 bit Win7 and I would bet your test system is 64 bit Win7. I have both 32 and 64 bit W7 systems and have been bit hard by a program common to both behaving differently in the unexpected/puzzling ways. Just a thought.

Viper

Post Reply