[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/wiki/doc/tavi-docs/ -> maint.pl (source)

   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  


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7