All pastes #22031 Raw Edit

Miscellany

public text v1 · immutable
#22031 ·published 2005-09-03 12:17 UTC
rendered paste body
my $channel_name;
my $in;

while (<>) {

    # Completely remove unsupported extensions.
    s|\s+<ice-xml-version>.*</ice-xml-version>\n||;
    s|\s+<region-name>.*</region-name>\n||;
    s|\s+<service-id>.*</service-id>\n||;
    s|\s+<transport-stream-id>.*</transport-stream-id>\n||;
    s|\s+<original-network-id>.*</original-network-id>\n||;

    # Remove empty tags and empty lines.
    s|<sub-title lang="en"></sub-title>\n||;
    s|<category lang="en"></category>\n||;
    s|^\n$||;

    # Ensure a single line before the tv tag.
    s|^<tv |\n<tv |;

    # Modify the channel name to include the LCN at the start.
    if (m|<display-name>(.*)</display-name>|) {
        $channel_name = $1;
    }
    s|\s+<display-name>.*</display-name>\n||;
    if (m|<lcn>(.*)</lcn>|) {
        s|<lcn>(.*)</lcn>|<display-name>$1 $channel_name</display-name>|;
        undef $channel_name;
    }
    if (m|^(\s+)</channel>| and defined $channel_name) {
        my $space = $1;
        s|^|$space$space<display-name>$channel_name</display-name>\n|;
    }

    # Modify the program times to include the current timezone.
    if (m|(\s+)<programme start="(.*)" stop="(.*)" channel="(.*)">|) {
        $in = $1;
        my $start = $2; my $stop = $3; my $channel=$4;
        s|<programme start="(.*)" stop="(.*)" channel="(.*)">|<programme start="$start" stop="$stop" channel="$channel">|;
    }

    # Canonicalise the ratings.
    s|\s+<rating system=".*">\n||;
    s|\s+</rating>\n||;
    s|\s+<value></value>\n||;
    s|(\s+)<value>(.*)</value>|$in$in<rating system="ABA">\n$in$in$in<value>$2</value>\n$in$in</rating>|;

    print;
}