⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delete-idle-wiki-users.pl

📁 php 开发的内容管理系统
💻 PL
字号:
#!/usr/bin/perl## Nuke idle wiki accounts from the wiki's user database.## Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org)## This program is free software; you can redistribute  it and/or modify it# under  the terms of  the GNU General  Public License as published by the# Free Software Foundation;  either version 2 of the  License, or (at your# option) any later version.## THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED# WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN# NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT# NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF# USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON# ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.## You should have received a copy of the  GNU General Public License along# with this program; if not, write  to the Free Software Foundation, Inc.,# 675 Mass Ave, Cambridge, MA 02139, USA.#my $database = "DBI:mysql:database=wikidb;host=localhost";my $dbuser   = "wikiuser";my $dbpasswd = "password";use strict;use DBI();my $verbose = 0;my $for_real = 1;sub do_db_op{	my ($dbh, $sql) = @_;	if ($verbose >= 3) {		print $sql . ";\n"	}	if ($for_real == 1) {		$dbh->do($sql);	}}sub undo_user{	my ($ref, $dbh, $sth, $killed);	# Connect to the database.	$dbh = DBI->connect($database, $dbuser, $dbpasswd, {RaiseError => 1});	$sth = $dbh->prepare("SELECT * FROM user");	$sth->execute();	$ref = $sth->fetchrow_hashref();	if ($sth->rows == 0) {		print "There is no user in this wiki.\n";		return;	}	while ($ref = $sth->fetchrow_hashref()) {		my ($user_id, $user_name, $cph, $oph, $edits);		$user_name = $ref->{user_name};		$user_id = $ref->{user_id};		if ($verbose >= 2) {			print "Annihilating user " . $user_name .			      " has user_id " . $user_id . ".\n";		}		$cph = $dbh->prepare("SELECT * FROM cur where " .		                "cur_user = $user_id" .		                " AND " .		                "cur_user_text = " . $dbh->quote("$user_name"));		$cph->execute();		$oph = $dbh->prepare("SELECT * FROM old where " .		                "old_user = $user_id" .		                " AND " .		                "old_user_text = " . $dbh->quote("$user_name"));		$oph->execute();		$edits = $cph->rows + $oph->rows;		$cph->finish();		$oph->finish();		if ($edits == 0) {			if ($verbose >= 2) {				print "Keeping user " . $user_name .				      ", user_id " . $user_id . ".\n";			}			do_db_op($dbh,		         "DELETE FROM user WHERE user_name = " .		         $dbh->quote("$user_name") .		         " AND " .		         "user_id = $user_id");			$killed++;		}	}	$sth->finish();	$dbh->disconnect();	if ($verbose >= 1) {		print "Killed " . $killed . " users\n";	}}my (@users, $user, $this, $opts);@users = ();$opts = 1;foreach $this (@ARGV) {	if ($opts == 1 && $this eq '-v') {		$verbose++;	} elsif ($opts == 1 && $this eq '--verbose') {		$verbose = 1;	} elsif ($opts == 1 && $this eq '--') {		$opts = 0;	} else {		push(@users, $this);	}}undo_user();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -