web-dev-qa-db-fra.com

Comment puis-je supprimer toutes les pages Wiki créées par des spammeurs sauf le mien dans MediaWiki?

J'ai implémenté un site MediaWiki mais malheureusement, quelqu'un a créé des milliers de pages à travers des milliers d'utilisateurs.

Quelle requête pourrais-je exécuter pour supprimer toutes les pages créées par ces utilisateurs, sauf le mien?

Les pages MediaWiki se trouvent dans wiki_page et wiki_text dans la base de données MediaWiki, mais il n’existe pas de champ sur le nom de la personne qui a créé ces pages.

Plus grande table:

  • wiki_text: 682MB
  • wiki_externallinks: 162,5 Mo
  • wiki_recentchange: 95 MB
  • wiki_page: 43 MB

    Ici , je trouve une réponse possible à mon problème mais je suis bloqué à la première étape:

"Exporter les articles créés par vous (probablement connectés en tant qu'utilisateur WikiSysop ou similaire)"

Comment puis-je exporter un article créé par moi-même si dans la table il n'y a pas de champ concernant l'utilisateur qui a créé les pages?

3
Pitone

Si vous connaissez quelques Python (ou n'avez pas peur d'apprendre), vous devriez aborder cela avec pywikibot .

Vous pouvez parcourir wiki.allpages() et ajouter une logique pour décider de supprimer ou non une page. Bon critère:

  • La page contient-elle des mots spécifiques? Par exemple. liée à la drogue ou au porno.
  • Est-ce que la page a des liens vers d'autres pages?
  • La page contient-elle des liens depuis d'autres pages?

(Je peux ajouter quelques Python lignes ici s'il y a un intérêt. Faites le moi savoir.)

2
guaka