0

我实现了一个 mediawiki 网站,但不幸的是,有人通过数千名用户创建了数千个页面。

我可以运行哪个查询来删除这些用户创建的所有页面,但我的除外?

Mediawiki 页面位于 mediawiki 数据库中的 wiki_page 和 wiki_text 中,但没有关于谁创建这些页面的字段。

4

2 回答 2

0

我会以愚蠢的方式去做。

  1. 从 Special:AllPages 或使用https://code.google.com/p/wikiteam/dumpgenerator.py列出所有页面标题
  2. 列出您从 Special:Contributions 和一些正则表达式过滤或使用 WebAPI 创建的所有标题
  3. 使用例如 comm 命令从 1. 中删除 2.
  4. 使用 PyWikipediaBot 中的 delete.py 或deletebatch.php或具有相同名称的扩展来删除所有有问题的标题。

1-3 可以替换为任何其他方式以使列表更适合您,包括数据库查询和 WebAPI,或者只是最近的更改,具体取决于垃圾邮件的创建时间/方式。如果有标题模式,您可以使用 Nuke 扩展。

于 2013-05-26T19:42:39.887 回答
0

我也在处理这个问题。我找到了一些代码来阻止用户创建和编辑,所以它不应该再次发生,但我并不期待一个一个地删除所有垃圾......

将以下内容复制到您的LocalSettings.php:

# Prevent new user registrations by anyone
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['sysop']['createaccount'] = false;

# Disable anonymous editing
$wgGroupPermissions['*']['edit'] = false;

# Prevent new user registrations except by sysops
$wgGroupPermissions['*']['createaccount'] = false;

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = true;
于 2018-02-21T16:48:36.480 回答