Projet:Bot/Codes/PY

Un article de Wikipédia, l'encyclopédie libre.

Pour ajouter un nouveau code, utilisez {{subst:Projet:Bot/Codes/E|auteur=|titre=|date=|langage=}}, puis complétez les informations manquantes.

Sommaire


[modifier] MyBot (d · c · b)

Codes également sous licence GPL. Inspiré au départ par le SimpletBot de Dake.

auteur : IAlex (d · c · b) | Création : entre novembre 2006 et avril 2008 (dépend des scripts) | Dernière modification : 8 avril 2008

[modifier] Méthodes générales

[modifier] Descriptif

Deux méthodes qui seront utiles aux autres morceaux du programme.

[modifier] Code


[modifier] Discussion

[modifier] Mise à jour d'articles liés

[modifier] Descriptif

Routine qui permet de mettre à jour la liste d'articles liés.

Nécessite les fonctions 'SauvPage' et 'getLinks' qui se trouve dans #Méthodes générales.

Paramètres pour la routine 'Liste':

  • PageLis: page contenant la liste des articles.
  • PageNb: page où doit être inscrit le nombre d'articles liés (exemple: Modèle:Nombre articles entreprises).
  • PageModif: page où mettre les nouveaux article ou une chaine vide pour ne pas utiliser cette fonction
  • Bandeau: un tableau de pages de bandeaux (3 au maximum) sans 'Modèle:' devant.

[modifier] Code


[modifier] Discussion

à quoi sert l'ajout que tu viens de faire ? -- Chico (blabla) 13 septembre 2007 à 20:11 (CEST)

A trier les pages sans prendre en compte les accents. iAlex (Ici ou ), le 18 novembre 2007 à 12:10 (CET)
Ou il y a une petite erreur ou je n'ai rien compris :
...
text = text.replace(u'ú',u'u').replace(u'ù',u'u').replace(u'ü',u'u').replace(u'û',u'u')
text = pagetext.replace(u'É',u'E').replace(u'È',u'E').replace(u'Ë',u'E').replace(u'Ê',u'E')
text = text.replace(u'À',u'A').replace(u'Ä',u'A').replace(u'Â',u'A')
...
ILJR (d) 7 avril 2008 à 12:39 (CEST)
Ce code marche toujours maintenant que tous les bandeaux sont réunis au sein du modèle {{Portail}} ? Alecs.y (disc. - contr.) 7 avril 2008 à 13:48 (CEST)
??? Je ne comprends pas du tout ta réponse.
On peut se tutoyer ?
ILJR (d) 7 avril 2008 à 14:32 (CEST)
Ce n'était pas une réponse à ta question, mais plutôt une autre interrogation. Alecs.y (disc. - contr.) 7 avril 2008 à 17:34 (CEST)
@ILJR: oui, je l'ai remarqué il y a pas longtemps, mais j'ai toujours pas mis à jour ces scripts (d'autant que je les ai pas mal modifiés).
@Alecs.y: chaque bandeau a encore une page à lui qui stocke les styles (comme pour le bandeau {{Ébauche}}) et qui sont les mêmes pages qu'avant, donc ça ne devrait pas poser de problème majeur.
iAlex (Ici ou ), le 7 avril 2008 à 17:51 (CEST)
Il marche pas chez moi, je dois mal l'utiliser Triste Alecs.y (disc. - contr.) 8 avril 2008 à 11:45 (CEST)
J'ai mis les codes à jour, la sortie de l'api de MediaWiki a changé il y a presque deux mois et j'ai du modifier le script en conséquence, donc essaye de les mettre à jour, mais l'appel de la fonction Liste() a changé (le plus notable apparraissant en rouge dans la doc au dessus). Sinon ce serait plus utile si tu indiquais ce qui ne marche pas (et comment tu appelles la fonction, paramètres passés, ...) Clin d'œil iAlex (Ici ou ), le 8 avril 2008 à 17:28 (CEST)
Bah j'ai tous mis dans un fichier nommé link.py et je fait : python link.py -bandeau:Portail_Nancy -pagelis:Utilisateur:Alecs.y/Brouillon Alecs.y (disc. - contr.) 8 avril 2008 à 19:14 (CEST)

[modifier] Mise à jour de Wikipédia:Liste des effectifs d'articles par portail

[modifier] Descriptif

Permet de mettre à jour la page Wikipédia:Liste des effectifs d'articles par portail.

Nécessite les fonctions 'SauvPage' et 'getLinks' qui se trouve dans #Méthodes générales.

Pour la configuration, voir Wikipédia:Liste des effectifs d'articles par portail/liste.

[modifier] Code


[modifier] Discussion

[modifier] Et pour faire tourner le tout...

[modifier] Descriptif

Permet de faire tourner chaque heure les scripts qui se trouvent aussi. Il y a certaine un bien meilleure manière de faire ça. Mettre ceci au bas du fichier.

Par défaut le script affiche une nouvelle ligne à chaque minute, il est possible de masquer ça.

Nécessite les scripts qui se trouvent au-dessus.

[modifier] Code


[modifier] Discussion

[modifier] Interwiki

auteur : Catalyse (d · c · b) | Création : 29 Juin 2007 | Dernière modification : 29 Juin 2007 23h59

[modifier] Descriptif

Il s'agit d'un ensemble de modifications sur les fichiers replace.py et pagefromfile.py qui permettent de créer et de mettre à jour un log des modifications des liens Interwiki. Ce log se trouve sur : Projet:Bot/Interwiki

Une fois que vous aurez effectué les modifications ci-dessous, votre Bot devrait créer lui-même sa sous-pages de Projet:Bot/Interwiki

[modifier] Code




[modifier] Discussion

File "interwiki.py", line 1025
    def replaceLinks(self, page, newPages, bot):
                                               ^
IndentationError: unindent does not match any outer indentation level

Ca me donne cette erreur après les modifications Triste Alecs.y (disc. - contr.) 5 avril 2008 à 16:36 (CEST)

[modifier] getContrib

auteur : ILJR (d · c · b) | Création : 05/04/2008 | Dernière modification :

[modifier] Descriptif

Récupère la liste des pages (une seule ligne par page) modifiées par un utilisateur dans un fichier.

Avec l'option write_num indique en plus le nombre d'edit de cette page. L'option condition qui devrait permettre de filtrer les pages avec un texte contenu dans la page ne fonctionne pas.

[modifier] Code


[modifier] Discussion

Cette classe n'est pas finie et contient quelques bugs. Par exemple si je précise un paramètre limit supérieur au nombre d'edit de l'utilisateur, j'ai une erreur alors que si ce nombre est inférieur il n'y a aucun problème.

J'ai des soucis dans ce code et d'une façon générale avec la gestion de l'UTF-8 et de l'ascii qui provoque des erreurs à l'exécution. Par exemple, le fichier résultat contient les url des pages (« Mod%C3%A8le:L%C3%A9gifrance ») et pas leur titre (« Modèle:Légifrance ») à cause des caractères accentués. Je compte creuser la question mais si quelqu'un avait la solution cela m'arrangerait.