Legend:
- Unmodified
- Added
- Removed
-
shepherd
r27 r29 59 59 60 60 my $timeslot_size = (15 * 60); # 15 minute slots 61 my $channel_ok_threshold_percent = 90; # 90% these may need to be tweaked but look ok for now 62 my $postprocessor_ok_threshold_percent = 80; # 80% these may need to be tweaked but look ok for now 63 my $postprocessor_disable_failure_threshold = 5; # number of times a postprocessor has to fail in a row before it is automatically disabled 61 my $channel_ok_threshold_percent = 90; # 90% these may need to be 62 # tweaked but look ok for now 63 my $postprocessor_ok_threshold_percent = 80; # 80% these may need to be 64 # tweaked but look ok for now 65 my $postprocessor_disable_failure_threshold = 5;# number of times a 66 # postprocessor has to fail 67 # in a row before it is 68 # automatically disabled 64 69 65 70 my $opt; … … 69 74 my $debug = 1; 70 75 my $grabbers = { }; 71 my $ postprocessors = { };76 my $gscore; 72 77 my $preferred; # obsolete but may still exist in shepherd.conf 73 78 my $region; … … 78 83 79 84 # postprocessing 85 my $postprocessors = { }; 80 86 my $langs = [ 'en' ]; 81 87 my $num_timeslots; … … 130 136 } 131 137 132 &set_order(0,$opt->{setorder}) if ($opt->{setorder}); 133 &check() if ($opt->{check}); 134 135 if ($opt->{enable} or $opt->{disable} or $opt->{setorder} or $opt->{check} or $opt->{mirror}) 138 if ($opt->{setorder}) 139 { 140 set_order(0, $opt->{setorder}); 141 } 142 143 if ($opt->{check}) 144 { 145 check(); 146 } 147 148 if ($opt->{enable} or 149 $opt->{disable} or 150 $opt->{setorder} or 151 $opt->{check} or 152 $opt->{mirror}) 136 153 { 137 154 set_order(1) if $made_changes; … … 187 204 my $need_more_data = 1; 188 205 189 printf "\nGrabber stage:\n"; 190 191 # iterate across grabbers until we have all our data we want (or need) 192 foreach my $grabber (sort { $grabbers->{$a}->{order} <=> $grabbers->{$b}->{order} } keys %$grabbers) { 193 next if ($grabbers->{$grabber}->{disabled}); 206 print "\nGrabber stage:\n"; 207 208 my $grabber; 209 210 while ($grabber = choose_grabber()) 211 { 194 212 $used_grabbers++; 195 213 … … 197 215 $grabbers->{$grabber}->{laststatus} = "unknown"; 198 216 199 printf "\nSHEPHERD: Using grabber: (%d) %s\n", $grabbers->{$grabber}->{order},$grabber;217 printf "\nSHEPHERD: Using grabber: (%d) %s\n", $used_grabbers, $grabber; 200 218 201 219 my $output = "$GRABBER_DIR/$grabber/output.xmltv"; … … 243 261 return; 244 262 } 263 } 264 265 sub choose_grabber 266 { 267 unless (defined $gscore) 268 { 269 foreach (keys %$grabbers) 270 { 271 unless ($grabbers->{$_}->{disabled}) 272 { 273 $gscore->{$_} = 0; 274 } 275 } 276 } 277 278 my $total = score_grabbers(); 279 280 print "Scoring unused valid grabbers:\n" . Dumper($gscore); 281 282 return undef unless (scalar keys %$gscore); 283 284 my $r = int(rand($total)); 285 # print "Total score: $total.\nRand: $r.\n"; 286 287 my $c = 0; 288 foreach (keys %$gscore) 289 { 290 if ($r >= $c and $r < ($c + $gscore->{$_})) 291 { 292 delete $gscore->{$_}; 293 return $_; 294 } 295 $c += $gscore->{$_}; 296 } 297 die "ERROR: failed to choose grabber."; 298 } 299 300 sub score_grabbers 301 { 302 my ($score, $total); 303 foreach (keys %$gscore) 304 { 305 $score = 10; 306 $gscore->{$_} = $score; 307 $total += $score; 308 } 309 return $total; 245 310 } 246 311
