#351 Le 11/12/2011, à 13:18
#352 Le 11/12/2011, à 13:38
- destroyedlolo
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
destroyedlolo a écrit :...
Mais pourquoi y aurait-il des fuites de mémoires dans LUA ?Pourquoi je ne sais pas, mais je l'ai constaté cher moi sur un conky utilisant le script ring.lua, la consommation de ce conky est passer d'environ 4Mo à près de 50Mo en quelques heures (~5 si je me souviens bien), je limite donc au maximum l'utilisation des script lua à regret, car ils donnent des résultats magnifiques.
Hum, d'apres ce que j'ai lu sur le net, je ne pense pas que Lua soit fautif mais plus les scripts qui ne liberent pas correctement les resources cairos ...
Quoi qu'il soit, je vais surveille ce que donne mon script sur la duree
Hors ligne
#353 Le 11/12/2011, à 18:50
- destroyedlolo
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Carpediem, c'est VRAIMENT tres beau
Je virerai peut être juste l'horloge dans le panel en bas qui est redondant avec le Conky, mais c'est une belle réussite.
Hors ligne
#354 Le 11/12/2011, à 20:16
- destroyedlolo
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Et voici la version finale avec Google.
Et les scripts qui vont bien :
alignment top_left
double_buffer yes
default_color white
background no
update_interval 1.0 # Sera changé dans le script une fois les données récupérées
out_to_console no
out_to_stderr no
own_window yes
own_window_class Conky
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent yes
lua_load GoogleMeteo.lua
TEXT
${if_empty ${lua GoogleMeteo_Maj ${curl http://www.google.com/ig/api?weather=Annecy/France&oe=utf8&hl=fr 15 }}}
En attente ...
${else}${iconv_start UTF-8 ISO_8859-1}${color Green}${lua GoogleMeteo_city}${offset 8}$color${voffset -2}${hr}
${color grey}Condition à : $color${time %H:%M:%S}
${lua_parse GoogleMeteo_Icon}${offset 42}${color grey}Température : ${color orange}${lua GoogleMeteo_Temperature } °C
${offset 42}${color grey}Humidité : $color${lua GoogleMeteo_humidity}%
${offset 42}${color grey}Vent : $color${lua GoogleMeteo_Wind}
${voffset 3}
${color grey}Prévision pour ${color orange}Aujourd'hui ${offset 8}${color grey}${voffset -2}${hr}
${lua_parse GoogleMeteo_pIcon 1}${offset 42}$color${lua GoogleMeteo_date }
${offset 42}${color grey}Températures : $color${lua GoogleMeteo_pMini 1} ${color grey}/ $color${lua GoogleMeteo_pMaxi 1} ${color grey}°C
${color grey}Prévision pour les jours suivants ${offset 8}${color grey}${voffset -2}${hr}
${lua_parse GoogleMeteo_pIcon 2}${lua_parse GoogleMeteo_pIcon 3}${lua_parse GoogleMeteo_pIcon 4}
${voffset 22} ${color orange}${lua GoogleMeteo_pJour 2}${offset 59}${lua GoogleMeteo_pJour 3}${offset 53}${lua GoogleMeteo_pJour 4}
$color${lua GoogleMeteo_pMinif 2} ${color grey}/ $color${lua GoogleMeteo_pMaxif 2} ${color grey}°C ${offset 10}$color${lua GoogleMeteo_pMinif 3} ${color grey}/ $color${lua GoogleMeteo_pMaxif 3} ${color grey}°C${offset 10}$color${lua GoogleMeteo_pMinif 4} ${color grey}/ $color${lua GoogleMeteo_pMaxif 4} ${color grey}°C
$color$hr${iconv_stop}
${endif}
require "lxp"
ICONS_DIR='icons/' -- Where to find icons
function conky_GoogleMeteo_Maj( cmd )
s = conky_parse( cmd )
if s == "" then -- Pas de reponse
return ""
end
conky_set_update_interval(900) -- Pas besoin d'avoir des mise a jour frequentes : 15'
-- Construit la reponse
prevision = {}
local idx=0
local current_conditions = false; local forecast_conditions = false
callbacks = {
StartElement = function (parser, name, attrs)
if name == "city" then
city = attrs.data;
elseif name == "forecast_date" then
forecast_date = attrs.data
elseif name == "condition" then
if current_conditions then
condition = attrs.data
elseif forecast_conditions then
fcondition = attrs.data
end
elseif name == "icon" then
-- 20 = len("/ig/images/weather/")
local icn = string.sub( attrs.data, 20)
if current_conditions then
icon = icn
elseif forecast_conditions then
ficon = icn
end
elseif name == "humidity" then
humidity = string.match(attrs.data, "%d+")
elseif name == "wind_condition" then
wind_condition = string.gsub(attrs.data, "%a+ : ", "" )
elseif name == "temp_c" then
temperature = attrs.data
elseif name == "current_conditions" then
current_conditions = true
elseif name == "forecast_conditions" then
forecast_conditions = true
idx = idx + 1
elseif name == "day_of_week" then
jour = attrs.data
elseif name == "low" then
minimum = attrs.data
elseif name == "high" then
maximum = attrs.data
end
end,
EndElement = function (parser, name)
if name == "current_conditions" then
current_conditions = false
elseif name == "forecast_conditions" then
prevision[idx] = { jour=jour, condition=fcondition, minimum=minimum, maximum=maximum, icon=ficon }
forecast_conditions = false
end
end
}
p = lxp.new(callbacks)
p:parse(s)
p:parse()
p:close()
-- Formate la date de la prévision
local a,m,j = forecast_date:match("(%d+)-(%d+)-(%d+)")
forecast_date = os.time{year=a, month=m, day=j, hour=0}
return "ok"
end
function conky_GoogleMeteo_date()
return os.date("%a %d %b %Y", forecast_date)
end
function conky_GoogleMeteo_city()
return city
end
function conky_GoogleMeteo_condition()
return condition
end
function conky_GoogleMeteo_humidity()
return humidity
end
function conky_GoogleMeteo_Wind()
return wind_condition
end
function conky_GoogleMeteo_Temperature()
return temperature
end
function conky_GoogleMeteo_Icon()
return "${image ".. ICONS_DIR .. icon .." -p 0,28 }"
end
function conky_GoogleMeteo_pJour( idx )
return prevision[tonumber(idx)].jour
end
function conky_GoogleMeteo_pCondition( idx )
return prevision[tonumber(idx)].condition
end
function conky_GoogleMeteo_pMini( idx )
return prevision[tonumber(idx)].minimum
end
function conky_GoogleMeteo_pMinif( idx )
return string.format("%2d", prevision[tonumber(idx)].minimum)
end
function conky_GoogleMeteo_pMaxi( idx )
return prevision[tonumber(idx)].maximum
end
function conky_GoogleMeteo_pMaxif( idx )
return string.format("%2d", prevision[tonumber(idx)].maximum)
end
function conky_GoogleMeteo_pIcon( idx )
idx = tonumber(idx)
if idx == 1 then
return "${image ".. ICONS_DIR .. prevision[1].icon .." -p 0,92 }"
elseif idx == 2 then
return "${image ".. ICONS_DIR .. prevision[2].icon .." -p 9,151 }"
elseif idx == 3 then
return "${image ".. ICONS_DIR .. prevision[3].icon .." -p 85,151 }"
elseif idx == 4 then
return "${image ".. ICONS_DIR .. prevision[4].icon .." -p 161,151 }"
else
return "Mauvais index"
end
end
Les icones doivent se trouver dans un sous-repertoire icons du repertoire courent. Je vous laisse les recuperer depuis le lien que j'avais donné car je ne pense pas qu'il soit libre de droit (j'en sais rien).
Au passage, le 12 en plaine pour mercredi fait un peu peur pour la neige mais bon ... faut faire avec
Je m'attaque maintenant a meteorologic pour avoir des infos plus completes et sur aussi sur les stations ... qq'un saurait-il ou je peux trouver l'épaisseur de neige ? ( A nouveau en API ou en flux RSS).
Bye
Dernière modification par destroyedlolo (Le 11/12/2011, à 20:19)
Hors ligne
#355 Le 12/12/2011, à 09:47
- shamen456
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
@Didier-T : merci pour le script, ça marche sans problèmes... j 'ai maintenant mon fond d'horloge qui change en fonction de l'heure... la journée j'ai l'image du ciel et la nuit la lune....
Est-ce que tu connaîtrais un site (convivial...pas juste les pages man pour apprendre à créer des scripts Bash... car j'ai des problèmes avec la mise en forme ( pourquoi [ a la place de (( ou && a la place de || ??)...car apparemment la logique est bonne..
Bon Conky à Tous
Hors ligne
#356 Le 12/12/2011, à 10:44
- destroyedlolo
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Generalement, il y a de bonnes choses sur le site du Zero ...
Par contre, pour des trucs qui tournent souvent, il faut faire attention aux perfs avec les scripts shell ...
Hors ligne
#357 Le 12/12/2011, à 13:02
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
@Didier-T : merci pour le script, ça marche sans problèmes... j 'ai maintenant mon fond d'horloge qui change en fonction de l'heure... la journée j'ai l'image du ciel et la nuit la lune....
Est-ce que tu connaîtrais un site (convivial...pas juste les pages man pour apprendre à créer des scripts Bash... car j'ai des problèmes avec la mise en forme ( pourquoi [ a la place de (( ou && a la place de || ??)...car apparemment la logique est bonne..
Bon Conky à Tous
Quand je cherche une bonne doc je passe par wikipedia, ensuite il suffit de suivre les liens externes.
Les [ pour les valeurs "numérique" (donc plus d'espace à la fin des nombres)
Et le && signifie "ET logique"
Hors ligne
#358 Le 13/12/2011, à 08:39
- Phyllinux
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
@ shamen456 et carpediem :
Une petite question concernant le baromètre :
Je souhaiterais changer la couleur de l'aiguille de la pression, mais je ne trouve pas la ligne qui définit l'argument 'couleur'.
Elle est actuellement grise. Or sur le conky de carpediem, elle est rouge.
J'ai eu beau repasser en revue les différents fichiers, je n'arrive pas à trouver à quel endroit cette couleur est définie.
Merci
The ship is sinking normally...
Hors ligne
#359 Le 13/12/2011, à 09:43
- carpediem
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Salut @Phyllinux, pour modifier la couleur des aiguilles tu dois changer les codes de couleur dans le baro.lua
lignes 46/68/89 "hand_fg_colour=0xFF0000, hand_fg_alpha=.5,"
baro.lua
--==============================================================================
-- baro.lua
--
-- author : SLK-adapted by shamen456
-- version : v2011-06-13
-- license : Distributed under the terms of GNU GPL version 2 or later
--
--==============================================================================
require 'cairo'
--------------------------------------------------------------------------------
-- gauge DATA
gauge = {
{
name='cpu', arg='', max_value=1060, sub_value=960,
x=175, y=150,
graph_radius=60,
graph_thickness=10,
graph_start_angle=235,
graph_unit_angle=2.5, graph_unit_thickness=2.,
graph_bg_colour=0xFFFFFF, graph_bg_alpha=0.4,
graph_fg_colour=0xB1ADA7, graph_fg_alpha=0,
hand_fg_colour=0x000000, hand_fg_alpha=.0,
txt_radius=0,
txt_weight=0, txt_size=10.0,
txt_fg_colour=0xFFFFFF, txt_fg_alpha=0,
graduation_radius=50,
graduation_thickness=8, graduation_mark_thickness=2,
graduation_unit_angle=18,
graduation_fg_colour=0x4F4B41, graduation_fg_alpha=0,
caption='',
caption_weight=1, caption_size=8.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.8,
},
{
name='execpi', arg='120 bash ~/conky/conkymeteo/afmeteo pression cc|sed "s/ mb//"|sed "s/,/\./"', max_value=1050, sub_value=950,
x=175, y=150,
graph_radius=30,
graph_thickness=70,
graph_start_angle=255,
graph_unit_angle=2.1, graph_unit_thickness=2.,
graph_bg_colour=0xFFFFFF, graph_bg_alpha=0.4,
graph_fg_colour=0xB1ADA7, graph_fg_alpha=0,
hand_fg_colour=0xFF0000, hand_fg_alpha=.5,
txt_radius=20,
txt_weight=0, txt_size=10.0,
txt_fg_colour=0xFFFFFF, txt_fg_alpha=0,
graduation_radius=70,
graduation_thickness=8, graduation_mark_thickness=2,
graduation_unit_angle=18,
graduation_fg_colour=0x4F4B41, graduation_fg_alpha=1,
caption='',
caption_weight=1, caption_size=8.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.8,
},
{
name='execi', arg='120 ~/conky/conkymeteo/afmeteo temp_res cc',
max_value=60, sub_value=-30,--valeur de depart du graphe
x=175, y=200,
graph_radius=20,
graph_thickness=40,
graph_start_angle=75,
graph_unit_angle=2.33, graph_unit_thickness=1.5,
graph_bg_colour=0xFFFFFF, graph_bg_alpha=0.4,
graph_fg_colour=0xB1ADA7, graph_fg_alpha=0,
hand_fg_colour=0xFF0000, hand_fg_alpha=1,
txt_radius=18,
txt_weight=1, txt_size=10.0,
txt_fg_colour=0xC0C0FF, txt_fg_alpha=0,
graduation_radius=20,
graduation_thickness=8, graduation_mark_thickness=2,
graduation_unit_angle=11.6,
graduation_fg_colour=0x4F4B41, graduation_fg_alpha=0.6,
caption='',
caption_weight=1, caption_size=8.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
},
{
name='execi', arg='120 ~/conky/conkymeteo/afmeteo temp cc', max_value=60, sub_value=-30,
x=175, y=200,
graph_radius=20,
graph_thickness=40,
graph_start_angle=75,
graph_unit_angle=2.33, graph_unit_thickness=1.5,
graph_bg_colour=0xFFFFFF, graph_bg_alpha=0.,
graph_fg_colour=0xB1ADA7, graph_fg_alpha=0,
hand_fg_colour=0xED7F77, hand_fg_alpha=1,
txt_radius=30,
txt_weight=1, txt_size=10.0,
txt_fg_colour=0xED7F77, txt_fg_alpha=0,
graduation_radius=22,
graduation_thickness=14, graduation_mark_thickness=2,
graduation_unit_angle=23.3,
graduation_fg_colour=0x4F4B41, graduation_fg_alpha=1,
caption='',
caption_weight=1, caption_size=8.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
},
}
-------------------------------------------------------------------------------
-- rgb_to_r_g_b
-- converts color in hexa to decimal
--
function rgb_to_r_g_b(colour, alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
-------------------------------------------------------------------------------
-- angle_to_position
-- convert degree to rad and rotate (0 degree is top/north)
--
function angle_to_position(start_angle, current_angle)
local pos = current_angle + start_angle
return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) )
end
-------------------------------------------------------------------------------
-- draw_gauge_ring
-- displays gauges
--
function draw_gauge_ring(display, data, value)
local max_value = data['max_value']-data['sub_value']
local sub_value = data['sub_value']
local x, y = data['x'], data['y']
local graph_radius = data['graph_radius']
local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
local graph_start_angle = data['graph_start_angle']
local graph_unit_angle = data['graph_unit_angle']
local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha']
local graph_end_angle = (max_value * graph_unit_angle) % 360
-- background ring
cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle))
cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
cairo_set_line_width(display, graph_thickness)
cairo_stroke(display)
-- arc of value
local val = (value-sub_value) % (max_value + 1)
local start_arc = 0
local stop_arc = 0
local i = 1
while i <= val do
start_arc = (graph_unit_angle * i) - graph_unit_thickness
stop_arc = (graph_unit_angle * i)
cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha))
cairo_stroke(display)
i = i + 1
end
local angle = start_arc
-- hand
start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2)
stop_arc = (graph_unit_angle * val)
cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha))
cairo_stroke(display)
-- graduations marks
local graduation_radius = data['graduation_radius']
local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
local graduation_unit_angle = data['graduation_unit_angle']
local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
local nb_graduation = graph_end_angle / graduation_unit_angle
local i = 0
while i < nb_graduation do
cairo_set_line_width(display, graduation_thickness)
start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2)
stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2)
cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
cairo_stroke(display)
cairo_set_line_width(display, graph_thickness)
i = i + 1
end
end
-- text
local txt_radius = data['txt_radius']
local txt_weight, txt_size = data['txt_weight'], data['txt_size']
local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle))
local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle))
cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight)
cairo_set_font_size (display, txt_size)
cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3)
cairo_show_text (display, value)
cairo_stroke (display)
-- caption
local caption = data['caption']
local caption_weight, caption_size = data['caption_weight'], data['caption_size']
local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha']
local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight);
cairo_set_font_size (display, caption_size)
cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha))
cairo_move_to (display, x + tox + 5, y + toy + 1)
-- bad hack but not enough time !
if graph_start_angle < 105 then
cairo_move_to (display, x + tox - 30, y + toy + 1)
end
cairo_show_text (display, caption)
cairo_stroke (display)
end
-------------------------------------------------------------------------------
-- go_gauge_rings
-- loads data and displays gauges
--
function go_gauge_rings(display)
local function load_gauge_rings(display, data)
local str, value = '', 0
str = string.format('${%s %s}',data['name'], data['arg'])
str = conky_parse(str)
value = tonumber(str)
draw_gauge_ring(display, data, value)
end
for i in pairs(gauge) do
load_gauge_rings(display, gauge[i])
end
end
-------------------------------------------------------------------------------
-- MAIN
function conky_main()
if conky_window == nil then
return
end
local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
local display = cairo_create(cs)
local updates = conky_parse('${updates}')
update_num = tonumber(updates)
if update_num > 5 then
go_gauge_rings(display)
end
end
"Carpe diem quam minimum credula postero"
(Cueille le jour présent, en te fiant le moins possible au lendemain.)
HORACE
Hors ligne
#360 Le 13/12/2011, à 09:49
- shamen456
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
@Phyllinux : tu dois aller changer ca dans le fichier "baro.lua", hand_fg_colour=0x******
pour l'aiguille du barometre c'est la ligne 47, col 22
pour avoir le code couleur hexadecimal, je te conseille d'installer KColorChooser
Hors ligne
#361 Le 13/12/2011, à 09:53
- shamen456
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
@Carpediem: Arrghh... coiffé sur le poteau....;)
...c'est bizarre j'ai une ligne en plus dans le lua...
Bon Conky à Tous...
Hors ligne
#362 Le 13/12/2011, à 10:06
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
@Carpediem: Arrghh... coiffé sur le poteau....;)
...c'est bizarre j'ai une ligne en plus dans le lua...
Bon Conky à Tous...
Tu utilise certainement la version que j'ai modifié, la ligne en plus doit être pour le ratio
Hors ligne
#363 Le 13/12/2011, à 10:14
- Phyllinux
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
@ carpediem et shamen456
Merci beaucoup, et félicitations pour votre réactivité
Pour moi, c'était bien ligne 47 ! J'utilise la version de Didier-T, avec le ratio qiu permet de jouer sur la taille.
The ship is sinking normally...
Hors ligne
#364 Le 13/12/2011, à 13:44
- destroyedlolo
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Bonjour,
est-ce que qq'un serait s'il existe un service distribuant sous forme d'API XML ou du meme genre les donnees d'enneigement des stations ?
J'ai trouver une interface complete chez http://www.mountainnews.fr mais il semble que ce soit un service payant ...
Merci
Update :
Hum, je viens de trouver my weather qui semble faire exactement ce que je cherche.
Est-ce que qq'un aurait une experience avec ce site et surtout avec leur API XML ?
Dernière modification par destroyedlolo (Le 13/12/2011, à 14:03)
Hors ligne
#365 Le 13/12/2011, à 19:55
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Bonjour destroyedlolo,
Je ne trouve pas ce tu cherche mais le site allosurf.net semble intéressant (pour les prévisions météo), par contre que des donnés page web, mais facilement exploitable ( du moins il semble ) .
Et le site infosski.com pour les infos concernant l'état actuel des stations.
Dernière modification par Didier-T (Le 13/12/2011, à 20:06)
Hors ligne
#366 Le 14/12/2011, à 10:59
- destroyedlolo
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Salut Didier,
En effet je connais ces sites (je suis meme abonne a infosski pour les annonces peuf )
Maintenant, je prefererai avoir directement des flux XML car extraire les infos d'une page HTML en LUA risque d'etre franchement lourd ... apres, ca ne merite pas de faire plus d'une update par jour mais bon ...
J'ai commence a bosser sur myweather ; les informations sont vraiment partielles par rapport a ce qu'ils disent proposer :
y'a le minimum pour le niveau neige (normalement ils devraient fournir les conditions en station et aux sommets ... mais on obtient que des chiffres globaux Min/Max)
je n'obtiens que 2 jours de previsions meteo ... et en plus, reduite.
enfin, mais c'etait clair depuis le debut, une seule station n'est accessible a un instant donne (sans doute pour promouvoir les solutions payantes
Bref, pour le moment ... entre prometteur et bof. Mais je vais voir avec eux si on peut avoir plus sans passer a la version payante.
Sinon, mes tests ont ete profitable vu que j'ai complement refait mon parser XML par rapport a la meteo Google, plus flexible, plus generique (tant que les champs ne sont pas dupplique).
Donc c'est cool, je commence a bien maitriser LUA malgres que sa document est plutot partiate ...
C'est marrant car ils presentaient ca (je ne sais plus ou), comme base sur la syntaxe du C. Perso, je trouve que ca ressemble plus a du BASIC qu'autre chose ... et je regrete vraiment les structures a la
var++
et autre
var += 15
Hors ligne
#367 Le 14/12/2011, à 11:27
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Bonjour à tous,
je me suis un peut pencher sur mon script météo, pour le rendre plus rapide, mais en fait le soucis principal est l’accès aux page météo, et certainement pour certains la vitesse du disque dur.
J'ai donc un peut modifier mon script ainsi que la notice.
Nous avons deux paramètres en plus dans meteo.cfg
TempShell = Disque rapide ou mieux disque Ram
update = Temps entre deux mise à jours prévisions météo
Gains obtenu sur mon poste :
10% pour toutes les mises à jour
et pour les mises à jours intermédiaires je divise par 4
Les liens sont mis à jours
Hors ligne
#368 Le 17/12/2011, à 20:00
- Swiss_Knight
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Bonsoir,
j'ai plus la météo dans mon conky et c'est à cause du site weather.com si j'ai bien compris (...).
Bref, le conky qu'y a sur mon ordinateur est en fait celui de VinDSL que j'ai modifié un peu pour être adapté à mon écran etc. mais la section météo est vide.
Quelqu'un aurait-il un bout de code pour remplacer la partie météo qui va plus ?
Et puis : je n'ai pas trouvé de liens sur le premier post, renvoyant à des posts d'intérêt général, comme par exemple des descriptions de ce qui doit être fait, pas-à-pas, ou encore vers quel(s) site(s) aller pour souscrire à une sorte de flux de données météo ? puisque weather.com ne marche plus gratuitement, qu'est-ce qui va bien à la place ? Des conseils ?
Et ensuite ? Pour remplacer la partie "météo" dans mon conky, qu'est-ce qu'il faut faire ? y a-t-il de nouveaux fichiers à créer ? d'autres paquets à télécharger que conkyforecast ? doit-on l'enlever celui-ci ?
Pour le moment mon fichier ~/.conkyrc fait appel à d'autres fichiers qui finissent en .lua et que j'ai du mettre dans un dossier ~/.conky et si j'ai bien compris, ils servent à faire des petites barres comme des vu-mètres. Enfin bref, je suis un peu perdu en lisant des thread ici et sur le forum anglophone :S par contre j'ai découvert un site sympa pour les données météo (underground qqch) mais c'est le seul que j'ai trouvé...
Voilà, ma requête est celle du débutant, donc je n'attends pas une réponse en un bloc mais plutôt quelques contributions qui puissent me faire avancer dans la bonne direction.
xuniL
Hors ligne
#369 Le 17/12/2011, à 20:11
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Bonsoir,
j'ai plus la météo dans mon conky et c'est à cause du site weather.com si j'ai bien compris (...).
Bref, le conky qu'y a sur mon ordinateur est en fait celui de VinDSL que j'ai modifié un peu pour être adapté à mon écran etc. mais la section météo est vide.Quelqu'un aurait-il un bout de code pour remplacer la partie météo qui va plus ?
Et puis : je n'ai pas trouvé de liens sur le premier post, renvoyant à des posts d'intérêt général, comme par exemple des descriptions de ce qui doit être fait, pas-à-pas, ou encore vers quel(s) site(s) aller pour souscrire à une sorte de flux de données météo ? puisque weather.com ne marche plus gratuitement, qu'est-ce qui va bien à la place ? Des conseils ?
Et ensuite ? Pour remplacer la partie "météo" dans mon conky, qu'est-ce qu'il faut faire ? y a-t-il de nouveaux fichiers à créer ? d'autres paquets à télécharger que conkyforecast ? doit-on l'enlever celui-ci ?
Pour le moment mon fichier ~/.conkyrc fait appel à d'autres fichiers qui finissent en .lua et que j'ai du mettre dans un dossier ~/.conky et si j'ai bien compris, ils servent à faire des petites barres comme des vu-mètres. Enfin bref, je suis un peu perdu en lisant des thread ici et sur le forum anglophone :S par contre j'ai découvert un site sympa pour les données météo (underground qqch) mais c'est le seul que j'ai trouvé...
Voilà, ma requête est celle du débutant, donc je n'attends pas une réponse en un bloc mais plutôt quelques contributions qui puissent me faire avancer dans la bonne direction.
Regarde ma signature, sa devrait t'aider.
Hors ligne
#370 Le 17/12/2011, à 21:30
- Swiss_Knight
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
d'accord,... merci.
Bien que ce ne soit pas très clair pour mes neuronnes, j'essaye de comprendre tout ça, mais j'arrive à rien pour le moment...
Ton script (?) fonctionne avec accuweather c'est juste ?
J'étais parti sur weatherunderground moi donc ça ne marchera jamais c'est juste ?
Autre truc que j'aimerai comprendre : si je suis bien, vous faites des scripts qui vont "lire" des infos de manière régulière sur des pages web et ensuite, je ne sais pas comment, vous faites en sorte que ces infos soient transcrites sur conky ?
Si je suis pas trop dans le faux, à partir de là je me demandais ;
1. que se passe-t-il si l'architecture du site change, i.e. le nom de la page avec les infos qui nous intéressent ?
2. je doute que ce soit le cas, mais y a-t-il des gens ici qui se seraient penchés sur la lecture de telles informations sur le site de météosuisse ?
3. ... c'est quel langage qu'il faut connaître pour faire de tels scripts ?
xuniL
Hors ligne
#371 Le 17/12/2011, à 21:46
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
d'accord,... merci.
Bien que ce ne soit pas très clair pour mes neuronnes, j'essaye de comprendre tout ça, mais j'arrive à rien pour le moment...Ton script (?) fonctionne avec accuweather c'est juste ?
Oui
J'étais parti sur weatherunderground moi donc ça ne marchera jamais c'est juste ?
Exacte
Autre truc que j'aimerai comprendre : si je suis bien, vous faites des scripts qui vont "lire" des infos de manière régulière sur des pages web et ensuite, je ne sais pas comment, vous faites en sorte que ces infos soient transcrites sur conky ?
En fait je les affiches avec sed
1. que se passe-t-il si l'architecture du site change, i.e. le nom de la page avec les infos qui nous intéressent ?
Si le site change il faut reprendre le script pour l'actualiser (rien de bien compliqué quand on à compris le fonctionnement)
2. je doute que ce soit le cas, mais y a-t-il des gens ici qui se seraient penchés sur la lecture de telles informations sur le site de météosuisse ?
Je ne sais pas ???
3. ... c'est quel langage qu'il faut connaître pour faire de tels scripts ?
Le Bash (pour mes scripts) mais tous les langages peuvent fonctionner.
Si tu as des questions n'hésite pas.
Hors ligne
#372 Le 18/12/2011, à 16:28
- jpdipsy
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Salutatousse
@Didier-T
Suite à ce que tu as fait pour rendre les scripts plus "rapide" et comme perso j'utilise le /tmp en disque virtuel j'ai repris l'ensemble des scripts afin que tous se passe en /tmp.
1 changement meteo.cfg
#Répertoire de travail
DirShell="$HOME/conky/meteo+lune"
#Répertoire temporaire (si pas de disque ram pareil que DirShell)
Tempo="/tmp"
Ville="Belfort"
#Copier votre adresse Accuweather ici
#address="http://www.accuweather.com/fr/fr/%c3%aele-de-france/argenteuil/quick-look.aspx"
address="http://www.accuweather.com/fr/fr/franche-comt%C3%A9/belfort/quick-look.aspx?cityid=133341"
#Prévision sur n jour (de 1 à 15)
periode=5
#Temps entre les mises à jour prévision (en heure+minute)
update=300
j'ai ajouter Ville=xxxxxxxxx
2 :changement dans meteo afmeteo lune.sh vent
TempShell=$Tempo/meteo/$USER/$Ville
le repertoire s'établi à /tmp/meteo/utilisateur/ville
plus tous les changements dans les différents scripts pour retrouver les données à partir de $TempShell
3 dans afmeteo ajout de :
case $1 in
maj)
#affichage derniere mis a jour
echo `sed -e 's/:/h/' $TempShell/curr_cond|sed -n 3p`
exit 0
;;
messages)
#recup info
echo `sed -n $2'p' $TempShell/$1`
exit 0
;;
phases)
#recup info lune
echo `sed -n $2'p' $TempShell/$1`
exit 0
;;
esac
afin de n'avoir q'un fichier pour récuperer toutes les données.
l'ensemble des fichiers est ici : conky si tu veux y jeter un oeil afin de voir si cela parait plus rapide et plus simple.
Bonne journée.
Ps: avec le fichier de démo essai d'inclure les fontes parce qu'il à du mal à fonctionner sinon.
Hors ligne
#373 Le 18/12/2011, à 16:45
- jpdipsy
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
remoi
Marrant les traductions
17fl
1
16:34
Poudreries
-4
Ouest
12
85%
-1
1015 mb
En hausse
16 km
08:16
16:41
Belfort
et les messages
quelques averses
de neige
neige ou poudreries
peu abondantes
alternance de nuages
et de soleil
nuageux
neige et
pluie mêlées
poudreries tous aux abris ça va nous péter à la tronche
neige et
pluie mêlées
neige et pluie
peu abondantes
pluie et bruine
pluie et bruine
Hors ligne
#374 Le 18/12/2011, à 18:17
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Salutatousse
@Didier-T
Suite à ce que tu as fait pour rendre les scripts plus "rapide" et comme perso j'utilise le /tmp en disque virtuel j'ai repris l'ensemble des scripts afin que tous se passe en /tmp.
1 changement meteo.cfg
#Répertoire de travail
DirShell="$HOME/conky/meteo+lune"#Répertoire temporaire (si pas de disque ram pareil que DirShell)
Tempo="/tmp"
Ville="Belfort"
#Copier votre adresse Accuweather ici
#address="http://www.accuweather.com/fr/fr/%c3%aele-de-france/argenteuil/quick-look.aspx"
address="http://www.accuweather.com/fr/fr/franche-comt%C3%A9/belfort/quick-look.aspx?cityid=133341"
#Prévision sur n jour (de 1 à 15)
periode=5#Temps entre les mises à jour prévision (en heure+minute)
update=300j'ai ajouter Ville=xxxxxxxxx
2 :changement dans meteo afmeteo lune.sh vent
TempShell=$Tempo/meteo/$USER/$Ville
le repertoire s'établi à /tmp/meteo/utilisateur/ville
plus tous les changements dans les différents scripts pour retrouver les données à partir de $TempShell
3 dans afmeteo ajout de :
case $1 in
maj)
#affichage derniere mis a jour
echo `sed -e 's/:/h/' $TempShell/curr_cond|sed -n 3p`
exit 0
;;
messages)
#recup info
echo `sed -n $2'p' $TempShell/$1`
exit 0
;;
phases)
#recup info lune
echo `sed -n $2'p' $TempShell/$1`
exit 0
;;
esacafin de n'avoir q'un fichier pour récuperer toutes les données.
l'ensemble des fichiers est ici : conky si tu veux y jeter un oeil afin de voir si cela parait plus rapide et plus simple.
Bonne journée.
Ps: avec le fichier de démo essai d'inclure les fontes parce qu'il à du mal à fonctionner sinon.
C'est bien sa turbine
Bon les ajout dans afmeteo Ok, mais l’intérêt principal d'avoir un chemin DirShell tiens au fait que si tu n'as pas de connexion internet quant tu allume ton Pc tu à tous de même les dernières infos récupérés à disposition, donc aller chercher les infos dans TempShell est discutable (surtout sur disque ram).
Toujours dans le but d'accélérer l’accès aux infos je travail actuellement sur un script en lua, mais ces un langage étrangement réduit, mais bon j'avance bien il ne me reste plus qu'a inclure les sécurités.
Hors ligne
#375 Le 19/12/2011, à 20:57
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Bonjour à tous,
Voila suite au message de destroyedlolo qui vantait les mérites des scripts lua pour les machines ancienne je me suis penché sur l'adaptation de mon script météo.
Pour le moment je test encore, mais sa fonctionne, mieux il n'y a pas de fuite en mémoire sur une journée entière pas de perte (la taille en mémoire varie juste en fonction des infos météo).
Je pense intégrer la partie lunaison au script, et faire une notice d'utilisation.
Une petite question aux futurs utilisateurs pour les heures vous préférez un séparateur ( si oui h où : ), ou d'un coté les heures et de l'autre les minutes ???
Hors ligne