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
 
(13 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
O seguinte documentação funcionado da seguinte forma:
O seguinte documentação funciona 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
== 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");
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.


O conjunto queries usados foram:
As queries usados foram:
#




remove o conteúdo de mw_categorylinks
'''remove o conteúdo de mw_categorylinks'''
<source lang="mysql">
<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)));
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>
</source>


------mw_pagelinks
 
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)));
'''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'''
------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)));
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>
   
   
 
------mw_imagelinks
'''remove o conteúdo de mw_imagelinks'''
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 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>




-----mw_user
'''remove o conteúdo de mw_user'''
delete from mw_user where user_id not in(select ug_user from mw_user_groups);
<source lang="mysql">
delete
from mw_user  
where user_id not in(select ug_user from mw_user_groups)
</source>




-----mw_recentchanges
'''remove o conteúdo de mw_recentchanges'''
delete from mw_recentchanges where rc_user not in(select ug_user from mw_user_groups);
<source lang="mysql">
delete
from mw_recentchanges  
where rc_user not in(select ug_user from mw_user_groups)
</source>




-----mw_oldimage
'''remove o conteúdo de mw_oldimage'''
delete from mw_oldimage where oi_user not in(select ug_user from mw_user_groups);
<source lang="mysql">
delete
from mw_oldimage  
where oi_user not in(select ug_user from mw_user_groups)
</source>




-----mw_logging
'''remove o conteúdo de mw_logging'''
delete from mw_logging where log_user not in(select ug_user from mw_user_groups);
<source lang="mysql">
delete
from mw_logging  
where log_user not in(select ug_user from mw_user_groups)
</source>




-----mw_image
'''remove o conteúdo de mw_image'''
delete from mw_image where img_user not in(select ug_user from mw_user_groups);
<source lang="mysql">
delete
from mw_image  
where img_user not in(select ug_user from mw_user_groups)
</source>




-----mw_archive
'''remove o conteúdo de mw_archive'''
delete from mw_archive where ar_user not in(select ug_user from mw_user_groups);
<source lang="mysql">
delete
from mw_archive  
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));
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>




Linha 61: 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]]
[[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