Ticket #22 (closed defect: fixed)

Opened 5 years ago

Last modified 22 months ago

jrobbo grabber: Incorrect channel XMLTV IDs

Reported by: max Owned by:
Priority: major Milestone: 1.0
Component: Grabber Version: 0.4
Keywords: NXROAcYUzEPGXJ Cc:

Description

I think the jrobbo grabber returns the wrong XMLTV IDs -- specifically, it returns the raw channel names. This flows all the way through Shepherd and causes mythfilldatabase to create new channels with these names in MythTV.

~/.shepherd $ grep -R Access *
...
grabbers/jrobbo/output.xmltv:  <programme channel='Access 31 ' start="2006123103
3000 +1100" stop="20061231060000 +1100">
log/shepherd.log.bad: - WARNING: plugin 'jrobbo' returned data for unknown chann
el 'Access 31': ignored.
log/shepherd.log.bad:reconciler_mk2 [1167105586] reconciled "Access 31" (Access 
31) 195 input -> 195 output programmes
log/shepherd.log.bad: - WARNING: plugin 'reconciler_mk2' returned data for unkno
wn channel 'Access 31': ignored.
log/shepherd.log.bad: - WARNING: plugin 'imdb_augment_data' returned data for un
known channel 'Access 31': ignored.
log/shepherd.log.bad: - WARNING: plugin 'augment_timezone' returned data for unk
nown channel 'Access 31': ignored.
...

Change History

Changed 5 years ago by max

Actually looking more closely I think jrobbo may have changed its channel names from "Channel Ten" to "Ten", "Channel Seven" to "Seven", "ABC " to "ABC", etc. (ABC2 and SBS still worked.) The grabber is hardcoded to translate only particular names so it missed this.

Since jrobbo's source & format can change the grabber probably needs a less strict match.

Changed 5 years ago by max

The matching from the oztivo grabber kept working, so maybe use something like that in jrobbo -- i.e. sort channels names from longest to shortest, and translate to the first match:

# Create a list of channel names from longest to shortest
@clist = sort { length $b <=> length $a } keys %$channels;

sub subme
{
    my $station = shift;

    $station = "SBS NEWS" if ($station eq "SBS-NEWS");

    foreach (@clist)
    {
        return $channels->{$_} if ($station =~ /$_/i);
    }
    print "Warning: station \"$station\" unknown.\n";
    return $station;
}

Changed 5 years ago by lincoln

  • status changed from new to closed
  • resolution set to fixed

we'll just have to address this each time it breaks - part of the problem here is that jrobbo's sources keep changing.

committed less specific (and hopefully more robust) channel matching via [391].

Changed 2 years ago by Electicore

  • keywords NXROAcYUzEPGXJ added
Note: See TracTickets for help on using tickets.