Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/10/2014, à 21:05

karamelo

Demande/aide/orientation de script geocaching.com

Bonjour, je suis un joueur de chasse au trésor version 2.0 le géocaching sympa en famille ou en solo bref une activité pour meublé les week-end ou orienté les vacances.

Avant propos:
Mes connaissances en développement sont basic je me suis un temps occupé du compteur TDLT par exemple (avec certes quelques déboires...), html et bash sans grande prétention.

Le problème:
Je crée des séries de caches (à faire en vtt ou à pied) sur geocaching.com sauf que pour chaque page je perd un temps fou, tu cliques re-cliques re-re-cliques.... tu copies tu colles. Je viens de faire une série de 130 caches et je pense à une automatisation du processus car là j'en suis dégoutté.

Le processus:
Quand je crée un cache il faut:
-des coordonnées gps
-Un descriptif (html)
-une taille de boite (micro moyenne etc.........)
-Des attributs (genre de logo pour dire par exemple: pas de chien)
-Un hint (indice)
-Un spoiler(photo de l'endroit où ce trouve la cache)
-Une note au reviewer (qui est là pour examiner la cache)

Le Script:
A partir d'un fichier txt par exemple ou autres me créera les dites pages en ligne de commande (je crois encore au père noël je sais)


L'idée de programmation:

En python bien-sur sauf que là mes connaissances sont limités

Si un dieu du python passe dans le coin !

Hors ligne

#2 Le 06/10/2014, à 14:48

ZiLot

Re : Demande/aide/orientation de script geocaching.com

Salut. Est-ce que tu pourrais détailler un peu mieux ce que tu veux faire parce que je suis pas bien sûr d'avoir tout saisi...
En gros tu veux aller sur le site geocaching.com, et créer un fichier .txt contenant les informations des caches que tu veux faire ? du style :

cache n°1 :
coordonnées : N XX° XX.XXX E XXX° XX.XXX
descriptif : cette cache est bien cachée
taille : moyenne
attributs : pas de chiens, matériel d'escalade.
indice : ...
cache n°2 :
coordonnées : N XX° XX.XXX E XXX° XX.XXX
descriptif : cette cache est mieux cachée
taille : petite
attributs : aucun.
indice : ...
[...]

Enfin bref un fichier rempli. Et de là tu veux faire une page internet regroupant l'ensemble des caches que tu veux faire. Et les pages web écrites en html principalement seront générées automatiquement avec le script en question. Est-ce bien ça ?

Hors ligne

#3 Le 07/10/2014, à 07:22

karamelo

Re : Demande/aide/orientation de script geocaching.com

Bonjour et merci déjà de la réponse.
Oui et non en fait je veux que le script puisse généré les pages à partir des infos contenus dans un répertoire.
1 fichier pour les infos générales (coordonnées, attributs hint...) et un dossier avec les spoilers, la description html elle sera inchangé pour la série juste les coordonnées, hint, attributs et spoiler change.

Voici une série de capture d’écran de la création d'un page de cache si cela peut éclairé :
Exemple du processus

/
|-------- Fichier1: description de la page en html (pour le texte et les explications, identique sur chaque page)
|
|---------Fichier2: détails de la cache (attributs cordonnées etc)
|
|---------Dossier1: dossier contenant les photos (spoilers)
                   |---image1
                   |---image2

Dans le fichier des paramètre variable (coordonnées, hint, attributs) la structure serait:

cache n°1 :
coordonnées : N XX° XX.XXX E XXX° XX.XXX
Description: Fichier1.html
Hint: sous l'arbre
taille : moyenne
difficulté/terrain: D/T 1.5/2.5
attributs : pas de chiens, matériel d'escalade.
spoiler: /Dossier1/image1.jpg

Je me doute que cela ne vas pas être simple........

Hors ligne

#4 Le 07/10/2014, à 15:12

ZiLot

Re : Demande/aide/orientation de script geocaching.com

Alors je ne connais pas trop le python, par contre en bash, j'ai un niveau plus que correct. Donc je te donne les différentes commandes et l'algorithme un peu général pour faire ce que tu veux. Si tu veux que je le code avec toi y'a pas de soucis, je viens de commencer le geocaching donc ça peut être utile d'avoir un script comme celui ci.

dans un script bash, tu peux écrire dans un fichier de cette façon :

fichier = "index.html"
echo "code html du fichier" >> $fichier

echo permet d'afficher du texte (en sortie), mais utiliser ">>" permet de rediriger le texte à la fin du fichier voulu sans écraser ce qu'il y avait d'écrit(redirection d'entrée / sortie)

Si tu veux lire un fichier ligne par ligne il y a deux façon. Celle que tu risque probablement d'utiliser :

while read ligne
do
          echo $ligne
done <fichier

à chaque tour de boucle il stock dans la variable ligne chaque ligne du fichier. Si tu veux une ligne bien particulière dans le fichier  tu peux utiliser :

sed -n "4p" fichier

cette commande va lire la 4ème ligne du fichier, donc remplace 4 par le chiffre voulu. Pour utiliser une variable avec cette fonction il faut faire :

var="4"
`sed -n $var"p" fichier`

Petits conseils:
tu connais la structure de tes fichiers, donc tu peux retirer au début de chaque ligne "Coordonnées : Hint :  descriptif : etc." ça sera plus simple pour la lecture dans le fichier je pense, vu que t'auras pas à ignorer ce qu'il y a avant le ":"
La structure de tes fichiers sera peut être à revoir selon comment tu vas coder ton script. J'ai pas le détail de tes fichiers et dossier de comment tu as pensé la chose, mais faut pas hésiter de ce côté là si ça allège le code.


Voilà avec ça tu seras capable de faire de lire et écrire dans tes fichiers, ce qui est le principal soucis que tu pouvais avoir. Je t'écris un scripts en exemple utilisant tout ça pour que tu puisses t'en inspirer. je le posterai en fin d'aprem ou ce soir.

Hors ligne

#5 Le 07/10/2014, à 17:18

ZiLot

Re : Demande/aide/orientation de script geocaching.com

Bon voilà un bout de script. Pas mal de chose à ajouter j'imagine, et le CSS à faire également mais ça c'est toi qui voit.

#!/bin/bash

#on considère que le script se trouve dans le dossier contenant le fichier1 2 et le dossier1.
#si ce n'était pas le cas il faudrait demander à l'utilisateur le chemin du dossier en paramètre du programme ou bien via un prompt


#premièrement on génère la page html et son code minimal.

pageWeb="geocache1.html"
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"" >>$pageWeb
echo "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">" >>$pageWeb
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"fr\">" >>$pageWeb
echo "  <head>" >> $pageWeb
echo "          <title>geocache 1</title>" >>$pageWeb
echo "          <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />" >> $pageWeb
echo "          <link rel=\"stylesheet\" href=\"style.css\"" >> $pageWeb
echo "  </head>" >>$pageWeb
echo "  <body>" >>$pageWeb

#maintenant que c'est fait, on va pouvoir lire les fichier et générer le contenu.

#on lis la description identique sur chaque page.
echo "          <h5 class=\"description\">" >> $pageWeb
while read ligne
do
        echo "          " $ligne >> $pageWeb
done < fichier1
#ne pas hésiter à mettre des balises dans les fichiers pour structurer et toussa comme je l'ai fait avec fichier1.

echo "          <div class=\"parametresCache\">" >> $pageWeb
while read ligne
do
echo "                  "$ligne >> $pageWeb
echo "                  </br>" >> $pageWeb
done < fichier2
echo "          </div>" >> $pageWeb

#on rajoute la photo de l'endroit ou se trouve la cache.
echo "<img src=\"./dossier1/photo1.png\" title=\"photogeocache1\" />" >> $pageWeb

