Changeset 506
- Timestamp:
- 02/10/07 16:26:37 (6 years ago)
- Files:
-
- 3 modified
-
grabbers/sbsnews_website (modified) (11 diffs)
-
grabbers/sbsnews_website.conf (modified) (1 diff)
-
status (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
grabbers/sbsnews_website
r504 r506 15 15 16 16 my $progname = "sbsnews_website"; 17 my $version = "0.0 5";17 my $version = "0.06"; 18 18 19 19 use LWP::UserAgent; … … 30 30 my $script_start_time = time; 31 31 my %stats; 32 my $channels, my $opt_channels ;32 my $channels, my $opt_channels, my $gaps; 33 33 my $tv_guide; 34 34 … … 58 58 'offset=i' => \$opt->{offset}, 59 59 'channels_file=s' => \$opt->{channels_file}, 60 'gaps_file=s' => \$opt->{gaps_file}, 60 61 'output=s' => \$opt->{outputfile}, 61 62 'fast' => \$opt->{fast}, … … 88 89 $starttime += (86400 * $opt->{offset}); 89 90 90 &log(sprintf "going to fetch %d days%s of data into %s (%s)", 91 &log(sprintf "going to %sfetch %d days%s of data into %s (%s)", 92 (defined $opt->{gaps_file} ? "micro-gap " : ""), 91 93 $opt->{days}, 92 94 ($opt->{offset} ? " (skipping first $opt->{offset} days)" : ""), … … 99 101 no warnings 'all'; eval <>; die "$@" if $@; 100 102 } else { 101 die "WARNING: channels file $opt->{channels_file} could not be read \n";103 die "WARNING: channels file $opt->{channels_file} could not be read: $!\n"; 102 104 } 103 105 … … 106 108 die "no SBSNEWS channel found in channel lineup from $opt->{channels_file}\n" 107 109 unless (defined $channels->{'SBS News'}); 110 111 if (defined $opt->{gaps_file}) { 112 if (-r $opt->{gaps_file}) { 113 local (@ARGV, $/) = ($opt->{gaps_file}); 114 no warnings 'all'; eval <>; die "$@" if $@; 115 } else { 116 die "WARNING: gaps file $opt->{gaps_file} could not be read: $!\n"; 117 } 118 119 die "no SBSNEWS channel in gaps lineup, nothing to do!\n" 120 unless ((defined $gaps) && (defined $gaps->{'SBS News'})); 121 } 108 122 109 123 &get_sbsnews_data($starttime,$endtime); … … 130 144 --lang=[s] set language of xmltv output data (default $opt->{lang}) 131 145 --channels_file=file where to get channel data from 146 --gaps_file=file micro-fetch gaps only 147 132 148 EOF 133 149 ; … … 291 307 next if ($progname eq ""); 292 308 293 my $progstart = strftime "%Y%m%d%H%M",localtime(($start_time + $day_range[($column_is_day[$col])]));294 my $progstop = strftime "%Y%m%d%H%M",localtime(($stop_time + $day_range[($column_is_day[$col])]));295 296 &log((sprintf "got prog col %d: start=%d (%s), stop=%d (%s), '%s', day=%d",297 $col,$start_time,$progstart,$stop_time,$progstop,$progname,$column_is_day[$col]))298 if $opt->{debug};299 300 309 my $prog; 301 310 $prog->{channel} = $channels->{'SBS News'}; 302 311 $prog->{title} = [[ $progname, $opt->{lang} ]]; 303 $prog->{start} = $progstart; 304 $prog->{stop} = $progstop; 312 $prog->{starttime} = $start_time + $day_range[($column_is_day[$col])]; 313 $prog->{stoptime} = $stop_time + $day_range[($column_is_day[$col])]; 314 305 315 $prog->{category} = [[ 'News', undef ]] if ($progname =~ /News/i); 306 316 $prog->{daynum} = ($day_range[($column_is_day[$col])] - $currtime) / (60*60*24); 307 317 308 $tv_guide->{$progstart} = $prog; 318 $tv_guide->{($prog->{starttime})} = $prog; 319 320 &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])) 322 if $opt->{debug}; 323 309 324 $stats{seen_progs}++; 310 325 } … … 350 365 my ($raw, $page, $base); 351 366 352 $retrycount = 5if ($retrycount == 0);367 $retrycount = 8 if ($retrycount == 0); 353 368 my $request = HTTP::Request->new(GET => $url); 354 369 $request->header('Accept-Encoding' => 'gzip'); … … 362 377 363 378 $stats{http_failed_requests}++; 364 $stats{slept_for} += 10;365 sleep 10;379 $stats{slept_for} += 20; 380 sleep 20; 366 381 } 367 382 if (!($response->is_success)) { … … 449 464 if (($tv_guide->{$prog}->{daynum} >= $opt->{offset}) && 450 465 ($tv_guide->{$prog}->{daynum} < $opt->{days})) { 466 467 # if we are fetching microgaps, skip if this isn't 468 # in a micro-gap 469 if (defined $opt->{gaps_file}) { 470 my $found_gap_match = 0; 471 foreach my $g (@{($gaps->{'SBS News'})}) { 472 my ($s, $e) = split(/-/,$g); 473 474 $found_gap_match = 1 if 475 ((($s >= $tv_guide->{$prog}->{starttime}) && 476 ($s <= $tv_guide->{$prog}->{stoptime})) || 477 (($e >= $tv_guide->{$prog}->{starttime}) && 478 ($e <= $tv_guide->{$prog}->{stoptime})) || 479 (($s <= $tv_guide->{$prog}->{starttime}) && 480 ($e >= $tv_guide->{$prog}->{stoptime}))); 481 } 482 if (!$found_gap_match) { 483 $stats{gaps_skipped}++; 484 next; 485 } else { 486 $stats{gaps_included}++; 487 } 488 } 489 490 $tv_guide->{$prog}->{start} = POSIX::strftime("%Y%m%d%H%M",localtime($tv_guide->{$prog}->{starttime})); 491 $tv_guide->{$prog}->{stop} = POSIX::strftime("%Y%m%d%H%M",localtime($tv_guide->{$prog}->{stoptime})); 451 492 delete $tv_guide->{$prog}->{daynum}; 493 delete $tv_guide->{$prog}->{starttime}; 494 delete $tv_guide->{$prog}->{stoptime}; 452 495 &cleanup($tv_guide->{$prog}); 453 496 -
grabbers/sbsnews_website.conf
r271 r506 9 9 'max_days' => 7, 10 10 'category' => 2, 11 'micrograbs' => 1, 11 12 'quality' => 3, 12 13 'max_runtime' => '2', -
status
r505 r506 4 4 grabber abc_website 2.07 5 5 grabber abc2_website 2.07 6 grabber sbsnews_website 0.0 56 grabber sbsnews_website 0.06 7 7 grabber oztivo 0.14 8 8 grabber jrobbo 0.06
