Closed Lucas0231 closed 9 years ago
Bonjour,
Quand je t'écrivais « il n'y a qu'à reprendre le format de aide: 'https://github.com/thilp/vlb-rb'
», ce n'était pas juste une façon de parler ! Par exemple, pour la commande !rc
que tu voulais, il suffisait d'ajouter :
rc: 'RC : #vikidia-recentchanges',
juste en-dessous de :
aide: 'https://github.com/thilp/vlb-rb',
Là, tu as directement copié ton code de Lifebot (en Python donc) dans VikiLinkBot (en Ruby), ça ne peut pas marcher… Par exemple, la variable ref2
(dans if ref2[3].lower() ...
) ne fait référence à rien dans VikiLinkBot, seulement dans Lifebot.
Le plus important en programmation, c'est de comprendre complètement le code qu'on écrit. Sinon, on y trouvera des bugs, ou des failles de sécurité… Apparemment tu ne comprends pas complètement le code de Lifebot que tu utilises. Laisse-moi essayer de t'expliquer celui de VikiLinkBot :
module VikiLinkBot # On écrit du code pour VikiLinkBot.
class Shell # Plus particulièrement, on veut ajouter des commandes, comme !rc ; cela est rangé dans Shell.
{ # On liste les commandes et les liens qu'on veut y associer ici.
aide: 'https://github.com/thilp/vlb-rb',
rc: 'RC : #vikidia-recentchanges',
mypage: 'https://fr.vikidia.org/wiki/Special:MyPage',
gazette: 'https://fr.vikidia.org/wiki/Vikidia:Gazette',
pas: 'https://fr.vikidia.org/wiki/Vikidia:Pages_%C3%A0_supprimer',
block: 'Bloquer un utilisateur (administrateurs) : https://fr.vikidia.org/wiki/Sp%C3%A9cial:Bloquer',
accueil: 'https://fr.vikidia.org/wiki/Vikidia:Accueil',
}.each do |k, v| # cette ligne signifie : « pour chaque commande "k" et texte associé "v" dans notre liste ... »
class_eval <<-RUBY # « ... fais comme si on avait écrit ... »
def #{k}(m, *_) # « ... une fonction qui s'appelle "k" ... » (car toutes les commandes de VikiLinkBot sont des fonctions)
m.reply "#{v}" # « ... et qui fait que VikiLinkBot répond "v". »
end # pour fermer « def ... »
RUBY # pour fermer « class_eval ... »
end # pour fermer « each do ... »
end # pour fermer « class Shell »
end # pour fermer « module VikiLinkBot »
Tu vois, plutôt que de réécrire à chaque fois if rep2[3].lower() == "macommande"
(ou l'équivalent en Ruby) … je fais faire ce travail à VikiLinkBot lui-même ! :smile: Comme ça, moi, je n'ai qu'à remplir la liste « commande: lien », ce qui est beaucoup plus simple et lisible.
Voilà, maintenant tu sais pourquoi tes modifications ne marchent pas et tu peux facilement les corriger ! :wink:
P.-S. : pour corriger tes modifications, pas besoin de recréer encore une pull-request ! Sur https://github.com/Lucas0231/vlb-rb, choisis la branche patch3
dans le menu déroulant à côté du bouton vert de pull-request. Ensuite, déplace-toi jusqu'à ton fichier (tu peux aussi suivre ce lien) et corrige-le. Cette pull-request sera directement mise à jour avec tes modifications (du moment que tu les fais bien sur la branche patch3
!).
Je clos cette pull-request qui a été remplacée par celle de Rififi.
Bonjour,
Peut t-on fusioné ma branche patch3 avec la branche thilp:rc
Merci