Mediawiki - Removendo Spam: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Sem resumo de edição
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 146: Linha 146:
* [[MediaWiki]]
* [[MediaWiki]]
* [http://upload.wikimedia.org/wikipedia/commons/4/41/Mediawiki-database-schema.png Esquema do banco de dados]
* [http://upload.wikimedia.org/wikipedia/commons/4/41/Mediawiki-database-schema.png Esquema do banco de dados]
* http://www.mediawiki.org/wiki/Manual:Combating_spam


Conteúdo liberado sob a licença [[Imagem:Gnu-fdl.png]] [[GNU Free Documentation License 1.2]]


Conteúdo liberado sob a licença [[Imagem:Gnu-fdl.png]] [[GNU Free Documentation License 1.2]]
[[Categoria:Web]]
[[Categoria: MediaWiki]]

Edição atual tal como às 18h36min de 28 de maio de 2015

O seguinte documentação funciona da seguinte forma:

grupos e permissões

  • Crie as regras de restrições de edição e criando grupo no MediaWiki, adicionando em LocalSettings.php
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['human']['edit'] = true;
$wgGroupPermissions['sysop']['edit'] = true;

adicionando usuário no grupo

  • Adicionar os usuários humanos no grupo "human". Há duas formas de fazer, via interface administratica web do MediaWiki, indo emPáginas especiais > Gestão de privilégios de usuários > Localize o usuário > acrescente no grupo "human"

ou pela linha de comando no MySQL: <source lang="mysql"> INSERT INTO mw_user_groups ( ug_user, ug_group ) VALUES ( 3, "human"); </source>

queries de remoção

Depois um conjunto queries que identificará tudo criado por usuário que não está no grupo human e removerá esse conteúdo e depois os usuários.


As 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>


Referências

Conteúdo liberado sob a licença Gnu-fdl.png GNU Free Documentation License 1.2