Nick Tan wrote:
Berry, David wrote:
Same here (Canberra)
How do we fix it? - change the script?
I had a poke around and the changes seem to be they changed the url from
/closeup/ to /cu/ and changed a couple of the attributes that are
searched for the find the programs id to find its close up details. The
url changes are pretty simple and only exist in a couple of places
however I don't know anywhere enough, well no, perl to change the
regular expressions to filter out the right program info.
It seems it's either fixing this all the time or going back to d1 (I
only ever got program data for SBS News here in Canberra, never played
with it much) or paying $150 a year with IceTV.
I think I've fixed it (it works with my setup anyways)
As you've said they've changed /closeup/ to /cu/ but they've also changed
how the pids are displayed.
Changes at around line 350 of the script:
if ($link =~ /cu\/default.asp/)
{
my $rowspan = $link;
$rowspan =~ s/.+rowspan=//g;
$rowspan =~ s/ .+//g;
my $name = $link;
#$name =~ s/.+target=new>(<P>|)//g;
$name =~ s/.+target=_new class=tv>//g;
$name =~ s/<\/a>.+//g;
if ($name =~ /\]/) {
my @nameline=split/\]/,$name;
$name = $nameline[1];
$name =~ s/^ //g;
}
my $linktemp = $link;
$link =~ s/.+pid=//g;
$link =~ s/".+//g; #"
my @linksplit=split/&/,$link;
#$link = $linksplit[0];
my @linksplit2=split/ /,$linksplit[0];
$link = $linksplit2[0];
chomp($link);
chomp($rowspan);
chomp($name);
also change the fetch_details subroutine to be:
sub fetch_details
{
my $datepid=$datepids->dequeue;
my @datepidl=split /-/, $datepid;
my $date = $datepidl[0];
my $pidtemp = $datepidl[1];
my @pidsplit=split /&/, $pidtemp;
my $pid = $pidsplit[0];
while (($date!=0) and ($pid!=0))
{
my $guide_dir = $cache_dir . "/" . $date;
mkpath ($guide_dir);
my $url = "" . $pid;
my $details_file = $guide_dir . "/" . $pid . ".html";
for (my $retry=0; is_error(getstore($url, $details_file))
&& ($retry<$retrys); $retry++)
{
sleep($seconds_before_retry);
}
$datepid=$datepids->dequeue;
@datepidl=split /-/, $datepid;
$date = $datepidl[0];
# $pid = $datepidl[1];
my $pidtemp = $datepidl[1];
my @pidsplit=split /&/, $pidtemp;
my $pid = $pidsplit[0];
}
}
Like I said, this works for me, YMMV. But it should be a good starting
point for anyone who wants to clean it up a bit :)
Change
my @linksplit=split/&/,$link;
#$link = $linksplit[0];
my @linksplit2=split/ /,$linksplit[0];
$link = $linksplit2[0];
to
my @linksplit=split/&/,$link;
if ($#linksplit <= 0) {
@linksplit=split/ /,$link;
}
if ($#linksplit > 0) {
my @linksplit2=split/ / ,$linksplit[0];
$link=$linksplit2[0];
}
Otherwise changed_guide will fail when running the script and it's
checking currently entered program info. It ends up with <pid>
of <pid>&x=<x> for some reason I'm
sure will be clear in the morning. Have fun :D
|
_______________________________________________
mythtv-users mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users