OSDN Git Service

update to db ver 102
[rec10/rec10-git.git] / rectool / trunk / rectool.pl
index 940a264..fa4a478 100755 (executable)
@@ -14,12 +14,12 @@ use Archive::Zip;
 use CGI;
 use CGI::Carp qw( fatalsToBrowser warningsToBrowser );
 use Config::Simple;
-use Data::Dumper;
+use Data::Dumper::Concise;
 use Date::Simple;
 use DateTime;
 use DBI;
-use MIME::Base64;
 use File::Slurp;
+use MIME::Base64;
 use Sort::Naturally;
 use Time::Piece;
 use Time::Seconds;
@@ -33,7 +33,7 @@ use utf8;
 ################ バージョン定義 ################
 
 
-my $rectool_version = 101;
+my $rectool_version = 102;
 
 
 ################ 初期化ここから ################
@@ -155,16 +155,17 @@ tie %chtxt_0_chname, 'Tie::IxHash';
 
 my $ary_ref = $dbh->selectall_arrayref(
        "SELECT chtxt, chname, ch, bctype FROM epg_ch
-       WHERE visible = 1"
+       WHERE visible = 1
+       AND chname != ''
+       ORDER BY chtxt"
 );
 
 %chtxt_chname = map { $_->[0], $_->[1] } @{$ary_ref};
 
-# NHK BS 1/2/hiをBS/CSから除外(101-103) - by 2011/04
-# te: 地上波、BSのNHK以外
-# bc: BSのNHK、CS
-my @te_ary = grep $_->[0]=~ /^\d|BS_(?!(10|19)[1-3])/, @{$ary_ref};
-my @bc_ary = grep $_->[0]!~ /^\d|BS_(?!(10|19)[1-3])/, @{$ary_ref};
+# te: 地上波
+# bc: BS、CS
+my @te_ary = grep $_->[0]=~ /^\d/, @{$ary_ref};
+my @bc_ary = grep $_->[0]!~ /^\d/, @{$ary_ref};
 
 # teの操作(まとめる)
 foreach my $line ( @te_ary ) {
@@ -1143,12 +1144,9 @@ if ( $mode eq 'list' ) {
        $HTML .= qq {<div>\n};
 
        $script = <<EOM;
-               <link rel="stylesheet" type="text/css" href="http://extjs-public.googlecode.com/svn/tags/extjs-3.4.0/release/resources/css/ext-all.css" />
-               <script type="text/javascript" src="http://extjs-public.googlecode.com/svn/tags/extjs-3.4.0/release/adapter/ext/ext-base.js"></script>
-               <script type="text/javascript" src="http://extjs-public.googlecode.com/svn/tags/extjs-3.4.0/release/ext-all.js"></script>
-               <style type="text/css">
-                       .x-tip-body { font-size: 16px; }
-               </style>
+               <link rel="stylesheet" type="text/css" href="http://cdn.sencha.io/ext-3.4.0/resources/css/ext-all.css" />
+               <script type="text/javascript" src="http://cdn.sencha.io/ext-3.4.0/adapter/ext/ext-base.js"></script>
+               <script type="text/javascript" src="http://cdn.sencha.io/ext-3.4.0/ext-all.js"></script>
                <script>
                Ext.onReady(function() {
                  Ext.select('.ffmpeg').on('contextmenu', function(eventObj, elRef) {
@@ -1348,18 +1346,12 @@ EOM
        }
 
        sub simple_list {
-               require Encode;
-
                local $path = shift;
                local @list = ();
 
                &get_file_list_wrapper( $path, \&simple_wanted );
 
-#              @list = sort @list;
-               # natural sortを行う
-                       #@list = map( Encode::decode_utf8( $_ ), @list );
-                       @list = nsort @list;
-                       #@list = map( Encode::encode_utf8( $_ ), @list );
+               @list = nsort @list;
 
                foreach ( @list ) {
                        $HTML .= "$_<br>\n";
@@ -1817,7 +1809,7 @@ if ( $mode eq 'expert' ) {
 
 
        $ary_ref = $dbh->selectall_arrayref( 
-               "SELECT chname, chtxt, bctype, ch, csch, updatetime, status, visible 
+               "SELECT chname, chtxt, bctype, ch, csch, tsid, updatetime, status, visible 
                FROM epg_ch 
                ORDER BY bctype " );
        $HTML .= qq {<hr>\n番組表の更新状況<br>\n};
@@ -1827,6 +1819,7 @@ if ( $mode eq 'expert' ) {
        $HTML .= qq {<th>bctype</th>\n};
        $HTML .= qq {<th>ch</th>\n};
        $HTML .= qq {<th>csch</th>\n};
+       $HTML .= qq {<th>tsid</th>\n};
        $HTML .= qq {<th>最終更新時刻</th>\n};
        $HTML .= qq {<th>状態</th>\n};
        $HTML .= qq {<th>表示</th>\n};
@@ -1835,6 +1828,7 @@ if ( $mode eq 'expert' ) {
                $HTML .= qq {<tr>\n};
                $HTML .= qq {<td>$status->[0]</td>\n<td>$status->[1]</td>\n<td>$status->[2]</td>\n<td>$status->[3]</td>\n};
                $HTML .= qq {<td>$status->[4]</td>\n<td>$status->[5]</td>\n<td>$status->[6]</td>\n<td>$status->[7]</td>\n};
+               $HTML .= qq {<td>$status->[8]</td>\n};
                $HTML .= qq {</tr>\n};
        }
        $HTML .= qq {</table>\n};
@@ -1850,7 +1844,7 @@ if ( $mode eq 'expert' ) {
                FROM epg_ch WHERE bctype NOT LIKE '_s%' "
        );
        foreach my $line ( @{$ary_ref} ) {
-               $HTML .= qq {<option value="$line->[1]">$line->[0]</option>\n};
+               $HTML .= qq {<option value="$line->[1]">$line->[1]</option>\n};
        }
        $HTML .= qq {<option value="bs">BS</option>\n};
        $HTML .= qq {<option value="cs1">CS1</option>\n};
@@ -1933,7 +1927,7 @@ if ( $mode eq 'test' ) {
        $HTML =~ s|%REFRESH%|<meta http-equiv="refresh" content="300">|;
        $HTML .= qq {<div>\n};
 
-       require Data::Dumper;
+       require Data::Dumper::Concise;
        $tmp = read_file( '/etc/rec10.conf' );
        $tmp =~ s/\n/<br>\n/gs;
        $HTML .= $tmp;
@@ -2171,6 +2165,7 @@ sub parse_program {
        $bayesid = $params{ 'bayesid' };
        $id      = $params{ 'id' };
 
+       # chtxt と chname を相互に補完
        if ( $chname ) {
                $chtxt = $dbh->selectrow_array("SELECT chtxt FROM epg_ch WHERE chname = '$chname'");
        }
@@ -2182,6 +2177,8 @@ sub parse_program {
        elsif ( $chtxt ) {
                $chname = $dbh->selectrow_array("SELECT chname FROM epg_ch WHERE chtxt = '$chtxt'")
        }
+
+       # EPGから番組の情報を取得
        ( $title, $desc, $longdesc, $category ) = $dbh->selectrow_array(
                "SELECT title, exp, longexp, category
                FROM epg_timeline 
@@ -2375,8 +2372,6 @@ sub str2readable {
 }
 
 sub sqlgetsuggested {
-       require Encode;
-
        my ( $btime, $etime ) = @_;
        $deltatime = 3 if ( !$deltatime );