#si tu veux ajouter des images pour une cache petite, grande, chiens autorisés etc. tu peux écrire dans le fichier (ou dans un autre fichier)
#pas de chiens, matériel d'escalade etc. Et avec une commande unix et un if, tu vérifies chaque éléments s'ils sont là ou pas :
#la ligne suivante compte le nombre de ligne ou on trouve le mot chien. S'il trouve rien il renvera 0. donc on test après 
#si la variable vaut 0, alors on met l'image pas de chien, sinon on met l'image chien autorisé
var=`grep "chien" fichier2 | wc -l`
if [ $var -eq 0 ]
then
        echo "<img src=\".dossier1/nodogs.png\" title=\"pas de chien\" />" >> $pageWeb
else
        echo "<img src=\".dossier1/dogs.png\" title=\"chien autorisé\" />" >> $pageWeb
fi

#une fois le fichier généré avec le contenu, on ferme les balises
echo "  </body>" >> $pageWeb

ce qui une fois exécuter donne ce code source :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>"
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
        <head>
                <title>geocache 1</title>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                <link rel="stylesheet" href="style.css"
        </head>
        <body>
                <h5 class="description">
                 Descriptions du geocaching :
                 </h5>
                 <p>
                 Le geocaching est une aventure merveilleuse de chasse aux trésors qui nous fut transmise par nos ancêtres les pirates.<br/>
                 Le but est de trouver grâce aux coordonnées GPS de petites ou grandes boites, cachéés aux 4 coins de la planète, nous permetant de découvrir et de nous balader, là ou nul n'oserait s'aventurer.
                 </p>

                <div class="parametresCache">
                        Cordonnées : N XX° XX.XXX E XXX° XX.XXX
                        </br>
                        Description: Fichier1.html
                        </br>
                        Hint: sous l'arbre
                        </br>
                        taille : moyenne
                        </br>
                        difficulté/terrain: D/T 1.5/2.5
                        </br>
                        attributs : pas de chiens, matériel d'escalade.
                        </br>
                </div>
<img src="./dossier1/photo1.png" title="photogeocache1" />
<img src=".dossier1/dogs.png" title="chien autorisé" />
        </body>

contenu de fichier1 :

Descriptions du geocaching :
</h5>
<p>
Le geocaching est une aventure merveilleuse de chasse aux trésors qui nous fut transmise par nos ancêtres les pirates.<br/>
Le but est de trouver grâce aux coordonnées GPS de petites ou grandes boites, cachéés aux 4 coins de la planète, nous permetant de découvrir et de nous balader, là ou nul n'oserait s'aventurer.
</p>

contenu de fichier2 :

Cordonnées : N XX° XX.XXX E XXX° XX.XXX
Description: Fichier1.html
Hint: sous l'arbre
taille : moyenne
difficulté/terrain: D/T 1.5/2.5
attributs : pas de chiens, matériel d'escalade.

est ce que je me trompe complètement ou bien j'ai des choses de juste ? c'est plus ou moins ce que tu recherches ? des choses à modifier ?

Hors ligne

#6 Le 07/10/2014, à 20:27

karamelo

Re : Demande/aide/orientation de script geocaching.com

Merci beaucoup pour l'aide apporté c'est trés sympa, le problème avec bash c'est pour l'upload et je n'ai pas été très clair à ce sujet même pas du tout........ désolé
Quand tu as une cache à publier pas de problème mais 100 cela devient vite chiant.
Je sais que python permet de ce logué sur un site (ex les compteurs du site), et de manière automatique ce baladé dedans ou d'upload sur le dit site à ta place c'est cela que je recherche pour une serie (j'en ai encore un paquet à posées).
Mon architecture de dossier est certes à revoir.
Donc je me reprends hmm
Quand je revient d'une pose j'ai:
Des points gps (dans un gpx au format hddd.ddddd°)
Des photos (Spoiler)
Des notes (soit dans le gps soit manuel)

Pour l'upload sur le site cela ce complique grandement (car il va falloir décrire au script toutes les possibilités).
Il y a en gros 8 étapes et pas des moindres (voir capture), je pense que cela va être trop compliqué aussi j'ai commencé mais çà merde vite fait ( au login lol )

Merci de ton aide (si jamais tu as besoin d'aide pour des caches ou autres dans le géocaching envoi un MP je te dois bien ça et ce sera avec plaisir)

Hors ligne