Changeset 520

Show
Ignore:
Timestamp:
02/14/07 14:58:00 (6 years ago)
Author:
lincoln
Message:

update sbsnews_website: process subtitle correctly, plus Paul pointed out i botched the previous regex time update!

Files:
2 modified

Legend:

Unmodified
Added
Removed
  • grabbers/sbsnews_website

    r513 r520  
    1515 
    1616my $progname = "sbsnews_website"; 
    17 my $version = "0.07"; 
     17my $version = "0.08"; 
    1818 
    1919use LWP::UserAgent; 
     
    192192        my @seen_day_tag, my @column_is_day, my @column_maps_to_time; 
    193193        my @time_column_wrapped_over_midnight; 
     194        my @prev_row_prog_tag; 
    194195 
    195196        my $seen_time_tag_column = -1; 
     
    254255                                        # soak up the data! 
    255256                                        $row[$td_count] = $td1->as_text(); 
     257                                        $row[$td_count] =~ s/(^\s+|\s+$)//g; 
    256258                                        &log((sprintf "stored row data %d: '%s'", $td_count, $td1->as_text())) if $opt->{debug}; 
    257259                                } else { 
     
    276278                                # parse time from $row[$tcol] ... format is "13:30-13:50" 
    277279                                my $start_time = -1, my $stop_time = -1; 
    278                                 if ($row[$tcol] =~ /^(\d{1,2}):(\d{1,2})?\- ?(\d{1,2}):(\d{1,2})$/) { 
     280                                if ($row[$tcol] =~ /^(\d{1,2}):(\d{1,2})\s*\-\s*(\d{1,2}):(\d{1,2})$/) { 
    279281                                        $start_time = ($1*60*60)+($2*60); 
    280282                                        $stop_time = ($3*60*60)+($4*60); 
    281                                 } 
    282  
    283                                 # skip sometimes-subtitle-line (but not always) 
    284                                 next if (($start_time == -1) || ($stop_time == -1)); 
     283                                } else { 
     284                                        &log("couldn't match start/stop time from '".$row[$tcol]."' in column $tcol") if $opt->{debug}; 
     285                                } 
     286 
     287                                # sometimes-subtitle-line (but not always) 
     288                                # if previous line had a programme in this slot and can't match a time, 
     289                                # use this row data as a sub-title for the programme 
     290                                if (($start_time == -1) || ($stop_time == -1)) { 
     291                                        foreach my $col (0..$td_count) { 
     292                                                if ((defined $column_is_day[$col]) && 
     293                                                    (defined $column_maps_to_time[$col]) && 
     294                                                    ($column_maps_to_time[$col] == $tcol) && 
     295                                                    (defined $prev_row_prog_tag[$col])) { 
     296                                                        if ($row[$col] ne "") { 
     297                                                                &log("added subtitle '".$row[$col]."' from col $col to previous-row prog '". 
     298                                                                  $tv_guide->{$prev_row_prog_tag[$col]}->{title}->[0]->[0]."'") if $opt->{debug}; 
     299 
     300                                                                $tv_guide->{$prev_row_prog_tag[$col]}->{'sub-title'} = [[ $row[$col], $opt->{lang} ]]; 
     301                                                        } 
     302                                                        $prev_row_prog_tag[$col] = undef; 
     303                                                } 
     304                                        } 
     305                                        next; 
     306                                } 
    285307 
    286308                                # apply midnight-wrapping if seen a previous wrap-over-midnight 
     
    303325                                            (defined $column_maps_to_time[$col]) && 
    304326                                            ($column_maps_to_time[$col] == $tcol)) { 
    305                                                 my $progname = $row[$col]; 
    306                                                 $progname =~ s/(^\s+|\s+$)//g; 
    307                                                 next if ($progname eq ""); 
     327                                                next if ($row[$col] eq ""); 
    308328 
    309329                                                my $prog; 
    310330                                                $prog->{channel} = $channels->{'SBS News'}; 
    311                                                 $prog->{title} = [[ $progname, $opt->{lang} ]]; 
     331                                                $prog->{title} = [[ $row[$col], $opt->{lang} ]]; 
    312332                                                $prog->{starttime} = $start_time + $day_range[($column_is_day[$col])]; 
    313333                                                $prog->{stoptime} = $stop_time + $day_range[($column_is_day[$col])]; 
     
    317337 
    318338                                                $tv_guide->{($prog->{starttime})} = $prog; 
     339                                                $prev_row_prog_tag[$col] = $prog->{starttime}; 
    319340 
    320341                                                &log((sprintf "got prog col %d: start=%d (%s), stop=%d (%s), '%s', day=%d", 
    321                                                   $col,$start_time,$prog->{starttime},$stop_time,$prog->{stoptime},$progname,$column_is_day[$col])) 
     342                                                  $col,$start_time,$prog->{starttime},$stop_time,$prog->{stoptime},$row[$col],$column_is_day[$col])) 
    322343                                                  if $opt->{debug}; 
    323344 
  • status

    r519 r520  
    44grabber         abc_website         2.07 
    55grabber         abc2_website        2.07 
    6 grabber         sbsnews_website     0.07 
     6grabber         sbsnews_website     0.08 
    77grabber         oztivo              0.15 
    88grabber         jrobbo              0.06