thilp / vlb-rb

IRC bot for #vikidia
https://thilp.github.io/vlb-rb/
GNU General Public License v2.0
1 stars 2 forks source link

Update links.rb #6

Closed Lucas0231 closed 9 years ago

Lucas0231 commented 9 years ago

Bonjour,

Peut t-on fusioné ma branche patch3 avec la branche thilp:rc

Merci

thilp commented 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 !).

thilp commented 9 years ago

Je clos cette pull-request qui a été remplacée par celle de Rififi.