[ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
1 #!/usr/bin/perl 2 3 # $Id: maint.pl 9853 2003-03-04 21:21:05Z ralfbecker $ 4 # 5 # This script is used by WikkiTikkiTavi versions 0.1 and greater to maintain 6 # the list of known remote pages. This is used by the TwinPages feature. 7 # Typically, it will be set up as a cron job to run periodically (e.g., 8 # once per week). 9 # 10 # See http://tavi.sourceforge.net/SisterWiki for more information. 11 12 $database = ""; # Database name. 13 $user = ""; # Database use name. 14 $pass = ""; # Database password. 15 $prefix = ""; # Table name prefix (e.g. "wiki_"). 16 $linkptn = "([A-Z][a-z]+[A-Z][A-Za-z]*(/[A-Z][A-Za-z]+)?)"; 17 18 use DBI; 19 20 $dbh = DBI->connect("DBI:mysql:$database:127.0.0.1", $user, $pass) 21 or die "Connecting: $DBI::errstr\n"; 22 23 sub insert_page 24 { 25 my ($page) = @_; 26 my ($qid); 27 28 $qid = $dbh->prepare("SELECT page FROM " . $prefix . "remote_pages " . 29 "WHERE site='$site' and page='$page'"); 30 $qid->execute; 31 if(!$qid->fetchrow_hashref) 32 { 33 $qid = $dbh->prepare("INSERT INTO " . $prefix . "remote_pages " . 34 "VALUES('$page', '$site')"); 35 $qid->execute; 36 } 37 38 return ""; 39 } 40 41 $qid = $dbh->prepare("SELECT prefix, url FROM " . $prefix . "sisterwiki)"); 42 $qid->execute; 43 44 while($row = $qid->fetchrow_hashref) 45 { 46 $site = $row->{'prefix'}; 47 print "Scanning $site\n"; 48 49 $_ = "lynx -source " . $row->{'url'}; 50 s/&/\\&/g; 51 s/;/\\;/g; 52 $html = `$_`; 53 54 $q2 = $dbh->prepare("DELETE FROM " . $prefix . "remote_pages " . 55 "WHERE site='$site'"); 56 $q2->execute; 57 58 foreach(split(/\n/, $html)) 59 { 60 s/<[Aa].*>($linkptn)<\/[Aa]>/&insert_page($1)/geo; 61 } 62 } 63
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |