📄 maint.pl
字号:
#!/usr/bin/perl
# $Id: maint.pl,v 1.1 2003/03/04 21:21:04 ralfbecker Exp $
#
# This script is used by WikkiTikkiTavi versions 0.1 and greater to maintain
# the list of known remote pages. This is used by the TwinPages feature.
# Typically, it will be set up as a cron job to run periodically (e.g.,
# once per week).
#
# See http://tavi.sourceforge.net/SisterWiki for more information.
$database = ""; # Database name.
$user = ""; # Database use name.
$pass = ""; # Database password.
$prefix = ""; # Table name prefix (e.g. "wiki_").
$linkptn = "([A-Z][a-z]+[A-Z][A-Za-z]*(/[A-Z][A-Za-z]+)?)";
use DBI;
$dbh = DBI->connect("DBI:mysql:$database:127.0.0.1", $user, $pass)
or die "Connecting: $DBI::errstr\n";
sub insert_page
{
my ($page) = @_;
my ($qid);
$qid = $dbh->prepare("SELECT page FROM " . $prefix . "remote_pages " .
"WHERE site='$site' and page='$page'");
$qid->execute;
if(!$qid->fetchrow_hashref)
{
$qid = $dbh->prepare("INSERT INTO " . $prefix . "remote_pages " .
"VALUES('$page', '$site')");
$qid->execute;
}
return "";
}
$qid = $dbh->prepare("SELECT prefix, url FROM " . $prefix . "sisterwiki)");
$qid->execute;
while($row = $qid->fetchrow_hashref)
{
$site = $row->{'prefix'};
print "Scanning $site\n";
$_ = "lynx -source " . $row->{'url'};
s/&/\\&/g;
s/;/\\;/g;
$html = `$_`;
$q2 = $dbh->prepare("DELETE FROM " . $prefix . "remote_pages " .
"WHERE site='$site'");
$q2->execute;
foreach(split(/\n/, $html))
{
s/<[Aa].*>($linkptn)<\/[Aa]>/&insert_page($1)/geo;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -