AIDE : Les robots et camptocamp.org

Activités :
Catégories : info site
Type d'article : collaboratif (CC by-sa)

Cet article vous guidera pas à pas pour installer et faire vos premiers script de bot pour éditer camptocamp. Il n'est pas nécessaire d'avoir de compétences en informatique.

Règles

L'utilisation d'un bot sur le topoguide pour faire des éditions semi-automatiques est autorisée sur camptocamp.org, tant que les règles suivantes sont respectées :

  • Le bot doit utiliser un compte camptocamp différent de celui de son dresseur. Le nom du compte du dresseur doit être présent sur la page personnelle du bot, et vice-versa. Pour ne pas nuire à la maintenance et le suivi des modifications, il est formellement interdit de contribuer avec un système automatisé, ou semi automatisé avec son compte principal.
  • Le bot doit être déclaré, et toutes ses modifications doivent être annoncées sur le forum, et approuvées par les autres contributeurs.
  • Le bot doit être sous la surveillance de son dresseur lorsqu'il édite le topoguide. Son dresseur est pleinement responsable de toutes les contributions faites par son bot. Il ne doit faire des modifications de texte que dans les langues parfaitement maîtrisées par son dresseur (voir à ce sujet la discussion sur le forum).

Liste des robots existants

Installation

Python

La librairie de bot est codée en python, un langage connu pour sa facilité d'utilisation pour les débutants. Vous trouverez ici de quoi l'installer sur votre ordinateur : https://www.python.org/

Attention, au début de l'installation, il faut cocher la case Add Python 3.6 to PATH.

Campbot

Campbot est la libraire de bot pour camptocamp.org. Pour l'installer, tapez cmd dans la barre de recherche Windows. Dans l'invite de commande, tapez la commande suivante :

pip install campbot -U

L'option -U sert à mettre à jour la librairie, si celle-ci est déjà installée.

Faire tourner son premier bot

Exemple de fenêtre d’exécution
Exemple de fenêtre d’exécution

Créer un compte bot

Créez simplement un compte camptocamp, et indiquez sur sa page que c'est un bot, ainsi que l'adresse de votre compte. Choisissez également un nom qui contient le mot bot, vous trouverez une bonne source d'inspiration sur Wikipédia.

Indiquez également son existence sur votre page utilisateur. Pour la suite de cette exemple, nous partirons du principe que l'identifiant de votre bot est patate, que le mot de passe du compte est douce, et que l'identifiant numérique de ce compte est 66666666.

Premier bot.

Dans cmd.exe, exécutez cette ligne (vous pouvez modifier l'URL pour nettoyer d'autres documents) :

campbot clean https://www.camptocamp.org/routes#w=107702 --login=patate --password=douce

Le bot va nettoyer tous les itinéraires rattachés au point de passage 107702. Pour chaque itinéraire, il vous montrera les modifications, et vous demandera confirmation (pressez y puis entrée).

Et voilà! 🎆 Mais lisez avec attention le paragraphe suivant!

Précautions d'usage

Ceci est le paragraphe le plus important de toute cette page!

  • Le bot ne fera pas plus d'une requête toutes les 3 secondes. Également, il vous montrera la modification qu'il a faite, et vous demandera confirmation avant toute sauvegarde de document. Néanmoins, cela peut aller très vite, gardez toujours un œil sur la fenêtre d’exécution.
  • Gardez également ouvert la page whatsnew : https://www.camptocamp.org/whatsnew#u=6666666
  • Et en cas de souci, le moyen le plus simple pour tout arrêter est de fermer la fenêtre d’exécution.
  • Et gardez bien à l'esprit que vous êtes responsable de toutes les actions de votre bot.

Bots avancés

La commande précédente ne demande aucune ligne de code. Néanmoins, les fonctionnalités les plus puissantes vous demandent de mettre un peu la main à la pâte. En premier lieu, munissez vous d'un éditeur de texte.

Un éditeur de texte

Les scripts python sont de simples fichiers textes avec l'extension .py. Vous pouvez utiliser Notepad pour les écrire, mais c'est très vite limité. Un bon compromis est Notepad++, gratuit, simple et efficace.

