root/trunk/install/perl/updatem2pfiletable.pl

リビジョン 57, 1.5 kB (コミッタ: sorshi, コミット時期: 17 年 前)

AutoCommit?を使用せずに高速化をした。

  • svn:executable 属性の設定値:
Line 
1 #!/usr/bin/perl
2 #
3 # Anime recording system foltia
4 # http://www.dcc-jpl.com/soft/foltia/
5 #
6 # usage :updatem2pfiletable.pl
7 #
8 # m2pfileのリストをテーブルに入れる
9 # 全deleteして更新する
10 # おもにメンテナンス用
11 # または一日一回ぐらいcronで実行させてもいいかも
12 #
13 # DCC-JPL Japan/foltia project
14 #
15
16 use DBI;
17 use DBD::Pg;
18
19 $path = $0;
20 $path =~ s/updatem2pfiletable.pl$//i;
21 if ($pwd  ne "./"){
22 push( @INC, "$path");
23 }
24
25 require "foltialib.pl";
26         my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d",
27                 $DBDriv,$DBName,$DBHost,$DBPort);
28          $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;;
29
30 $dbh->{AutoCommit} = 0;
31 # ひとまず消す
32 $query =  "DELETE  FROM  foltia_m2pfiles  ";
33          $sth = $dbh->prepare($query);
34         $sth->execute();
35
36 while ($file = glob("$recfolderpath/*.m2p")) {
37 $file =~ s/$recfolderpath\///;
38 $query =  "insert into  foltia_m2pfiles values ('$file')";
39 $oserr = $dbh->do($query);
40 # print "$file\n";
41 }#while
42 $oserr = $dbh->commit;
43
44 # foltia_mp4files
45 # ひとまず消す
46 $query =  "DELETE  FROM  foltia_mp4files  ";
47          $sth = $dbh->prepare($query);
48         $sth->execute();
49
50 @mp4filelist = `find ${recfolderpath}/ | grep MP4`;#by foltia dev ticket #5 http://www.dcc-jpl.com/foltia/ticket/5
51
52 foreach (@mp4filelist) {
53 chomp();
54 s/$recfolderpath\///;
55 @fileline = split (/\//);
56 $filetid = $fileline[0];
57 $filetid =~ s/[^0-9]//g;
58
59 $query =  "insert into  foltia_mp4files values ('$filetid','$fileline[2]')";
60 $oserr = $dbh->do($query);
61 #print "$filetid;$fileline[2];$query\n"
62 # http://www.atmarkit.co.jp/fnetwork/rensai/sql03/sql1.html
63
64 }
65 $oserr = $dbh->commit;
66
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。
track feed