Changeset 187 for tv_grab_au

Show
Ignore:
Timestamp:
11/06/06 18:28:37 (7 years ago)
Author:
max
Message:

Respect option_ready; version bump for split tv_grab_au

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • tv_grab_au

    r185 r187  
    11#!/usr/bin/perl -w 
    22 
     3my $version = '0.3.1'; 
     4 
     5# tv_grab_au 
    36# "Shepherd" 
    47# A wrapper for various Aussie TV guide data grabbers 
     
    2225#                        (e.g. flag HDTV programmes, augment with IMDb etc.) 
    2326 
    24 my $version = '0.2.32'; 
    25  
    2627# Changelog: 
    27 # 0.1.0   : Basic self-updating and grabber management 
    28 # 0.2.0   : --configure 
    29 # 0.2.1   : Has a home in ~/.shepherd/ 
    30 # 0.2.2   : --check 
    31 # 0.2.3   : Bugfix: archives correctly 
    32 # 0.2.5   : Multi-grabber (potentially with partial data) 
    33 # 0.2.6   : Postprocessor support 
    34 # 0.2.7   : Changed online file structure 
    35 # 0.2.8   : Integrated reconciler 
    36 # 0.2.9   : Grabber config support 
    37 # 0.2.10  : Bugfix: don't call postprocessors that aren't ready, 
    38 #           rework accept-data-or-not postprocessor logic 
    39 # 0.2.11  : Dedicated external reconciler support 
    40 # 0.2.13  : revert 'alawys run' added in 0.2.12, --setorder bugfix 
    41 # 0.2.14  : Changed online status file format 
    42 # 0.2.15  : Intelli-random grabber ordering now kinda works 
    43 # 0.2.16  : config logic for HD channels 
    44 # 0.2.17  : bugfix timezone bogosities 
    45 # 0.2.18  : care less about missing data in early-morning/overnight 
    46 #           care more about missing data in evening/night 
    47 # 0.2.22  : remove ->{order}, order is now set by quality 
    48 #           explicitly tell reconciler the preferred _title_ source 
    49 # 0.2.24  : logging and log files 
    50 # 0.2.25  : use open-with-pipe rather than system() and look at 
    51 #           return codes from called programmes 
    52 # 0.2.27  : Identify self in useragent when fetching shepherd files 
    53 # 0.2.28  : Changing status file format again 
    54 # 0.2.30  : Run transitional grabber(s) as a once-off to establish preferred 
    55 #           title translations. 
    5628# 0.2.31  : split tv_grab_au (install/test/upgrade/enable/disable) from 
    57 #           shepherd (grab/reconcile/postprocess) 
     29#           shepherd (grab/reconcile/postprocess). Previous changelog history 
     30#           is in shepherd 
     31# 0.3.0   : This split deserves a real version bump, Linc! :) 
     32# 0.3.1   : honour $option_ready 
    5833 
    5934BEGIN { *CORE::GLOBAL::die = \&my_die; } 
     
    263238 
    264239    my $rdir = ""; 
    265     my $ldir = $CWD; 
     240    my $ldir = query_ldir($proggy, $progtype); 
    266241 
    267242    if ($progtype ne "shepherd") { 
    268243        $rdir = $progtype . "s"; 
    269         $ldir = "$CWD/$progtype" . "s/$proggy"; 
    270         -d ("$CWD/$progtype" . "s") or mkdir ("$CWD/$progtype" . "s") or die "Cannot create directory $CWD/$progtype" . "s: $!"; 
     244        -d ("$CWD/$progtype" . "s")  
     245            or mkdir ("$CWD/$progtype" . "s")  
     246            or die "Cannot create directory $CWD/$progtype" . "s: $!"; 
    271247    } 
    272248    -d $ldir or mkdir $ldir or die "Cannot create directory $ldir: $!"; 
     
    308284    } 
    309285 
    310     my $result = test_proggy($ldir,"$ldir/$proggy"); 
     286    my $result = test_proggy($proggy, $progtype); 
    311287 
    312288    $components->{$proggy}->{type} = $progtype; 
     
    346322sub test_proggy 
    347323{ 
    348     my ($testdir,$proggyexec) = @_; 
    349  
    350     &log("Testing $proggyexec...\n"); 
    351  
    352     chdir($testdir); 
    353     my $result = call_prog("$proggyexec --ready"); 
     324    my ($proggy, $progtype) = @_; 
     325 
     326    &log("Testing $proggy...\n"); 
     327 
     328    my $ldir = query_ldir($proggy, $progtype); 
     329    my $opt_ready = query_config($proggy, 'option_ready'); 
     330    $opt_ready ||= '--version'; 
     331     
     332    chdir($ldir); 
     333    print "Executing $proggy $opt_ready in $ldir.\n"; 
     334    my $result = call_prog(query_filename($proggy, $progtype) . " $opt_ready"); 
    354335    chdir ($CWD); 
    355336 
     
    358339    if ($result) 
    359340    { 
    360         &log("\nComponent $proggyexec did not exit cleanly!\n" . 
     341        &log("\n" . ucfirst($progtype) . " $proggy did not exit cleanly!\n" . 
    361342             "It may require configuration.\n\n"); 
    362343    } 
     
    404385    foreach my $proggy (keys %$components) { 
    405386        my $progtype = $components->{$proggy}->{type}; 
    406         $result = test_proggy("$CWD/$progtype" . "s/$proggy", "$CWD/$progtype" . "s/$proggy/$proggy"); 
     387        $result = test_proggy($proggy, $components->{$proggy}->{type}); 
    407388        if (!$result ne !$components->{$proggy}->{ready}) { 
    408389            $components->{$proggy}->{ready} = $result; 
     
    457438    } 
    458439    return $str; 
     440} 
     441 
     442sub query_filename 
     443{ 
     444    my ($proggy, $progtype) = @_; 
     445 
     446    return query_ldir($proggy, $progtype) . "/$proggy"; 
     447} 
     448 
     449sub query_ldir 
     450{ 
     451    my ($proggy, $progtype) = @_; 
     452    my $ret = $CWD; 
     453    $ret .= ('/' . $progtype . "s/$proggy") if ($progtype ne 'shepherd'); 
     454    return $ret; 
    459455} 
    460456