#1 Le 26/08/2015, à 08:03
- lordenoy
[Résolu] Indicateurs météo
Bonjour,
Depuis deux trois jours, les indicateurs météo ClearWeather, placés sur le bureau ne s'ouvrent plus.
Le Pc sous Ubuntu 14.04 LTS, est à jour.
Quelqu'un aurait-il une explication s'il vous plaît
Merci de votre attention
Dernière modification par lordenoy (Le 08/09/2015, à 12:25)
Hors ligne
#2 Le 26/08/2015, à 16:32
- erresse
Re : [Résolu] Indicateurs météo
Bonjour,
Je n'ai malheureusement pas d'explication, mais j'ai constaté le même problème sur la machine de ma cousine qui refuse d'afficher la météo "clearweather" depuis deux ou trois jours, alors qu'elle fonctionne toujours très bien chez moi...
J'ai vraiment tout essayé, en supprimant le sceenlet puis en le re-paramétrant, en réinstallant carrément "screenlets" avec reboot de la machine... rien à faire, il ne s'est jamais ré-affiché !
J'ai fini par le virer (provisoirement, j'espère) en attendant de voir si d'autres ont rencontré le problème et peuvent proposer une solution.
Pour le moment, tu es le seul qui le signale, mais au moins on sait qu'on n'est pas des exceptions. Suivons l'affaire, ça va peut-être bouger dans quelques temps.
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#3 Le 26/08/2015, à 16:59
- lordenoy
Re : [Résolu] Indicateurs météo
Re...
J'ai aussi désinstallé et réinstallé totalement les screenlets et rebooté, sans plus de succès.
De plus je me suis aperçu cet après-midi, que nous avons le même problème sur les machines de notre médiathèque !
Dans un premier temps j'ai pensai qu'un mise à jour pouvait être responsable.
Mais notre médiathèque a été fermée pour congés, et personne n'a utilisé les ordis avant moi.
Donc pas de mises à jour depuis trois semaines.
Bon bin, suivons l'affaire...
Hors ligne
#4 Le 27/08/2015, à 07:56
- LapiGNU
Re : [Résolu] Indicateurs météo
Les gars,
si c'est un screenlet, vous arrêtez le programme qui les affiche, vous ouvrez un terminal, vous lancez ce programme (à la louche, je dirais que la commande est "screenlets") et avec un peu de bol vous avez le ou les messages d'erreurs concernant l'initialisation de votre screenlet Clearweather.
Non ?
frenchKISS sur www.tchitcha.info, Ubuntu clé en main pour les réseaux de postes de travail.
et surtout : Sauvez les arbres, mangez des castors. Sauvez les castors, ne mangez pas d'arbres !
Hors ligne
#5 Le 28/08/2015, à 13:36
- erresse
Re : [Résolu] Indicateurs météo
alors qu'elle fonctionne toujours très bien chez moi...
Du nouveau, mais pas du bon...
Le screenlet ne fonctionne plus chez moi non plus, depuis que j'ai redémarré ma machine suite à une mise à jour.
Dans les mises à jour de ces derniers jours, il me semble qu'il y en avait pour "python". Comme les screenlets fonctionnent avec python, peut-être est-ce une piste à explorer. Qu'est-ce qui a changé ? Je tâche d'en savoir un peu plus et de tester en console (si possible) pour avoir d'éventuels messages d'erreurs.
EDIT : Ben non, rien de significatif...:rolleyes:
J'ai recherché dans l'historique des mises à jour du mois en cours, et je n'ai trouvé que deux paquets pour python, concernant le rapport d'erreurs et "apport", donc qui ne devraient pas concerner le fonctionnement des screenlets.
J'ai tenté le lancement de clearweather en console : il se lance sans la moindre erreur... mais ne s'ouvre pas pour autant, donc chou blanc !
Comme ça dépasse mes compétences, je vais sagement attendre qu'un intervenant plus calé se penche sur le problème.
Wait and see, comme ils disent là-bas.
Dernière modification par erresse (Le 28/08/2015, à 14:18)
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#6 Le 03/09/2015, à 17:12
- erresse
Re : [Résolu] Indicateurs météo
Suite...
Comme ça dépasse mes compétences, je vais sagement attendre qu'un intervenant plus calé se penche sur le problème.
Finalement, avec un peu d'opiniâtreté, mes compétences ont suffi et j'ai corrigé moi-même le problème !
En fait, il provient du serveur de météo qui a du changer de procédure pour être consulté : l'URL "http://xaop.weather.com/..." n'est plus correcte actuellement. Peut-être n'est-ce que provisoire, mais je n'ai pas trouvé d'information en ce sens sur la toile...
L'accès aux données météo se fait maintenant par : "http://wxdata.weather.com/wxdata/..." et doit être modifié dans le script.
Voici la procédure à suivre pour remplacer sans risque la version du script, en conservant l'original au cas où...
1 - Créer (s'il n'existe pas déjà) un répertoire privé pour les screenlets dans son dossier personnel, et y dupliquer le dossier "ClearWeather" :
mkdir ~/.screenlets
cp -r /usr/share/screenlets/screenlets-pack-all/ClearWeather ~/.screenlets/
cd /usr/share/screenlets/screenlets-pack-all
sudo mv ClearWeather ClearWeather_bad
2 - Copier le script ci-dessous dans un éditeur de texte :
#!/usr/bin/env python
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#ClearWeatherScreenlet (c) Whise <helder.fraga@hotmail.com>
#ClearWeatherScreenlet (c) Aditya Kher - http://www.kher.org
#ClearWeatherScreenlet (c) Rastko Karadzic <rastkokaradzic@gmail.com>
import re
from urllib import urlopen
import httplib
import socket # for socket.error
import screenlets
from screenlets.options import StringOption, BoolOption, ColorOption, FontOption, IntOption
from screenlets import Notify
import pygtk
pygtk.require('2.0')
import cairo
import pango
import sys
import gobject
import time
import datetime
import math
import gtk
from gtk import gdk
import os
from screenlets import Plugins
proxy = Plugins.importAPI('Proxy')
#use gettext for translation
import gettext
_ = screenlets.utils.get_translator(__file__)
def tdoc(obj):
obj.__doc__ = _(obj.__doc__)
return obj
@tdoc
class ClearWeatherScreenlet(screenlets.Screenlet):
"""A Weather Screenlet modified from the original to look more clear and to enable the use of icon pack , you can use any icon pack compatible with weather.com , you can find many packs on deviantart.com or http://liquidweather.net/icons.php#iconsets."""
# default meta-info for Screenlets
__name__ = 'ClearWeatherScreenlet'
__version__ = '0.7.42+++'
__author__ = 'Aditya Kher <http://www.kher.org>, Whise <helder.fraga@hotmail.com>, Rastko Karadzic <rastkokaradzic@gmail.com>'
__desc__ = __doc__
# internals
__timeout = None
# Default update interval is 5 mins (300 Sec)
update_interval = 5
show_error_message = 1
lasty = 0
lastx = 0 ## the cursor position inside the window (is there a better way to do this??)
over_button = 1
ZIP = "KSXX0025"
CITY = "Suwon"
use_metric = True
show_daytemp = True
mini = False
font = 'Sans'
font_color = (1,1,1, 0.8)
background_color = (0,0,0, 0.8)
latest = [] ## the most recent settings we could get...
latestHourly = []
updated_recently = 0 ## don't keep showing the error messages until a connection has been established
## and then lost again.
# constructor
def __init__(self, text="", **keyword_args):
#call super (and not show window yet)
screenlets.Screenlet.__init__(self, width=int(132 * self.scale), height=int(100 * self.scale),uses_theme=True, **keyword_args)
self.__tooltip = gtk.Tooltip()
#self.__widget = self.get
# set theme
self.theme_name = "default"
# add zip code menu item
self.add_menuitem("city", _("Enter city name"))
self.add_menuitem("mini", _("Toggle mini-view"))
# init the timeout function
#self.update_interval = self.update_interval
#self.add_menuitem("update_interval", _("Update Interval"))
self.add_options_group(_('Weather'),
_('The weather widget settings'))
self.add_option(StringOption(_('Weather'), 'ZIP',
str(self.ZIP), 'ZIP', _('The ZIP code to be monitored taken from Weather.com')), realtime=False)
self.add_option(BoolOption(_('Weather'), 'show_error_message',
bool(self.show_error_message), _('Show error messages'),
_('Show an error message on invalid location code')))
self.add_option(BoolOption(_('Weather'), 'use_metric',
bool(self.use_metric), _('Use celsius temperature '),
_('Use the metric system for measuring values')))
self.add_option(BoolOption(_('Weather'), 'mini',
bool(self.mini), _('Use mini-mode'),
_('Switch to the mini-mode')))
self.add_option(BoolOption(_('Weather'), 'show_daytemp',
bool(self.show_daytemp), _('Show 6 day temperature'),
_('Show 6 day temperature high/low')))
# minimum update interval is 1 mins (60 Sec)
self.add_option(IntOption(_('Weather'), 'update_interval',
int(self.update_interval), _('Update Interval(In minutes)'), _('The update interval for weather forecast'),min=1,max=1440), realtime=False)
self.add_option(FontOption(_('Weather'),'font',
self.font, _('Font'),
'font'))
self.add_option(ColorOption(_('Weather'),'font_color',
self.font_color, _('Text color'), 'font_color'))
self.add_option(ColorOption(_('Weather'),'background_color',
self.background_color, _('Back color'), _('Only works with the default theme')))
# Update the weather data as soon as initialized.
#uncomment following if debugging
#print "updating now"
gobject.idle_add(self.update_weather_data)
# Add timer function in constructor call
self.__timeout = gobject.timeout_add((self.update_interval*1000*60), self.update)
# attribute-"setter", handles setting of attributes
def __setattr__(self, name, value):
# call Screenlet.__setattr__ in baseclass (ESSENTIAL!!!!)
screenlets.Screenlet.__setattr__(self, name, value)
# check for this Screenlet's attributes, we are interested in:
if name == "ZIP":
self.__dict__[name] = value
gobject.idle_add(self.update_weather_data)
if name == "use_metric":
self.__dict__[name] = value
gobject.idle_add(self.update_weather_data)
if name == "update_interval":
#if value > 0:
self.__dict__['update_interval'] = value
# if self.__timeout:
# gobject.source_remove(self.__timeout)
# self.__timeout = gobject.timeout_add(value * 1000 * 60, self.update)
#else:
# The minimum value accepted is 1
# pass
def on_init (self):
print "Screenlet has been initialized."
# add default menuitems
self.add_default_menuitems()
def update(self):
# Uncomment following for debugging
#print " Inside update: update_interval at ", time.localtime()
gobject.idle_add(self.update_weather_data)
return True
def update_weather_data(self):
temp = self.parseWeatherData()
temp2 = self.parseWeatherDataHourly()
if len(temp) == 0 or temp[0]["where"] == '': ##did we get any data? if not...
if self.show_error_message==1 and self.updated_recently == 1:
self.show_error()
self.updated_recently = 0
else:
#if temp[0]["where"].find(',') > -1:
# temp[0]["where"] = temp[0]["where"][:temp[0]["where"].find(',')]
self.latest = temp
self.latestHourly = temp2
self.updated_recently = 1
self.redraw_canvas()
def parseWeatherData(self):
if self.use_metric:
unit = 'm'
else:
unit = 's'
forecast = []
proxies = proxy.Proxy().get_proxy()
try:
data = urlopen('http://wxdata.weather.com/wxdata/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=xoap&par=1003666583&key=4128909340a9b2fc&unit='+unit + '&link=xoap',proxies=proxies).read()
dcstart = data.find('<loc ')
dcstop = data.find('</cc>') ###### current conditions
data_current = data[dcstart:dcstop]
forecast.append(self.tokenizeCurrent(data_current))
for x in range(10):
dcstart = data.find('<day d=\"'+str(x))
dcstop = data.find('</day>',dcstart) #####10-day forecast
day = data[dcstart:dcstop]
forecast.append(self.tokenizeForecast(day))
except (IOError, socket.error), e:
print "Error retrieving weather data", e
self.show_error((_("Error retrieving weather data"), e))
return forecast
def parseWeatherDataHourly(self):
if self.use_metric:
unit = 'm'
else:
unit = 's'
hforecast = []
try:
proxies = proxy.Proxy().get_proxy()
data = urlopen('http://wxdata.weather.com/wxdata/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=xoap&par=1003666583&key=4128909340a9b2fc&unit='+unit+'&hbhf=12&link=xoap',proxies=proxies).read()
for x in range(8):
dcstart = data.find('<hour h=\"'+str(x))
dcstop = data.find('</hour>',dcstart) ####hourly forecast
hour = data[dcstart:dcstop]
hforecast.append(self.tokenizeForecastHourly(hour))
except (IOError, socket.error), e:
print "Error retrieving weather data", e
self.show_error((_("Error retrieving weather data"), e))
return hforecast
def tokenizeForecast(self, data):
day = self.getBetween(data, '<part p="d">', '</part>')
daywind = self.getBetween(day, '<wind>', '</wind>')
night = self.getBetween(data, '<part p="n">', '</part>')
nightwind = self.getBetween(night, '<wind>', '</wind>')
tokenized = {
'date': self.getBetween(data, 'dt=\"','\"'),
'day' : self.getBetween(data, 't=\"','\"'),
'high': self.getBetween(data, '<hi>','</hi>'),
'low': self.getBetween(data, '<low>','</low>'),
'sunr': self.getBetween(data, '<sunr>','</sunr>'),
'suns' : self.getBetween(data, '<suns>','</suns>'),
'dayicon' : self.getBetween(day, '<icon>','</icon>'),
'daystate' : self.getBetween(day, '<t>','</t>'),
'daywindspeed' : self.getBetween(daywind, '<s>','</s>'),
'daywinddir' : self.getBetween(daywind, '<t>','</t>'),
'dayppcp' : self.getBetween(day, '<ppcp>','</ppcp>'),
'dayhumid' : self.getBetween(day, '<hmid>','</hmid>'),
'nighticon' : self.getBetween(night, '<icon>','</icon>'),
'nightstate' : self.getBetween(night, '<t>','</t>'),
'nightwindspeed' : self.getBetween(nightwind, '<s>','</s>'),
'nightwinddir' : self.getBetween(nightwind, '<t>','</t>'),
'nightppcp' : self.getBetween(night, '<ppcp>','</ppcp>'),
'nighthumid' : self.getBetween(night, '<hmid>','</hmid>'),
}
return tokenized
def tokenizeForecastHourly(self, data):
tokenized = {
'hour' : self.getBetween(data, 'c=\"','\"'),
'tmp': self.getBetween(data, '<tmp>','</tmp>'),
'flik': self.getBetween(data, '<flik>','</flik>'),
'icon': self.getBetween(data, '<icon>','</icon>')
}
return tokenized
def tokenizeCurrent(self, data):
wind = self.getBetween(data, '<wind>', '</wind>')
bar = self.getBetween(data, '<bar>', '</bar>')
uv = self.getBetween(data, '<uv>', '</uv>')
state = self.getBetween(data, '</flik>', '<t> ')
tokenized = {
'where': self.getBetween(data, '<dnam>','</dnam>'),
'time' : self.getBetween(data, '<tm>','</tm>'),
'sunr': self.getBetween(data, '<sunr>','</sunr>'),
'suns' : self.getBetween(data, '<suns>','</suns>'),
'date' : self.getBetween(data, '<lsup>','</lsup>'),
'temp' : self.getBetween(data, '<tmp>','</tmp>'),
'flik' : self.getBetween(data, '<flik>','</flik>'),
'state' : self.getBetween(state, '<t>','</t>'),
'icon' : self.getBetween(data, '<icon>','</icon'),
'pressure' : self.getBetween(data, '<r>','</r>'),
'windspeed' : self.getBetween(wind, '<s>','</s>'),
'winddir' : self.getBetween(wind, '<t>','</t>'),
'humid' : self.getBetween(data, '<hmid>','</hmid>'),
'vis' : self.getBetween(data, '<vis>','</vis>'),
'dew' : self.getBetween(data, '<dewp>','</dewp>')
}
return tokenized
def getBetween(self, data, first, last):
x = len(first)
begin = data.find(first) +x
end = data.find(last, begin)
return data[begin:end]
def get_icon(self, code):
if code < 3200:
weather = str(code)
elif code == 3200:
weather = "na"
return weather
def get_day_or_night(self, weather):
time = weather[0]["time"].split()[0]
ampm = weather[0]["time"].split()[1]
sunset = weather[0]["suns"].split()[0]
sunrise = weather[0]["sunr"].split()[0]
hour = time.split(':')[0]
min = time.split(':')[1]
risehr = sunrise.split(':')[0]
risemin = sunrise.split(':')[1]
sethr = sunset.split(':')[0]
setmin = sunset.split(':')[1]
if int(hour) == 12:
hour = 0
if ampm == "AM" :
if int(risehr) > int(hour) :
dark = 1
elif int(risehr) < int(hour) :
dark = 0
else :
if int(risemin) > int(min) :
dark = 1
elif int(risemin) < int(min) :
dark = 0
else :
dark = -1
elif ampm == "PM" :
if int(sethr) > int(hour) :
dark = 0
elif int(sethr) < int(hour) :
dark = 1
else :
if int(setmin) > int(min) :
dark = 0
elif int(setmin) < int(min) :
dark = 1
else :
dark = -1
if dark == 1:
return "moon"
else:
return "sun"
def on_draw(self, ctx):
weather = self.latest
hourly = self.latestHourly
# set size
ctx.scale(self.scale, self.scale)
# draw bg (if theme available)
ctx.set_operator(cairo.OPERATOR_OVER)
ctx.set_source_rgba(*self.background_color)
if self.theme:
s = self.theme.path
if (self.mini == False and weather != []):
self.theme.render(ctx,'weather-bg')
if self.theme_name == 'default':self.draw_rounded_rectangle(ctx,11.5,18.5,8,120,80)
self.theme.render(ctx,'weather-bg')
else:
if self.theme_name == 'default':self.draw_rounded_rectangle(ctx,11.5,18.5,8,120,41.8)
self.theme.render(ctx,'weather-bg-mini')
ctx.set_source_rgba(*self.font_color)
# draw memory-graph
if self.theme:
if weather == []:
self.draw_text(ctx,'<b>No weather information available</b>', 15, 35, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
else:
ctx.save()
ctx.translate(-2, 0)
ctx.scale(.6,.6)
if weather[0]["icon"]=="-": weather[0]["icon"]="48"
icon = str(self.get_icon(int(weather[0]["icon"])) )
self.theme.render(ctx,icon)
ctx.restore()
# for x in range(4):
# ctx.save()
# ctx.translate(28+x*10,3);
# icon = str(self.get_icon(int(hourly[x+1]["icon"])) )
# ctx.scale(.25,.25)
# self.theme.render(ctx,icon)
# ctx.restore()
degree = unichr(176)
if self.use_metric:
suffix = 'C'
speed_suffix = 'Kph'
else:
suffix = 'F'
speed_suffix = 'Mph'
if len(str(weather[0]["temp"])) == 3:
ctx.translate(-7, 0)
self.draw_text(ctx,'<b>' + weather[0]["temp"] + degree + suffix + '</b>' , 95,25, self.font.split(' ')[0], 10, self.width,pango.ALIGN_LEFT)
self.draw_text(ctx,'<b>' + weather[0]["where"][:weather[0]["where"].find(',')][:12] +'</b>', -5,45, self.font.split(' ')[0], 7, self.width,pango.ALIGN_RIGHT)
# ctx.translate(0, 6)
# p_layout = ctx.create_layout()
# p_fdesc.set_size(3 * pango.SCALE)
# p_layout.set_font_description(p_fdesc)
# p_layout.set_markup('<b>'+weather[0]["where"][weather[0]["where"].find(',') + 2:]+'</b>')
# ctx.show_layout(p_layout)
# ctx.translate(0, 8)
# p_layout = ctx.create_layout()
# p_fdesc = pango.FontDescription()
# p_fdesc.set_family_static("Sans")
# p_fdesc.set_size(5 * pango.SCALE)
# p_fdesc.set_weight(300)
# p_fdesc.set_style(pango.STYLE_NORMAL) ####render today's highs and lows
# p_layout.set_font_description(p_fdesc)
# p_layout.set_markup('<b>' + "High: "+weather[1]["high"] + degree + " Low: " +weather[1]["low"] + degree +'</b>')
# ctx.show_layout(p_layout)
#other stuff text
# for x in range(4):
# ctx.save();
# ctx.translate(x*10,0);
# p_layout.set_markup('<i>' + ""+hourly[x+1]["hour"] + "h</i>")
# ctx.show_layout(p_layout)
# ctx.restore();
# ctx.translate(0,5);
# for x in range(4):
# ctx.save();
# ctx.translate(x*10,0);
# p_layout.set_markup('<b>' + ""+hourly[x+1]["tmp"] + degree + "</b>")
# ctx.show_layout(p_layout)
# ctx.restore();
# ctx.translate(0, 5)
# p_layout.set_markup("p:<b>"+weather[0]["pressure"]+"</b> h:<b>"+weather[0]["humid"] + "%</b> w:<b>" +weather[0]["windspeed"] + " m/s</b>")
# ctx.show_layout(p_layout)
if (self.mini == False):
ctx.save()
ctx.translate(14, 60)
self.theme.render(ctx,'day-bg')
#self.theme['day-bg.svg'].render_cairo(ctx) ###render the days background
#print self.theme.path
self.draw_text(ctx,weather[1]["day"][:3], 0,0, self.font.split(' ')[0], 5, self.width,pango.ALIGN_LEFT)
# p_layout.set_markup('<b>' +weather[1]["day"][:3] + '</b>')
# ctx.show_layout(p_layout)
ctx.translate(24, 0)
self.draw_text(ctx,weather[2]["day"][:3], 0,0, self.font.split(' ')[0], 5, self.width,pango.ALIGN_LEFT)
ctx.translate(24, 0)
self.draw_text(ctx,weather[3]["day"][:3], 0,0, self.font.split(' ')[0], 5, self.width,pango.ALIGN_LEFT)
ctx.translate(24, 0)
self.draw_text(ctx,weather[4]["day"][:3], 0,0, self.font.split(' ')[0], 5, self.width,pango.ALIGN_LEFT)
ctx.translate(24, 0)
self.draw_text(ctx,weather[5]["day"][:3], 0,0, self.font.split(' ')[0], 5, self.width,pango.ALIGN_LEFT)
ctx.translate(24, 0)
self.draw_text(ctx,weather[6]["day"][:3], 0,0, self.font.split(' ')[0], 5, self.width,pango.ALIGN_LEFT)
ctx.restore()
# ctx.save()
# ctx.translate(0, 50) ###render the days background
# self.theme['day-bg.svg'].render_cairo(ctx)
# p_layout = ctx.create_layout()
# p_fdesc = pango.FontDescription()
# p_fdesc.set_family_static("Monospace")
# p_fdesc.set_size(3 * pango.SCALE)
# p_fdesc.set_weight(300) ###render the days of the week (second row)
# p_fdesc.set_style(pango.STYLE_NORMAL)
# p_layout.set_font_description(p_fdesc)
# p_layout.set_markup('<b>' + " "+weather[4]["day"].center(14)+weather[5]["day"].center(14)+weather[6]["day"].center(12)+'</b>')
# ctx.show_layout(p_layout)
# ctx.restore()
#ctx.save()
#ctx.translate(36, 28)
#self.theme['divider.svg'].render_cairo(ctx)
#ctx.translate(31,0) ######render the dividers
#self.theme['divider.svg'].render_cairo(ctx)
#ctx.restore()
ctx.save()
ctx.translate(14, 68)
self.draw_scaled_image(ctx,0,0,self.theme.path + '/' +self.get_icon(int(weather[1]["nighticon"]))+ '.png',22,22)
ctx.translate(24,0)
self.draw_scaled_image(ctx,0,0,self.theme.path + '/' +self.get_icon(int(weather[2]["dayicon"]))+ '.png',22,22)
ctx.translate(24,0)
self.draw_scaled_image(ctx,0,0,self.theme.path + '/' +self.get_icon(int(weather[3]["dayicon"]))+ '.png',22,22)
ctx.translate(24, 0)
self.draw_scaled_image(ctx,0,0,self.theme.path + '/' +self.get_icon(int(weather[4]["dayicon"]))+ '.png',22,22)
ctx.translate(24,0)
self.draw_scaled_image(ctx,0,0,self.theme.path + '/' +self.get_icon(int(weather[5]["dayicon"]))+ '.png',22,22)
ctx.restore()
if self.show_daytemp == True:
ctx.save()
ctx.translate(16,90)
if(weather[1]["high"] == "N/A"):
self.draw_text(ctx,'<b> </b>'+'|'+'<b>' + weather[1]["low"]+degree+'</b>', 0,0, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
else:
self.draw_text(ctx,'<b>' + weather[1]["high"]+degree+'</b>'+'|'+'<b>' + weather[1]["low"]+degree+'</b>', 0,0, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
ctx.translate(24, 0)
self.draw_text(ctx,'<b>' + weather[2]["high"]+degree+'</b>'+'|'+'<b>' + weather[2]["low"]+degree+'</b>', 0,0, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
ctx.translate(24,0)
self.draw_text(ctx,'<b>' + weather[3]["high"]+degree+'</b>'+'|'+'<b>' + weather[3]["low"]+degree+'</b>', 0,0, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
ctx.translate(24,0)
self.draw_text(ctx,'<b>' + weather[4]["high"]+degree+'</b>'+'|'+'<b>' + weather[4]["low"]+degree+'</b>', 0,0, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
ctx.translate(24,0)
self.draw_text(ctx,'<b>' + weather[5]["high"]+degree+'</b>'+'|'+'<b>' + weather[5]["low"]+degree+'</b>', 0,0, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
ctx.restore()
#self.draw_text(ctx,'<b>' + weather[1]["high"]+degree+'</b>', 68, 28, self.font.split(' ')[0], 5, self.width,pango.ALIGN_LEFT)
#self.draw_text(ctx,'<b>' + weather[1]["low"]+degree+'</b>', 68, 34, self.font.split(' ')[0], 5, self.width,pango.ALIGN_LEFT)
self.draw_text(ctx,'H:' + weather[0]["humid"]+'%', 68, 28, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
if(weather[0]["windspeed"] != "calm"):
self.draw_text(ctx,'W:'+weather[0]["windspeed"] + speed_suffix, 68, 34, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
else:
self.draw_text(ctx,'W:'+weather[0]["windspeed"] , 68, 34, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
self.draw_text(ctx,'W Ch:'+ weather[0]["flik"] + degree + suffix , 68, 40, self.font.split(' ')[0], 4, self.width,pango.ALIGN_LEFT)
#self.display_details()
def display_details(self):
weather = self.latest
if len(weather)<=0:return
if self.use_metric:
degree = unichr(176) + 'C'
speed_suffix = _('Kph')
distance_suffix = _('Km')
pr_suffix = 'hPa'
else:
degree = unichr(176) + 'F'
speed_suffix = _('Mph')
distance_suffix = _('Mi')
pr_suffix = 'in'
if(weather[0]["windspeed"] != "calm"):
wind_direction = speed_suffix + ' From ' + weather[0]["winddir"][:2]
else:
wind_direction = ''
details = 'Location : ' + weather[0]["where"] + ' \n' \
'Now : ' + weather[0]["state"] +'\n'\
'Temperature : ' + weather[0]["temp"] + degree +'\n'\
'Feels Like : ' + weather[0]["flik"] + degree +' \n'\
'Humidity : ' + weather[0]["humid"] + '% \n' \
'Wind : ' + weather[0]["windspeed"] + wind_direction + '\n'\
'Pressure : ' + weather[0]["pressure"] + pr_suffix + '\n' \
'Visibility : ' + weather[0]["vis"] + distance_suffix + '\n' \
'Sunrise : ' + weather[0]["sunr"] + '\n' \
'Sunset : ' + weather[0]["suns"] + '\n'
self.window.set_tooltip_text(details)
#print details
def on_mouse_leave (self, event):
"""Called when the mouse leaves the Screenlet's window."""
#self.redraw_canvas()
pass
def on_mouse_move(self, event):
"""Called when the mouse moves in the Screenlet's window."""
self.display_details()
self.redraw_canvas()
def on_mouse_down(self,event):
if event.button == 1:
x = event.x / self.scale
y = event.y / self.scale
if y >= 75 and x <= 132 and x >= 110:
os.system('xdg-open http://weather.com')
def on_draw_shape(self,ctx):
if self.theme:
# set size rel to width/height
self.on_draw(ctx)
def menuitem_callback(self, widget, id):
screenlets.Screenlet.menuitem_callback(self, widget, id)
if id=="city":
self.show_edit_dialog()
self.update()
if id == "mini":
self.mini = not self.mini
self.update()
def show_edit_dialog(self):
# create dialog
dialog = gtk.Dialog(_("City"), self.window)
dialog.resize(300, 100)
dialog.add_buttons(gtk.STOCK_OK, gtk.RESPONSE_OK,
gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
entrybox = gtk.Entry()
entrybox.set_text(self.CITY)
dialog.vbox.add(entrybox)
entrybox.show()
# run dialog
response = dialog.run()
if response == gtk.RESPONSE_OK:
city = entrybox.get_text()
dialog.hide()
zip = self.get_zip_code(city)
if zip != -1:
self.ZIP = zip
self.CITY=city
self.updated_recently = 1
def get_zip_code(self,city):
"""Getting ZIP from www.weather.com"""
city_name = city
req_string = "/search/enhancedlocalsearch?where="
req_string = req_string + '+'.join(city_name.split())
try:
connection1 = httplib.HTTPConnection("www.weather.com")
connection1.request("GET",req_string)
resp = connection1.getresponse()
response = resp.read()
rg_zip = re.compile("[+]\D\D\D\D\d\d\d\d\"")
rg_city = re.compile(city_name+",(.+)")
list_zip_codes = rg_zip.findall(response)
list_cities = rg_city.findall(response)
if len(list_zip_codes)==1:
zip = list_zip_codes[0]
return zip[1:9]
elif len(list_zip_codes)==0 or len(list_cities)==0:
self.show_error()
return -1
else:
return self.show_choose_city_dialog(city_name, list_cities,list_zip_codes)
except (IOError, socket.error, Exception), e:
self.show_error()
return -1
def show_choose_city_dialog(self, city_name, list_of_cities, list_of_zips):
"""Dialog to choose if multiple cities from multiple countries with same name available"""
self.city_select_dialog = gtk.Dialog("Choose city")
self.city_select_dialog.resize(200,50)
cnt = 0
for city in list_of_cities:
button = gtk.Button(city_name+" - "+ city)
button.connect("button_press_event", self.city_selected_callback, list_of_zips[cnt])
button.show()
self.city_select_dialog.vbox.add(button)
cnt = cnt + 1
self.city_select_dialog.run()
return self.czip
def city_selected_callback(self,widget, event, data):
self.czip = data[1:9]
self.city_select_dialog.destroy()
def show_error(self, reason=None):
dialog = gtk.Dialog(_("Zip Code"), self.window)
dialog.resize(300, 100)
dialog.add_buttons(gtk.STOCK_OK, gtk.RESPONSE_OK)
reasonstr = "\nReason: %s" % reason if reason is not None else ""
label = gtk.Label(_("Could not reach weather.com. Check your internet connection and location and try again.")+reasonstr)
dialog.vbox.add(label)
check = gtk.CheckButton(_("Do not show this again"))
dialog.vbox.add(check)
dialog.show_all()
response = dialog.run()
if response == gtk.RESPONSE_OK:
if check.get_active() == True:
self.show_error_message = 0
dialog.hide()
if __name__ == "__main__":
import screenlets.session
screenlets.session.create_session(ClearWeatherScreenlet)
Note : Cette version porte un numéro de version modifié "0.7.42+++", l'original étant le "0.7.41+++".
3 - Dans le répertoire "~/.screenlets/ClearWeather" remplacer le fichier script "ClearWeatherScreenlet.py" par la copie modifiée.
4 - Faire clic droit sur le ClearWeather courant (qui ne fonctionne pas) et choisir "Quitter ce ClearWeather" pour le fermer.
5 - Ouvrir le gestionnaire de screenlets, choisir "ClearWeather" et cocher l'option "Démarrer/Arrêter" pour relancer ClearWeather.
Voilà, vous devez à nouveau pouvoir profiter des prévisions météo sur votre bureau !
Edit : Pense-bête... Si vous enregistrez la copie comme nouveau fichier script, n'oubliez pas de lui ajouter l'option "Exécuter comme un programme" dans les Propriétés, afin qu'il puisse être exécuté. Si vous avez plusieurs comptes sur la machine, cette version ne fonctionnera que pour le compte dans lequel elle a été installée, contrairement à celle de "/usr/share" qui s'applique globalement à tous les utilisateurs.
Dernière modification par erresse (Le 03/09/2015, à 17:22)
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#7 Le 05/09/2015, à 07:31
- lordenoy
Re : [Résolu] Indicateurs météo
Bonjour,
Merci de me donner la solution. J'apprécie beaucoup le travail effectué, et l'attention portée à ma question.
Hélas, je ne comprend pas bien comment faire, n'étant pas très aguerri sous Linux
Ma foi tant pis, ces screenlets ne sont pas essentiels et je m'en passerai.
Bonne continuation.
Cordialement.
Dernière modification par lordenoy (Le 05/09/2015, à 08:32)
Hors ligne
#8 Le 06/09/2015, à 15:08
- erresse
Re : [Résolu] Indicateurs météo
Bonjour,
Dommage d'abandonner ce gadget si pratique. Pour ma part je suis particulièrement heureux d'avoir réussi à le remettre en fonction, car j'aime bien avoir les prévisions sous les yeux sur mon bureau, d'autant plus qu'elles sont plutôt fiables et automatiquement actualisées.
J'ai aussi, sans grand espoir de prise en compte malheureusement, adressé ma version du script au développeur qui figure dans les propriétés du paquet "screenlets", en lui demandant de l'intégrer à une prochaine version du paquet, mais comme il semble que "screenlets" ne soit plus maintenu...
Enfin, on ne sait jamais, si la démarche aboutit, peut-être aura-t-on la surprise de recevoir une mise à jour un de ces jours.
Bonne continuation également !
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#9 Le 06/09/2015, à 15:34
- lordenoy
Re : [Résolu] Indicateurs météo
Bonjour,
Oui je regrette également, d'autant plus que cela me permettait de visualiser la météo chez mes proches.
Mais bon, tant pis, puisque je ne parviens pas faire...
J'ai bien copié le scrip dans l'éditeur de texte, mais ne vois pas en 1, où trouver le dossier ClearWeather pour le dupliquer et en 3, comment trouver le fameux répertoire à remplacer.
Il ne me reste plus qu'à espérer que votre démarche aboutisse...
Encore merci.
Hors ligne
#10 Le 06/09/2015, à 16:51
- erresse
Re : [Résolu] Indicateurs météo
Hé bien, j'ai donné dans mon message les commandes à exécuter pour construire l'environnement. Il faut juste ouvrir un terminal et copier / coller chaque ligne du point 1 dedans, l'une après l'autre.
Le répertoire privé ".screenlets" est un répertoire caché (le nom commence par un point). S'il existe déjà dans le dossier personnel, un message d'erreur s'affichera lors de l'exécution de la commande "mkdir", sinon le répertoire sera créé.
Ensuite, la commande "cp" duplique le dossier ClearWeather dans ce répertoire privé.
Ensuite, la commande "cd" permet de se placer dans le dossier d'origine, et la commande "mv" change le nom du dossier ClearWeather en ClearWeather_bad pour le sauvegarder.
Il ne reste plus qu'à remplacer le script dans le dossier ClearWeather privé.
Pour cela, le plus simple est de faire, dans son dossier personnel :
- Ouvrir l'éditeur de texte. Pour voir les fichiers / dossiers cachés, il faut utiliser le raccourci "Ctrl+H".
- On cherche le répertoire ".screenlets" et on l'ouvre d'un double clic.
- Dans ce répertoire, oàn voit le dossier "ClearWeather". On l'ouvre d'un double clic.
- Dans ce dossier se trouve le script "ClearWeatherScreenlet.py" que l'on charge pour le modifier.
- On sélectionne tout le contenu que l'on remplace par la nouvelle version récupérée ici, et on réécrit le fichier.
- On ferme l'éditeur de texte.
C'est tout.
Si ce n'est déjà fait, on ferme le gadget ClearWeather en cours sur le bureau (par clic droit et "Quitter ce ClearWeather").
Il suffit alors d'aller dans le gestionnaire de screenlets et de lancer à nouveau ClearWeather qui va alors s'ouvrir et afficher normalement la météo...
Voilà, j'espère que le détail de ces manipulation te permettra de relancer le gadget sans problème et... d'apprendre (un peu) des manipulations que l'on peut faire sous Linux.
Tu ne risques rien d'essayer, au fond, ce n'est pas si compliqué, il faut juste un peu de rigueur pour passer les commandes, car en terminal, les noms sont "case sensitive", on ne doit donc pas taper une minuscule si une majuscule est attendue sinon ça ne marche pas !
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#11 Le 06/09/2015, à 17:18
- lordenoy
Re : [Résolu] Indicateurs météo
Ma foi, le terminal me donne ça à la deuxième commande :
http://www.cjoint.com/c/EIgqrIdSMgV
je ne peux donc pas poursuivre...
Hors ligne
#12 Le 06/09/2015, à 18:07
- erresse
Re : [Résolu] Indicateurs météo
Bizarre ! Aurais-tu désinstallé "screenlets" ou supprimé le gadget "ClearWeather" au lieu de juste le fermer ?
Normalement, si "screenlets" est installé sur ta machine avec le paquet "screenlets-pack-all", tu dois forcément avoir le dossier ClearWeather dedans...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#13 Le 06/09/2015, à 19:06
- Tootoon
Re : [Résolu] Indicateurs météo
Bonjour,
Un petit message pour dire un grand MERCI à erresse!!!!!!!!
C'est effectivement le genre de trucs banals et anodins, mais trèèèès agaçants...
Du coup, je retrouve enfin la météo (fiable) de notre belle ville de La Rochelle souvent ensoleillée sur mon bureau!!!!
Merci encore pour ta persévérance!!!
Ubuntu 19.10 sur: Lenovo Ideapad U430 Touch Core i5 1,6GHz 8Go RAM; Lenovo Thinkcentre M93p Tiny Core i5 2,9GHz 16Go RAM; Ubuntu 19.04: Lenovo Ideapad 100-14IBY Intel Celeron 2,16GHz 8Go RAM.
BQ Aquaris E4.5 Ubuntu Edition
BQ Aquaris E5 HD Ubuntu Edition
BQ Aquaris M10 Ubuntu Edition Full HD
Hors ligne
#14 Le 06/09/2015, à 19:31
- Carroués
Re : [Résolu] Indicateurs météo
Et quasiment de consort, à mon tour des remerciements sincères erresse. Mon "Clear weather" me manquait bien depuis 3 semaines environ.
J'ai fait en mode raccourci, ce qui peut fonctionner pour lordenoy par exemple qui a eu la même erreur que moi car je n'ai pas, non plus, de répertoire /usr/share/screenlets/screenlets-pack-all. (Je suis sous Mate, est-ce ça qui crée la différence ?)
J'ai tout simplement modifié dans le script l'adresse du site que tu as donnée, au moyen d'un éditeur de texte, c'est à dire avec "Plume" sous Mate. J'ai fait ma recherche (Ctrl+f) de xoap.weather.com - et non xaop comme tu l'as marqué - puis j'ai remplacé les deux occurrences par wxdata.weather.com/wxdata/, puis enregistré et relancé Screenlets. Nickel !!!
Merci bien erresse !
Hors ligne
#15 Le 07/09/2015, à 06:47
- lordenoy
Re : [Résolu] Indicateurs météo
Bonjour erresse,
Bizarre ! Aurais-tu désinstallé "screenlets" ou supprimé le gadget "ClearWeather" au lieu de juste le fermer ?
Normalement, si "screenlets" est installé sur ta machine avec le paquet "screenlets-pack-all", tu dois forcément avoir le dossier ClearWeather dedans...
Voyant que ça ne fonctionnait plus, j'ai dans un premier temps désinstallé "screenlets".
Là je l'ai réinstallé avec le paquet sreenlets-pack-all" et remis et configuré les gadgets sur le bureau qui bien sûr ne s'ouvrent pas.
Après avoir redémarré l'ordinateur, le terminal ne trouve toujours pas le dossier
Hors ligne
#16 Le 07/09/2015, à 08:00
- lordenoy
Re : [Résolu] Indicateurs météo
Voilà ce que j'obtiens en saisissant la commande cp --help, ce qui est pour moi, un charabia incompréhensible :
Dernière modification par lordenoy (Le 08/09/2015, à 12:29)
Hors ligne
#17 Le 07/09/2015, à 08:38
- sinbad83
Re : [Résolu] Indicateurs météo
Pour info, la doc https://doc.ubuntu-fr.org/screenlets comporte un avertissement:
Screenlets n'est plus maintenu et de nombreux gadgets ne fonctionnent pas. De plus, aucun gadget météo ne parvient à se connecter à son serveur.
La connaissance n'est pas une denrée rare, il faut la partager avec les autres.
Linux registered #484707
Site: www.coursinforev.org/doku.php
Desktop AMD Ryzen 5-3600, RAM 16GB, Ubuntu 20.10, HP Pavillon G6 Ubuntu 20.10 et Ten, Serveur Ubuntu 18.04
Hors ligne
#18 Le 07/09/2015, à 15:02
- erresse
Re : [Résolu] Indicateurs météo
@sinbad83: C'est exact, j'avais aussi vu cette information dans la doc, mais elle n'a pas été inscrite récemment, or le dysfonctionnement de ClearWeather ne remonte qu'à quelques jours, jusqu'ici il fonctionnait très bien.
C'est dommage que screenlets ne soit plus maintenu, je l'aimais bien, moi ! Peut-être qu'il n'est pas compatible avec Unity, ce serait pour cela qu'on l'a abandonné ???
@Carroués: Bah, je suis moi-même sous Ubuntu-MATE, je peux donc t'assurer que ça fonctionne bien dans cet environnement... et que ce dossier (/usr/share/screenlets/screenlets-pack-all) existe bien :
user@user:~$ ls /usr/share/screenlets/screenlets-pack-all
ACPIBattery EvolutionContacts MainMenu Shutdown
AgeExtended Example Manometer Sidebar
AppMenu Execute Meter Slideshow
Brightness FeedReader Mount SmoothWeather
Calc FeedReaderPlus MyIp Speech
Calendar FlipClock Netmon Sticker
CircleClock Flower Netmonitor Stocks
ClearCalendar FolderView NetSpeed Storage
ClearRss FreemeteoWeather Notes Sysmonitor
ClearWeather Funnyordie NowPlaying Terminal
Clock FuriusMoon NVidia Test
CompositeToggler FusionSwitch OSM TextDateTime
Control FuzzyClock Output Tomboy
Convert Gmail Pager Transmission
CopyStack GoogleCalendar PhotoWall Trash
Countdown Googlemaps Picframe Tux
CPUMeter HAL9000 PicUpload Twitter
DayinHistory humanPopulation Pidgin Uptime
dayNight InfoPanel Places VolumeControl
DigiClock Kclock PongClock WallpaperClock
DigitalClock Launcher PPPOE Weather
DiskIOSpace LinuxEstoniaStats Radio Webframe
DiskSpace LinuxSerbiaStats RingSensors WidescapeWeather
Diskusage Lipik Ruler Windowlist
Dropbox LostCountdown Search Wireless
EMHI Lyrics SearchTorrent WorldClock
eventCal MailCheck Sensors Youtube
user@user:~$
Voici son contenu, listé ci-dessus.
@lordenoy: Comme je l'ai dit à Carroués, ce répertoire existe forcément... Toutes les installations *buntu ou Debian comportent une arborescence standard dans laquelle on trouve le répertoire "/usr" qui contient tous les logiciels installés par l'utilisateur (sauf quelques exceptions hors-dépôts qui s'installent alors dans "/opt").
Pour éviter les erreurs de saisie (il me semble que ta commande "cp" que je n'ai pas vue a échoué parce-que tu as oublié l'option "-r") il est recommandé de copier sur le forum et de coller les commandes dans le terminal. Comme je le disais, il suffit d'une lettre incorrecte pour que la commande ne fonctionne pas...
Puisque tu maîtrises suffisamment le terminal pour poster les retours ici, je te propose de passer les commandes suivantes et de nous donner les retours :
ls -la ~/
ls -la /usr/share/screenlets
ls /usr/share/screenlets/screelets-pack-all
On doit y voir que le répertoire caché ".screenlets" existe bien dans ton dossier personnel, et que l'arborescence "/usr/..." que j'ai citée existe aussi, ainsi que le dossier ClearWeather original.
A partir de là, il n'y a pas de raison qu'on ne puisse copier ce dossier puis le modifier comme on le désire !
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#19 Le 07/09/2015, à 15:20
- Carroués
Re : [Résolu] Indicateurs météo
Que nenni !
paul@carroues:~$ ls /usr/share/screenlets
screenlets-pack-basic
paul@carroues:~$
paul@carroues:~$ ls /opt
paul@carroues:~$
Toujours-est il qu'avec la modification de l'URL à http://wxdata.weather.com/wxdata/weather/local/ aux lignes 165 et 194, ça fonctionne parfaitement. Bien trouvé et mes remerciements de nouveau.
Hors ligne
#20 Le 07/09/2015, à 15:33
- erresse
Re : [Résolu] Indicateurs météo
Le paquet "...pack-basic" contient beaucoup moins de gadgets. C'est celui qui est installé par défaut, mais on peut le remplacer par "...pack-all" qui en ajoute plein d'autres.
C'est ce que j'avais suggéré à lordenoy, et il me dit avoir réinstallé "screenlets" et "screenlets-pack-all". Il n'y a donc pas de raison pour qu'il ne trouve pas ce répertoire !
Dernière modification par erresse (Le 07/09/2015, à 15:36)
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#21 Le 08/09/2015, à 06:42
- lordenoy
Re : [Résolu] Indicateurs météo
Bonjour à tous,
(il me semble que ta commande "cp" que je n'ai pas vue a échoué parce-que tu as oublié l'option "-r")
Non non, j'ai bien fait un copié/collé, mais n'ai envoyé que la partie concernant la suggestion de commande "help"
Dernière modification par lordenoy (Le 08/09/2015, à 12:30)
Hors ligne
#22 Le 08/09/2015, à 09:23
- erresse
Re : [Résolu] Indicateurs météo
Bonjour,
Donc, le répertoire privé ".screenlets" existe bien dans ton dossier personnel.
Ici, il y a une erreur :
drwxr-xr-x 110 root root 4096 sept. 6 20:29 screenlets-pack-all
mamie@mamie-PW766AA-ABF-SR1345FR-FR510:~$ ls /usr/share/screenlets/screelets-pack-all
ls: impossible d'accéder à /usr/share/screenlets/screelets-pack-all: Aucun fichier ou dossier de ce type
Il manque un "n" au nom du répertoire : screelets au lieu de screenlets, c'est pourquoi le système ne trouve pas...
Toutefois, ce répertoire existe bien, comme le montre la première ligne.
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#23 Le 08/09/2015, à 09:50
- lordenoy
Re : [Résolu] Indicateurs météo
Ah, flûte... :
Ma foi je crois avoir trouvé avec la commande Ctrl H il apparaît celui-ci : ClearWeatherScreenlet.py
Donc je le vide et copie l'autre script... c'est ça ?
Dernière modification par lordenoy (Le 08/09/2015, à 12:31)
Hors ligne
#24 Le 08/09/2015, à 10:58
- erresse
Re : [Résolu] Indicateurs météo
Dans mon message #11 :
Il ne reste plus qu'à remplacer le script dans le dossier ClearWeather privé.
Pour cela, le plus simple est de faire, dans son dossier personnel :
- Ouvrir l'éditeur de texte. Pour voir les fichiers / dossiers cachés, il faut utiliser le raccourci "Ctrl+H".
- On cherche le répertoire ".screenlets" et on l'ouvre d'un double clic.
- Dans ce répertoire, oàn voit le dossier "ClearWeather". On l'ouvre d'un double clic.
- Dans ce dossier se trouve le script "ClearWeatherScreenlet.py" que l'on charge pour le modifier.
- On sélectionne tout le contenu que l'on remplace par la nouvelle version récupérée ici, et on réécrit le fichier.
- On ferme l'éditeur de texte.
C'est tout.
Si ce n'est déjà fait, on ferme le gadget ClearWeather en cours sur le bureau (par clic droit et "Quitter ce ClearWeather").
Il suffit alors d'aller dans le gestionnaire de screenlets et de lancer à nouveau ClearWeather qui va alors s'ouvrir et afficher normalement la météo...
Donc, oui, c'est la procédure à suivre pour modifier le script de ClearWeather (qui est normalement dans le dossier caché ".screenlets" de ton dossier personnel, bien sûr).
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#25 Le 08/09/2015, à 12:38
- lordenoy
Re : [Résolu] Indicateurs météo
Ça y est, j'y suis enfin parvenu et retrouve avec beaucoup de plaisir mes gadgets météo.
Je fais hélas parti des ces personnes qui :
"comprennent vite, mais à qui il faut expliquer longtemps"
Que ferions-nous sans votre soutien et celui de vos semblables...
Un grand merci erresse pour la patience dont vous avez fait preuve, et pour le suivi.
Bonne continuation...
Lordenoy.
Dernière modification par lordenoy (Le 09/09/2015, à 07:57)
Hors ligne