Mediawiki - Removendo Spam
O seguinte documentação funcionado da seguinte forma:
- adicionar os usuários humanos no grupo "human"
- Para isso vá em Páginas Especiais > Gesrior
ou pela linha de comando no MySQL
INSERT INTO mw_user_groups ( ug_user, ug_group ) VALUES ( 3, "human");
O conjunto queries usados foram:
remove o conteúdo de mw_categorylinks
<source lang="mysql">
delete
from mw_categorylinks
where cl_from in (select pg.page_id
from mw_page pg where pg.page_id in (select rev_page from `mw_revision` where `rev_user` not in(select ug_user from mw_user_groups) and `rev_timestamp` in (select MIN(`rev_timestamp`) from `mw_revision` group by rev_page) )
); </source>
remove o conteúdo de mw_pagelinks
<source lang="mysql">
delete
from mw_pagelinks
where pl_from in (select pg.page_id
from mw_page pg where pg.page_id in (select rev_page from `mw_revision` where `rev_user` not in(select ug_user from mw_user_groups) and `rev_timestamp` in (select MIN(`rev_timestamp`) from `mw_revision` group by rev_page) )
); </source>
remove o conteúdo de mw_externallinks <source lang="mysql"> delete from mw_externallinks where el_from in (select pg.page_id
from mw_page pg where pg.page_id in (select rev_page from `mw_revision` where `rev_user` not in(select ug_user from mw_user_groups) and `rev_timestamp` in (select MIN(`rev_timestamp`) from `mw_revision` group by rev_page) )
); </source>
remove o conteúdo de mw_imagelinks <source lang="mysql"> delete from mw_imagelinks where il_from in (select pg.page_id
from mw_page pg where pg.page_id in (select rev_page from `mw_revision` where `rev_user` not in(select ug_user from mw_user_groups) and `rev_timestamp` in (select MIN(`rev_timestamp`) from `mw_revision` group by rev_page) )
); </source>
remove o conteúdo de mw_user <source lang="mysql"> delete from mw_user where user_id not in(select ug_user from mw_user_groups) </source>
remove o conteúdo de mw_recentchanges <source lang="mysql"> delete from mw_recentchanges where rc_user not in(select ug_user from mw_user_groups) </source>
remove o conteúdo de mw_oldimage <source lang="mysql"> delete from mw_oldimage where oi_user not in(select ug_user from mw_user_groups) </source>
remove o conteúdo de mw_logging <source lang="mysql"> delete from mw_logging where log_user not in(select ug_user from mw_user_groups) </source>
remove o conteúdo de mw_image <source lang="mysql"> delete from mw_image where img_user not in(select ug_user from mw_user_groups) </source>
remove o conteúdo de mw_archive <source lang="mysql"> delete from mw_archive where ar_user not in(select ug_user from mw_user_groups) </source>
remove o conteúdo de page <source lang="mysql"> delete from mw_page where page_id in (select rev_page
from `mw_revision` where `rev_user` not in(select ug_user from mw_user_groups) and `rev_timestamp` in (select MIN(`rev_timestamp`) from `mw_revision` group by rev_page)
) </source>