#1151 Le 20/03/2015, à 09:02
- Didier-T
Re : [Conky] Alternative à weather.com (3)
Bonjour,
je viens de transmettre un mail à lunopia.com, pour voir la possibilité d'obtenir le droit d'utiliser leur API concernant les lunaisons.
L'utilisation de leur API passe par l'obtention d'une clef individuelle.
Il faut savoir que ce sont eux qui fournissent les informations pour le site http://www.calendrier-lunaire.net/, cher qui nous prenions les informations jusqu'à maintenant.
Bien entendu, je vous tiendrais au courant.
A+,
Didier.
Dernière modification par Didier-T (Le 20/03/2015, à 09:02)
Hors ligne
#1152 Le 20/03/2015, à 17:22
- daniel38100
Re : [Conky] Alternative à weather.com (3)
en attendant les nouvelles de Didier-T j'ai modifier le 02-lune.sh pour le meteo-fond-d'ecran
tout n'est pas modifier mais le principal y est j'ai fai ca vite fait
02-lune.sh
#!/bin/bash
# Récupération infos lunaison sur http://www.calendrier-lunaire.net
if [ -z "$1" ];then
reptemp="/tmp"
else
reptemp="$1"
fi
if [ -z "$2" ];then
repsauv="/tmp"
else
repsauv="$2"
fi
recep=$(curl --max-time 60 --retry 3 --silent "http://www.calendrier-lunaire.net/" | grep -A57 'bottom\"')
icone=$(echo $(date +%d-%B-%Y))
wget -q http://www.calendrier-lunaire.net/images/lune170px-$icone.png -O $reptemp/Lune.png
convert $reptemp/Lune.png -transparent '#091a2a' $reptemp/Lune.png
recep=$(echo -e "$recep"|sed 's/<[^>]*>//g'|sed 's/[%,\;,&,-]//g'|sed 's/^[ \t]*//'|sed '/^$/d')
tab[2]=$(echo -e "$recep"|sed -n "1p"|sed 's/.*: //g')
tab[3]=$(echo -e "$recep"|sed -n "1p"|sed 's/.*: //g'|cut -d " " -f1 )
tab[4]=$(echo -e "$recep"|sed -n "1p"|sed 's/.*: //g'|cut -d " " -f2)
tab[5]=$(echo -e "$recep"|sed -n "2p"| sed 's/.*: //g')
tab[6]=$(echo -e "$recep"|sed -n "7p"|sed 's/.*: //g')" "$(echo -e "$recep"|sed -n "6p"|sed 's/.*: //g')
tab[7]=$(echo -e "$recep"|sed -n "7p"|sed 's/.*: //g')
tab[8]=$(echo -e "$recep"|sed -n "6p"|sed 's/.*: //g')
tab[9]=$(echo -e "$recep"|sed -n "11p"|sed 's/.*: //g')
tab[10]=$(echo -e "$recep"|sed -n "10p"|egrep -o '[[:digit:]]*'|sed -n "1p")
tab[11]=$(echo -e "$recep"|sed -n "9p"|egrep -o '[[:digit:]]*'|sed -n "1p")
tab[12]=$(echo -e "$recep"|sed -n "3p"|egrep -o '[[:digit:]]*')
tab[13]=$(echo -e "$recep"|sed -n "4p"|cut -c19- |sed 's/ h/h/g'|sed 's/ m/m/g')
tab[14]=$(echo -e "$recep"|sed -n "9p"|cut -c30-31)
tab[15]=$(echo -e "$recep"|sed -n "9p"|cut -c33-34)
tab[16]=$(echo -e "$recep"|sed -n "9p"|cut -c57-58)
tab[17]=$(echo -e "$recep"|sed -n "9p"|cut -c60-61)
tab[18]=$(echo -e "$recep"|sed -n "14p")
tab[19]=$(echo -e "$recep"|sed -n "15p")
echo "ico=$reptemp/Lune.png" >$repsauv/lunaison
for ((a=2; a <= 19 ; a++))
do
echo -e "${tab[$a]}" >>$repsauv/lunaison
done
exit
je pense qu'il faudrait un pack d'icones pour les lunes
Dernière modification par daniel38100 (Le 20/03/2015, à 17:26)
Hors ligne
#1153 Le 20/03/2015, à 17:49
- daniel38100
Re : [Conky] Alternative à weather.com (3)
@ TOUS
accuweather-2.deb n'existe plus car plus tres fonctionnel (me demander je l'ai en sauvegarde)
Hors ligne
#1154 Le 20/03/2015, à 17:52
- Phyllinux
Re : [Conky] Alternative à weather.com (3)
Si vous voulez un joli pack d'icônes de la lune, voilà :
Icônes Lune
Perso, je les utilise pour afficher la lune. Elles sont issues du screenlet FuriousMoon, et leur apparence est plus jolie que les images extraites du site calendrier-lunaire, avec un dégradé de visible ou non visible moins tranché en ligne droite que celles du site, ce qui donne une apparence plus naturelle.
Il y en a 29.
Dernière modification par Phyllinux (Le 20/03/2015, à 19:19)
The ship is sinking normally...
Hors ligne
#1155 Le 20/03/2015, à 18:48
- daniel38100
Re : [Conky] Alternative à weather.com (3)
Si vous voulez un joli pack d'icônes de la lune, voilà :
Icônes Lune
Perso, je les utilise pour afficher la lune. Elles sont issues du screenlet FuriousMoon, et leur apparence est plus jolie que les images extraites du site calendrier-lunaire, avec un dégradé de visible ou non visible moins tranchée en ligne droite que celles du site, ce qui donne une apparence plus naturelle.
Il y en a 29.
Merci a toi j'étai en pleine recherche mais celui la est tres bien
j'étai meme parti pour en creer!
EDIT : wai c'est bien la j'ai du taf pour adapter ca merci Phillinux
Dernière modification par daniel38100 (Le 20/03/2015, à 19:04)
Hors ligne
#1156 Le 20/03/2015, à 20:42
- Didier-T
Re : [Conky] Alternative à weather.com (3)
Bonsoir,
j'ai reçus la réponse de lunopia.com, sa risque de poser un petit soucis, il sont ok pour fournir une clef gratuitement, mais il ne faut pas la diffuser a moins de compiler le code, ce qui bien entendu me pose de gros soucis (un code compiler ne peut être modifié par son utilisateur).
Je vais donc chercher une autre solution.
Ce sera certainement ceci cerridwen, ce site nous propose d'installer notre propre serveur éphéméride, ça semble un peut extrême, mais il y a aussi possibilité d'interroger leur API en ligne (seul bémol, c'est en anglais).
Pour vous montrer ce a quoi ça ressemble voici un retour d'information pour Paris.
Pour info le serveur pèse 30 Mo (compressé).
A+,
Didier.
Hors ligne
#1157 Le 21/03/2015, à 08:26
- Didier-T
Re : [Conky] Alternative à weather.com (3)
Bonjour,
voici le début du script de récupération pour la lune (en python)
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Par Didier-T Pour les utilisateur de Météo Lua
import urllib, urllib2, json
class ephemeride():
def __init__(self):
data=self._past()
tableau=self._format(data)
self._sortie(tableau)
def _past(self):
req = urllib2.Request('http://cerridwen.viridian-project.de/api/v1/moon?latitude=48.85&longitude=2.34')
response = urllib2.urlopen(req)
return response.read()
def _format(self, data):
jstr=json.loads(data)
tableau=[]
for x in jstr:
for y in x:
if isinstance(x[y], dict):
for z in x[y]:
tableau.append(y+"_"+z+" = "+self._traduction(str(x[y][z])))
else:
tableau.append(y+" = "+self._traduction(str(x[y])))
return tableau
def _traduction(self, trad):
try:
ret=trad.replace("in", "en")\
.replace("moon", "lune").replace("Moon", "Lune")\
.replace("full", "pleine").replace("Full", "Pleine")\
.replace("rises", "montante")\
.replace("new", "nouvelle").replace("New", "Nouvelle")\
.replace("crescent", "Croissante").replace("waxeng", "Ascendante")\
.replace("Pisces", "Poissons").replace("Aries", u"Bélier").replace("Taurus", "Taureau").replace("Gemini", u"Gémeaux").replace("Leo", "Lion").replace("Virgo", "Vierge").replace("Libra", "Balance").replace("Scorpio", "Scorpion").replace("Sagittarius", "Sagittaire").replace("Capricorn", "Capricorne").replace("Aquarius", "Verseau")\
.replace("sets", "se couche")
except:
ret=trad
return ret
def _sortie(self, tableau):
print '\n'.join(tableau)
if __name__ == "__main__":
ephemeride()
Il est fonctionnel, reste a finaliser la traduction en français.
A+,
Didier.
Dernière modification par Didier-T (Le 21/03/2015, à 09:49)
Hors ligne
#1158 Le 21/03/2015, à 10:16
- loutch
Re : [Conky] Alternative à weather.com (3)
Didier ,étant sous mageia je le lance comment ???
Hors ligne
#1159 Le 21/03/2015, à 10:21
- Didier-T
Re : [Conky] Alternative à weather.com (3)
Bonjour loutch,
normalement tu fais
python nom_que_tu_as_donné_au_fichier
Hors ligne
#1160 Le 21/03/2015, à 10:31
- loutch
Re : [Conky] Alternative à weather.com (3)
Re
Plus précisemment .
Hors ligne
#1161 Le 21/03/2015, à 10:34
- Didier-T
Re : [Conky] Alternative à weather.com (3)
admet-on que tu nome le fichier phase.py
sa donnerait, dans un terminal ouvert la ou se situe le fichier
python phase.py
Hors ligne
#1162 Le 21/03/2015, à 10:37
- loutch
Re : [Conky] Alternative à weather.com (3)
re
J'ai ceci :
File "lune.py", line 4
SyntaxError: Non-ASCII character '\xc3' in file lune.py on line 4, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
Hors ligne
#1163 Le 21/03/2015, à 10:38
- Didier-T
Re : [Conky] Alternative à weather.com (3)
retire les accents sur météo
Hors ligne
#1164 Le 21/03/2015, à 10:46
- loutch
Re : [Conky] Alternative à weather.com (3)
Ok je viens de faire et aussi enlevé les accents sur Belier et Gemeaux
[romuald@localhost scripts]$ python lune.py
diameter = 33.1950008925
last_rise_jd = 2457102.76546
last_rise_delta_days = -0.139544351026
last_rise_description = Lune montante
last_rise_iso_date = 2015-03-21 06:22:16
illumination = 0.0785986421146
last_full_moon_jd = 2457087.25374
last_full_moon_delta_days = -15.6512598675
last_full_moon_description = Pleine lune en Vierge
last_full_moon_iso_date = 2015-03-05 18:05:23
speed = 14.9680290387
period_length = 29.389352907
next_full_moon_jd = 2457117.00386
next_full_moon_delta_days = 14.0988572715
next_full_moon_description = Pleine lune en Balance
next_full_moon_iso_date = 2015-04-04 12:05:34
jd = 2457102.90499
dignity = None
next_new_moon_jd = 2457131.28947
next_new_moon_delta_days = 28.3844692954
next_new_moon_description = Nouvelle lune en Belier
next_new_moon_iso_date = 2015-04-18 18:56:50
position_min = 36.1152014307
position_rel_tuple = [u'Belier', 14, 36, 6]
position_absolute_degrees = 14.6019200238
position_sign = Belier
position_sec = 6.91208584482
position_deg = 14.6019200238
last_new_moon_jd = 2457101.90012
last_new_moon_delta_days = -1.00488363719
last_new_moon_description = Nouvelle lune en Poissons
last_new_moon_iso_date = 2015-03-20 09:36:10
distance = 0.00240656488741
next_set_jd = 2457103.32337
next_set_delta_days = 0.418369913474
next_set_description = Lune se couche
next_set_iso_date = 2015-03-21 19:45:39
speed_ratio = 0.898607573857
last_set_jd = 2457102.26862
last_set_delta_days = -0.636383883655
last_set_description = Lune se couche
last_set_iso_date = 2015-03-20 18:26:49
age = 1.00487037376
next_rise_jd = 2457103.78912
next_rise_delta_days = 0.884117278736
next_rise_description = Lune montante
next_rise_iso_date = 2015-03-22 06:56:20
diameter_ratio = 0.811458519274
phase_trend = Ascendante
phase_shape = Croissante
phase_quarter = None
phase_quarter_english = None
iso_date = 2015-03-21 09:43:11
next_new_or_full_moon_jd = 2457117.00386
next_new_or_full_moon_delta_days = 14.0988572631
next_new_or_full_moon_description = Pleine lune en Balance
next_new_or_full_moon_iso_date = 2015-04-04 12:05:34
[romuald@localhost scripts]$
Ensuite comment afficher dans meteo6jours
Dernière modification par loutch (Le 21/03/2015, à 10:49)
Hors ligne
#1165 Le 21/03/2015, à 10:52
- Didier-T
Re : [Conky] Alternative à weather.com (3)
pour le moment, je n'en suis pas encore là
Hors ligne
#1166 Le 21/03/2015, à 10:53
- loutch
Re : [Conky] Alternative à weather.com (3)
Re
ok donc je vais attendre ,encore merci et
Bon week-end
@+
Hors ligne
#1167 Le 21/03/2015, à 12:59
- daniel38100
Re : [Conky] Alternative à weather.com (3)
Bonjour Didier-T
c un bon début a mon goût
j'avais penser vu qu'il y a les latitudes et longitudes dans l'adresse les récupéré dans CC pour avoir la lunaison au plus juste pour chaque localité
je verrais ça si j'ai un peu de temps ...
Didier-T j'ai supprimé le Pack Accuweather_v2.01.deb si tu peut modifier le post 1 et le pack accuweather-3 va passer en version 3.07 (actuellement v3.06)
Dernière modification par daniel38100 (Le 21/03/2015, à 15:08)
Hors ligne
#1168 Le 21/03/2015, à 15:15
- daniel38100
Re : [Conky] Alternative à weather.com (3)
les données ont changé ya du taf
Hors ligne
#1169 Le 21/03/2015, à 22:06
- daniel38100
Re : [Conky] Alternative à weather.com (3)
bon on va reprendre a zéro voila le script
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Par Daniel38100 Traduction par Didier-T
import urllib2
import os
import json
repsauv = '/opt/Accuweather/sauvegardes'
def convtime(tida):
heure=0
agelune=tida*24*60*60
agelune=int(agelune)
jour=0
while agelune > 86399 :
agelune=agelune-86400
jour=jour+1
heure=0
while agelune > 3599 :
agelune=agelune-3600
heure=heure+1
minute=0
while agelune > 60 :
agelune=agelune-60
minute=minute+1
while agelune > 60 :
agelune=agelune-60
minute=minute+1
seconde=agelune
print jour,heure,minute,secon
def latlon():
lalo1=open(repsauv+"/CC" , "r")
lalo="lat: "
for ll in lalo1:
if lalo in ll:
ll=ll.replace(lalo,'').replace('\n','')
adrr="http://cerridwen.viridian-project.de/api/v1/moon?latitude="+ll+"&longitude="
lalo1=open(repsauv+"/CC" , "r")
lalo="long: "
for ll in lalo1:
if lalo in ll:
ll=ll.replace(lalo,'').replace('\n','')
adrr=adrr+ll
print adrr
return adrr
def lunais(adress):
page=urllib2.Request(adress)
page=urllib2.urlopen(page)
page=page.read()
return page
def traitement():
page=lunais(latlon())
jstr=json.loads(page)
jstr=str(jstr).replace('[u','[').split(', u')
for t in jstr :
lunaiss=str(t).replace("in", "en").replace("u\'", "\'")\
.replace("moon", "lune").replace("Moon", "Lune")\
.replace("full", "pleine").replace("Full", "Pleine")\
.replace("rises", "montante")\
.replace("new", "nouvelle").replace("New", "Nouvelle")\
.replace("crescent", "Croissante").replace("waxeng", "Ascendante")\
.replace("Pisces", "Poissons").replace("Aries", u"Bélier").replace("Taurus", "Taureau").replace("Gemini", u"Gémeaux")\
.replace("Leo", "Lion").replace("Virgo", "Vierge").replace("Libra", "Balance").replace("Scorpio", "Scorpion")\
.replace("Sagittarius", "Sagittaire").replace("Capricorn", "Capricorne").replace("Aquarius", "Verseau")\
.replace("sets", "se couche").replace("[", "").replace("{", "").replace("}", "").replace("]", "").replace("\'", "")\
.replace("next", "prochaine").replace("prochaine_nouvelle_lune: ", "prochaine_nouvelle_lune:\n")\
.replace('prochaine_nouvelle_or_pleine_lune: ','prochaine_nouvelle_or_pleine_lune:\n')\
.replace('last_set: ','last_set:\n').replace('last_nouvelle_lune: ','last_nouvelle_lune:\n').replace('position: ','position:\n')\
.replace('position: ','position:\n').replace('position: ','position:\n').replace('prochaine_rise: ','prochaine_rise:\n')\
.replace('last_rise: ','last_rise:\n')
print lunaiss
traitement()
et voila ce que ca donne
daniel@daniel-Aspire-E1-731:~$ python lunaison.py
http://cerridwen.viridian-project.de/api/v1/moon?latitude=45.19&longitude=5.73
diameter: 33.049093081618174
last_rise:
jd: 2457102.7576350933
delta_days: -0.6150717637501657
description: Lune montante
iso_date: 2015-03-21 06:11:00
illumenation: 0.11474153389200346
last_pleine_lune: jd: 2457087.2537436443
delta_days: -16.11896318756044
description: Pleine lune en Vierge
iso_date: 2015-03-05 18:05:23
speed: 14.83446594680283
period_length: 29.389352906495333
prochaine_pleine_lune: jd: 2457117.003860748
delta_days: 13.63115394115448
description: Pleine lune en Balance
iso_date: 2015-04-04 12:05:34
jd: 2457103.372692799
dignity: None
prochaine_nouvelle_lune:
jd: 2457131.289472773
delta_days: 27.916765975765884
description: Nouvelle lune en Bélier
iso_date: 2015-04-18 18:56:50
position:
men: 34.34050196854244
rel_tuple: Bélier, 21, 34, 20
absolute_degrees: 21.572341699475707
sign: Bélier
sec: 20.430118112546438
deg: 21.572341699475707
last_nouvelle_lune:
jd: 2457101.9001198667
delta_days: -1.4725869568064809
description: Nouvelle lune en Poissons
iso_date: 2015-03-20 09:36:10
distance: 0.0024171935040546585
prochaine_set: jd: 2457104.361854213
delta_days: 0.9891473646275699
description: Lune se couche
iso_date: 2015-03-22 20:41:04
speed_ratio: 0.8611949430820253
last_set:
jd: 2457103.310560204
delta_days: -0.06214666087180376
description: Lune se couche
iso_date: 2015-03-21 19:27:12
age: 1.472572932485491
prochaine_rise:
jd: 2457103.783098992
delta_days: 0.41039215167984366
description: Lune montante
iso_date: 2015-03-22 06:47:40
diameter_ratio: 0.781061058670453
phase: trend: Ascendante
shape: Croissante
quarter: None
quarter_english: None
iso_date: 2015-03-21 20:56:41
prochaine_nouvelle_or_pleine_lune:
jd: 2457117.003860748
delta_days: 13.631153932306916
description: Pleine lune en Balance
iso_date: 2015-04-04 12:05:34
daniel@daniel-Aspire-E1-731:~$
j'aimerai voir la traduction avec un anglophone
par exemple "description: Pleine lune en Balance" c pas propre
Dernière modification par daniel38100 (Le 21/03/2015, à 22:09)
Hors ligne
#1170 Le 21/03/2015, à 22:07
- Didier-T
Re : [Conky] Alternative à weather.com (3)
Bonsoir,
je n'ai pas eut beaucoup de temps aujourd'hui, mais sa avance bien.
Voici la nouvelle mouture du script, j'y ajouterais ce qu'il faut pour le passage d'argument (ville).
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Par Didier-T Pour les utilisateur de Météo Lua
import urllib, urllib2, json
class ephemeride():
def __init__(self):
lat, lng=self._localisation("argenteuil")
data=self._past(lat, lng)
tableau=self._format(data)
tableau.append(self._agelune(data))
tableau.append(self._phaselune(data))
self._sortie(tableau)
def _localisation(self, ville):
req=urllib2.Request('http://maps.googleapis.com/maps/api/geocode/json?address='+ville+',%20france&sensor=false')
response = urllib2.urlopen(req)
jstr=json.loads(response.read())
return jstr["results"][0]["geometry"]["location"]["lat"], jstr["results"][0]["geometry"]["location"]["lng"]
def _past(self, lat, lng):
req = urllib2.Request('http://cerridwen.viridian-project.de/api/v1/moon?latitude='+str(lat)+'&longitude='+str(lng))
response = urllib2.urlopen(req)
return json.loads(response.read())
def _format(self, jstr):
tableau=[]
for x in jstr:
for y in x:
if isinstance(x[y], dict):
for z in x[y]:
tableau.append(y+"_"+z+" = "+self._traduction(str(x[y][z])))
else:
tableau.append(y+" = "+self._traduction(str(x[y])))
return tableau
def _phaselune(self, jstr):
if int(jstr[0]["position"]["deg"])<45:
return ("phase_de_la_lune = Premier croissant")
elif int(jstr[0]["position"]["deg"])<90:
return("phase_de_la_lune = Premier quartier")
elif int(jstr[0]["position"]["deg"])<135:
return("phase_de_la_lune = Lune gibbeuse croissante")
elif int(jstr[0]["position"]["deg"])<180:
return("phase_de_la_lune = PLeine lune")
elif int(jstr[0]["position"]["deg"])<215:
return("phase_de_la_lune = Lune gibbeuse décroissante")
elif int(jstr[0]["position"]["deg"])<270:
return("phase_de_la_lune = Dernier quartier")
elif int(jstr[0]["position"]["deg"])<315:
return("phase_de_la_lune = Dernier croissant")
else:
return("phase_de_la_lune = Nouvelle Lune")
def _agelune(self, jstr):
jour=int(jstr[0]["age"])
heure=int((jstr[0]["age"]-jour)*24)
minute=int((((jstr[0]["age"]-jour)*24)-heure)*60)
return str(jour)+" jours "+str(heure)+" h "+str(minute)+" m"
def _traduction(self, trad):
try:
ret=trad.replace("in", "en")\
.replace("moon", "lune").replace("Moon", "Lune")\
.replace("full", "pleine").replace("Full", "Pleine")\
.replace("rises", "montante")\
.replace("new", "nouvelle").replace("New", "Nouvelle")\
.replace("crescent", "Croissante").replace("waxeng", "Ascendante")\
.replace("Pisces", "Poissons").replace("Aries", u"Bélier").replace("Taurus", "Taureau").replace("Gemini", u"Gémeaux").replace("Leo", "Lion").replace("Virgo", "Vierge").replace("Libra", "Balance").replace("Scorpio", "Scorpion").replace("Sagittarius", "Sagittaire").replace("Capricorn", "Capricorne").replace("Aquarius", "Verseau")\
.replace("sets", "se couche")
except:
ret=trad
return ret
def _sortie(self, tableau):
print '\n'.join(tableau)
if __name__ == "__main__":
ephemeride()
Donc pour suivre l'évolution du truc, nous avons :
un bon début de traduction
l'ajout de la Phase
age de la lune en jours, heures, minutes
localisation de la commune désirée grâce à google
Le but est de faire un script autonome, qui pourras être utilisé en dehors de météo lua.
A+,
Didier.
@daniel38100, je trouve tes idées excellentes (le coup de récupérer la position GPS de chaque ville pour avoir les prévisions au plus près ), mais tu devrais utiliser la bibliothèque json (ça te donnerais un nom de variable complet, plus simple pour la suite)
Hors ligne
#1171 Le 21/03/2015, à 22:15
- daniel38100
Re : [Conky] Alternative à weather.com (3)
à Didier-T
je suis en train d’étudier ça je connais pas trop cette bibliothèque
Hors ligne
#1172 Le 21/03/2015, à 22:19
- Didier-T
Re : [Conky] Alternative à weather.com (3)
en fait elle te trasforme le json en tableau et dictionnaire, je trouve sa génial
Hors ligne
#1173 Le 22/03/2015, à 08:06
- Didier-T
Re : [Conky] Alternative à weather.com (3)
Bonjour,
je pense avoir fini avec le script de lunaison
lunaison.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Par Didier-T Pour les utilisateur de Météo Lua
import urllib, urllib2, json, sys, getopt
class ephemeride():
def __init__(self):
self.arguments()
lat, lng=self._localisation(self.ville)
data=self._past(lat, lng)
tableau=self._format(data)
tableau.append(self._agelune(data))
tableau.append(self._phaselune(data))
self._sortie(tableau)
def _localisation(self, ville):
req=urllib2.Request('http://maps.googleapis.com/maps/api/geocode/json?address='+ville+',%20france&sensor=false')
response = urllib2.urlopen(req)
jstr=json.loads(response.read())
return jstr["results"][0]["geometry"]["location"]["lat"], jstr["results"][0]["geometry"]["location"]["lng"]
def _past(self, lat, lng):
req = urllib2.Request('http://cerridwen.viridian-project.de/api/v1/moon?latitude='+str(lat)+'&longitude='+str(lng))
response = urllib2.urlopen(req)
return json.loads(response.read())
def _format(self, jstr):
tableau=[]
for x in jstr:
for y in x:
if isinstance(x[y], dict):
for z in x[y]:
tableau.append(y+"_"+z+" = "+self._traduction(str(x[y][z])))
else:
tableau.append(y+" = "+self._traduction(str(x[y])))
return tableau
def _phaselune(self, jstr):
if int(jstr[0]["position"]["deg"])<45:
return ("phase_de_la_lune = Premier croissant")
elif int(jstr[0]["position"]["deg"])<90:
return("phase_de_la_lune = Premier quartier")
elif int(jstr[0]["position"]["deg"])<135:
return("phase_de_la_lune = Lune gibbeuse croissante")
elif int(jstr[0]["position"]["deg"])<180:
return("phase_de_la_lune = PLeine lune")
elif int(jstr[0]["position"]["deg"])<215:
return("phase_de_la_lune = Lune gibbeuse décroissante")
elif int(jstr[0]["position"]["deg"])<270:
return("phase_de_la_lune = Dernier quartier")
elif int(jstr[0]["position"]["deg"])<315:
return("phase_de_la_lune = Dernier croissant")
else:
return("phase_de_la_lune = Nouvelle Lune")
def _agelune(self, jstr):
jour=int(jstr[0]["age"])
heure=int((jstr[0]["age"]-jour)*24)
minute=int((((jstr[0]["age"]-jour)*24)-heure)*60)
return "iso = "+str(jour)+" jours "+str(heure)+" h "+str(minute)+" m"
def _traduction(self, trad):
try:
ret=trad.replace("in", "en")\
.replace("moon", "lune").replace("Moon", "Lune")\
.replace("full", "pleine").replace("Full", "Pleine")\
.replace("new", "nouvelle").replace("New", "Nouvelle").replace("rises", "montante")\
.replace("first", "tremier").replace("third", u"troisième").replace("quarter", "quartier")\
.replace("crescent", "croissante").replace("waning", u"décroissante")\
.replace("gibbous","Gibbeuse").replace("waxeng", "ascendante")\
.replace("Pisces", "Poissons").replace("Aries", u"Bélier").replace("Taurus", "Taureau").replace("Gemini", u"Gémeaux")\
.replace("Leo", "Lion").replace("Virgo", "Vierge").replace("Libra", "Balance").replace("Scorpio", "Scorpion")\
.replace("Sagittarius", "Sagittaire").replace("Capricorn", "Capricorne").replace("Aquarius", "Verseau")\
.replace("sets", "se couche")
except:
ret=trad
return ret
def _sortie(self, tableau):
print '\n'.join(tableau)
# Définis les arguments passés en ligne de commande, lance usage() si besoin ou aide demandée
def arguments(self):
try:
opts, args = getopt.getopt(sys.argv[1:], "v:ch", ["ville=","commune=", "help"])
except getopt.GetoptError as err:
# Affiche l'aide et quitte le programme
self.usage()
sys.exit(2)
if opts==[]:
self.usage()
sys.exit(2)
self.getlist=[]
self.fileout=0
for o, a in opts:
if o in ("-v", "--ville"):
self.ville=a
if o in ("-c", "--commune"):
region=a
elif o in ("-h", "--help"):
self.usage()
sys.exit()
try:
self.ville=self.ville+","+region
except:
pass
# Aide à l'utilisation du script
def usage(self):
print("\nUtilisation: lunaison.py --ville=[nom de la ville] --commune=[nom de la commune]\n\
retourne les informations concernant la lune visible depuis la ville renseignée.\n\
\n\
Liste des paramètres obligatoires pour l'accès aux données :\n\
-v, --ville Nom de la ville\n\
Liste des paramètres optionnel pour l'accès aux données :\n\
-c, --commune Nom de la commune\n\
\n\
--help Affiche l'aide et quitte\n")
if __name__ == "__main__":
ephemeride()
ce lance depuis un terminal avec argument(s)
-v ou --ville= nom de la ville (avec des - a la place des espaces)
-c ou --commune= nom de la commune (avec des - a la place des espaces) cette argument est optionnel
retour pour la commande suivante
python lunaison.py --ville=Saint-Maximin --commune=gard
diameter = 32.8914139161
last_rise_jd = 2457103.78783
last_rise_delta_days = -0.00782587332651
last_rise_description = Lune montante
last_rise_iso_date = 2015-03-22 06:54:29
illumination = 0.14710123326
last_full_moon_jd = 2457087.25374
last_full_moon_delta_days = -16.5419149394
last_full_moon_description = Pleine lune en Vierge
last_full_moon_iso_date = 2015-03-05 18:05:23
speed = 14.6922702198
period_length = 29.3893529065
next_full_moon_jd = 2457117.00386
next_full_moon_delta_days = 13.2082022
next_full_moon_description = Pleine lune en Balance
next_full_moon_iso_date = 2015-04-04 12:05:34
jd = 2457103.79564
dignity = None
next_new_moon_jd = 2457131.28947
next_new_moon_delta_days = 27.4938142132
next_new_moon_description = Nouvelle lune en Bélier
next_new_moon_iso_date = 2015-04-18 18:56:50
position_min = 49.0329297239
position_rel_tuple = [u'Bélier', 27, 49, 1]
position_absolute_degrees = 27.8172154954
position_sign = Bélier
position_sec = 1.97578343156
position_deg = 27.8172154954
last_new_moon_jd = 2457101.90012
last_new_moon_delta_days = -1.89553871891
last_new_moon_description = Nouvelle lune en Poissons
last_new_moon_iso_date = 2015-03-20 09:36:10
distance = 0.0024287844764
next_set_jd = 2457104.36419
next_set_delta_days = 0.568529751617
next_set_description = Lune se couche
next_set_iso_date = 2015-03-22 20:44:26
speed_ratio = 0.821364207238
last_set_jd = 2457103.31344
last_set_delta_days = -0.482221316081
last_set_description = Lune se couche
last_set_iso_date = 2015-03-21 19:31:21
age = 1.8955248245
next_rise_jd = 2457104.8153
next_rise_delta_days = 1.01964266971
next_rise_description = Lune montante
next_rise_iso_date = 2015-03-23 07:34:02
diameter_ratio = 0.748211232523
phase_trend = ascendante
phase_shape = croissante
phase_quarter = None
phase_quarter_english = None
iso_date = 2015-03-22 07:05:44
next_new_or_full_moon_jd = 2457117.00386
next_new_or_full_moon_delta_days = 13.2082021916
next_new_or_full_moon_description = Pleine lune en Balance
next_new_or_full_moon_iso_date = 2015-04-04 12:05:34
iso = 1 jours 21 h 29 m
phase_de_la_lune = Premier croissant
Dernière modification par Didier-T (Le 22/03/2015, à 08:08)
Hors ligne
#1174 Le 22/03/2015, à 13:55
- Phyllinux
Re : [Conky] Alternative à weather.com (3)
@ toutes et tous,
Je veux bien prendre à mon compte la traduction française .
Juste une petite remarque :
Comme il est indiqué sur la page d'accueil de Cerridwen :
Cerridwen provides solar system data that is suitable for both astronomical and astrological purposes.
Ce qui fait que les données extraites sont aussi bien du domaine astronomique qu'astrologique. Je ne sais pas si cela est d'un grand intérêt de savoir que la lune se situe dans la maison du Scorpion ou du Lion pour les conkys...
Avec les données qui étaient extraites sur le site nous av(i)ons :
La phase de lune (Pleine lune, 1er croissant, gibbeuse....)
La visibilité en pourcentage
La distance entre terre et lune
"L'âge" de la lune
La phase (croissante ou décroissante)
La trajectoire (ascendante ou descendante)
La date de la prochaine éclipse
Les dates des prochains apogée, périgée et noeud lunaire
Les heures de lever et de coucher le lune (et de soleil)
Toutes ces données astronomiques ne sont pas forcément utiles, c'est bien vrai pour la majorité d'entre nous, au même titre que le positions de la lune sur le calendrier zodiacal qui sont éditées avec le script...
The ship is sinking normally...
Hors ligne
#1175 Le 22/03/2015, à 15:26
- Didier-T
Re : [Conky] Alternative à weather.com (3)
Bonjour Phyllinux,
en fait, il est plus simple de récurer toutes les données fournis par l'API Cerridwen, même s'il est certain que très peut d'informations sont pertinente pour nous, et que d'autres manque.
Mais ensuite il suffit de n'utiliser que ce qui nous intéresse et calculer ou déterminer les infos manquante avec les infos disponibles, comme fait avec l'age et la phase, par contre en regardant la liste que tu as faite, je vois qu'il manque "la visibilité en pourcentage".
Hors ligne