Ensuite, créez un simple fichier nommé test.py, puis:

  1. clic droit sur le fichier dans votre explorateur de fichiers,
  2. ouvrir avec ,
  3. choisir le programme par défaut,
  4. et choisissez Notepad++ en choisissant l'option "toujours ouvrir avec ce programme".

Premier script tout simple

Pour tout vos tests, utilisez le site de demo : https://www.demov6.camptocamp.org (login/password=c2corg). Les exemples qui suivent contiennent l'argument use_demo=True qui permet de faire pointer le bot sur le site de demo. Une fois vos essais concluant, vous pouvez créer un compte sur le site normal, et ne plus utiliser cet argument.

Pour ce test, nous allons récupérer un itinéraire, et l'afficher. Il est inutile de se créer un compte pour cela.

Créez un répertoire, dans lequel vous créerez deux fichiers :

hello.py :

from campbot import CampBot

bot = CampBot(use_demo=True)
print(bot.wiki.get_route(135496))

run_hello.cmd :

python hello.py    
PAUSE

Ensuite, double-cliquez sur run_hello.cmd, vous devriez obtenir le résultat suivant :

C:\test_folder > python hello.py
{'activities': ['mountain_climbing', 'snow_ice_mixed'], .... (un bon gros paquet de données)
C:\test_folder > PAUSE
Press any key to continue . . .

Et voilà! 🥂

Vous trouverez des petits scripts d'exemple dans la documentation.

Messages d'erreur courants

'pip' is not recognized as an internal or external command

Python est mal installé, essayez de le réinstaller, en n'oubliant pas la case à cocher Add Python.... Si cela ne fonctionne toujours pas, entrez ceci dans l'invite de commande, puis demandez de l'aide sur le forum en copiant-collant le résultat :

echo %PATH%

Liens utiles

  • Code source : Github. Toute aide est la bienvenue.
  • Documentation : ReadTheDocs. Toute aide est également la bienvenue 😄

Commentaires

Avatar
Gros 7 years ago

Normalement, ça coince pas.

OK, je sors.

Avatar
AntoineM 7 years ago

Bienvenu à @CaBot :wink:

Avatar
AntoineM 7 years ago

https://www.camptocamp.org/profiles/1006785/fr

Il a fait une passe sur l’UK, le Népal et l’OZ. Autriche en cours !

Pour python, j’ai suivi ton lien, en fait il fallait que je fasse pip3 plutôt que pip pour installer campbot … Pour l’instant je reste sur la fonction clean, ça marche du tonnerre !

Avatar
rangedesvoitures 7 years ago

On développe une stratégie ou on fait au petit bohneur la chance ? Nos chemins vont se croiser.

Ceci dit, ce n’est pas bien grave (à part la note électriciT). :slight_smile:

Avatar
AntoineM 7 years ago

Vu que l’article des corrections s’améliore, ça ne fait pas de mal de repasser. Mais c’est vrai qu’on pourrait s’organiser pour éviter que nos chemins ne se croisent trop. C’était un peu frustrant de passer sur les itinéraires autrichiens et de n’avoir aucune correction !

On peut se répartir géographiquement, avec différents niveaux de détail pour contrer la distribution non uniforme des itinéraires:

Monde: Amérique N S +Océanie vs Asie +Afrique
Europe: Espagne, Portugal, UK, Allemagne, Pays Scandinaves vs Italie, Suisse, Autriche, Slovénie, grèce, Europe Est
France: Alpes vs reste

Tu en penses quoi ?

Avatar
rangedesvoitures 7 years ago

Voici mon chemin jusqu’à présent, chronologiquement.

ojstrica, mont ussy, velika baba, oujdad, freissinieres, fontainebleau, tre cime, bockmattli, taghia.
pre de madame carle, roc des boeufs, courmayeur, val di mello, annot, la verte, refuge vittorio emanuelle.
triglavski dom, triglav, vallée vrata, vallee kot, vallee krma, pont riobianco, Todgha.
kamniško-savinjske, julijske, verdon, canaille, picos de europa, chine, la berarde, pakistan, inde, afghanistan, tadjikistan, kirghizstan,
kazakhstan, russie, mongolie, coree, japon, népal.
carniques/gailtal, dolos, les houches telepherique de bellevue, zermatt, saas-fee, saint moritz, refuge leschaux, massif mont blanc, valais W,
valais E, luberon.
jura, bigorre-ordessa, hautes-pyrenees, écrins.

calanques, alpes bernoises, corse, sardaigne, autriche.
vercors, rouges/giffre, vanoise.

Je cible maintenant sur les Alpes françaises.
Petit massif, gros site > Gros massif > Très gros massif > Département.

Pour les Pyrénées, j’ai fait le centre.

Si quiconque a des choix de coins à proposer en vue d’une passe, no problem. Vous prenez un tiquet :slight_smile:. Ici même - ou ailleurs :smile:

A+

Avatar
lutin.de.la.foret 7 years ago

est-ce que campbot ne fonctionne qu’avec la version la plus récente de python (3.6.5 apparemment), ou bien est-ce qu’une 2.7 convient ?

Avatar
rangedesvoitures 7 years ago

Fait !

Avatar
lutin.de.la.foret 7 years ago

Je t’avoue que mon but était bassement égoïste, je voulais juste appliquer la correction bbcode sur mes anciennes sorties (et initialement, je n’avais pas percuté que c’était un exemple pour lequel il ne fallait justement pas avoir un compte robot, mais utiliser les identifiants de son compte principal ; mais le problème ne venait pas de là de toute façon, mais de python et pip (édit : probablement un problème de compatibilité entre les deux, et/ou de version de python par défaut qui n’est pas celle qui doit être utilisée). Pour l’instant je laisse de côté avant une prochaine tentative, j’ai déjà passé perdu pas mal de temps dimanche à essayer de faire fonctionner ça.

Merci pour ta proposition en tous les cas. :slight_smile:

Avatar
rangedesvoitures 7 years ago

Un bot peut le faire. Il a besoin (par MP) de ton identifiant et de ton mot de passe. Tu pourras post festum changer le mot de passe

Avatar
lutin.de.la.foret 7 years ago

Sauf si c’est un bot qui a les droits de modération topoguide.

(et par principe, je ne donne pas mes identifiants, quel que soit le contexte) :slight_smile:

Avatar
rangedesvoitures 7 years ago

Quel rapport ?

Avatar
lutin.de.la.foret 7 years ago

être précis

Avatar
rangedesvoitures 7 years ago

Tu veux que je le fasse, oui ou…

Avatar
lutin.de.la.foret 7 years ago

non, merci.
Ce n’était pas ma demande, et je suis en train d’essayer de faire fonctionner campbot moi-même.

Avatar
rangedesvoitures 7 years ago

Je m’étais fait piéger :

Avatar
lutin.de.la.foret 7 years ago

Alors chez moi c’est un peu différent, déjà je suis sous linux, donc installation par packages sur ma distribution.
Et ensuite j’avais juste la question de l’alias « python » qui pointait vers la 2.7 mais que j’ai redéfini vers la 3.6, donc a priori c’est bon de ce côté.
Je penche plus vers un problème côté pip, et sur la compatibilité (peut-être réciproque) entre python et pip.
Charles m’a conseillé quelque chose à tester, je ferai ça ce soir…

Merci pour ta suggestion en tous les cas.

Avatar
rangedesvoitures 7 years ago

J’ai fait l’update, mais j’obtiens ce message :

Command « python setup.py egg_info » failed with error code 1 in C:\Users\Borut\AppData\Local\Temp\pip-install-6jsjejfy\campbot\

Note que j’ai upgradé vers la version 10.0.1, mais ça ne règle pas le pb.


PS : cette discussion pourrait peut-être être déplacée dans le "Coin des contributeurs "

Avatar
rangedesvoitures 7 years ago

Merci !

C’est maintenant installé.

Merci aussi pour les documentations.
Il faudrait que je prenne du temps et que me mette à l’étude.