I was moving my recordings to a different machine this weekend because I have found myself needing to reboot my main computer when it was recording tv shows. I had the same issue again and used the below code to fix any recording where the recording and the cached event start times were more than 1 hour off.
Code:
List<ScheduledRecording> recordings = new List<ScheduledRecording>();
recordings = ScheduledRecording.LoadCompleted();
foreach (ScheduledRecording recording in recordings)
{
if (recording.Filename != "")
{
EPGEvent recEvent = EPGEvent.Parse(recording.CachedEventDetails);
TimeSpan difference = recEvent.StartTime - recording.StartTime;
if (difference>new TimeSpan(1,0,0))
{
DateTime starttime = recording.StartTime;
DateTime endtime = recording.EndTime;
txtfile.WriteLine("imported");
recording.StartTime = starttime.AddHours(5); //This is because I am in Central US timezone
recording.EndTime = endtime.AddHours(5); // This is because I am in Central US timezone
recording.Save();
}
}