4

I had an issue that bots/spammers have created hundreds of users on our mediawiki page.

They are not harmful, since a user needs to be confirmed before it can edit, and neither have been.

I have now installed a captcha to stop that - http://www.mediawiki.org/wiki/Extension:ConfirmEdit

How can I clean this huge list of users? *it spans over more than a day

enter image description here

Saariko
  • 827
  • 9
  • 20
  • 38
  • Write a `DELETE` query that will delete every user with the creation date between `00:00:01` and `23:59:59` on `May 28 2013`. – Ramhound May 28 '13 at 14:00
  • 2
    @Ramhound I'm not sure that this is limited to that one day, the screenshot probably doesn't list all the spammer users. Also, what if a legitimate user was created on that day? – svick May 28 '13 at 14:12
  • @svick - All important information to have in the question. A egitimate user would just create their account again. – Ramhound May 28 '13 at 14:27
  • 2
    It sounds like your question is "How do I delete all non-confirmed users?" – daxlerod May 28 '13 at 14:27

2 Answers2

2

You can try using the following extension called UserMerge: http://www.mediawiki.org/wiki/Extension:UserMerge

With UserMerge can merge the offending accounts into one and then delete the remaining account. I don't know if UserMerge will allow you to merge en mass; if not it may not be an ideal solution.

You can also use Nuke to mass delete pages created by an offending account: http://www.mediawiki.org/wiki/Extension:Nuke

Also a similar post on StackOverflow gives instructions on how to use SQL to neutralize an account: https://stackoverflow.com/questions/10706451/mediawiki-mass-user-delete-merge-block

Best of luck! I have had the same problem on my Mediawiki install.

Gedalya
  • 945
  • 1
  • 7
  • 13
0

I was unable to find a solution for the mass user delete so this is what I did in the end:

Deleted all pages added by spammers using: http://www.mediawiki.org/wiki/Extension:Nuke

then log into mysql:

 mysql -h localhost -u user -p passwrd db_name

and there:

 DELETE FROM db_name WHERE NOT user_name='Admin'

It may leave some inconsitencies but so far it seems to work fine.