Powerline: API météo Yahoo EOL

CrĂ©Ă© le 8 janv. 2019  Â·  31Commentaires  Â·  Source: powerline/powerline

Remarqué que les segments météorologiques ont disparu, vérifié le journal Powerline qui contenait

2019-01-08 12:28:22,330:ERROR:tmux:WeatherSegment:Exception while computing state for 'London,United Kingdom,GB': <urlopen error [Errno -5] No address associated with hostname>

Il semble que l'URL utilisée par Powerline ne soit plus prise en charge par Yahoo depuis03 / janv :

Avis EOL important: à partir du jeudi 3 janvier 2019, les sites weather.yahooapis.com et query.yahooapis.com pour Yahoo Weather API seront supprimés.

Pour continuer Ă  utiliser nos API Yahoo Weather gratuites, utilisez https://weather-ydn-yql.media.yahoo.com/forecastrss. Contactez [email protected] pour obtenir les informations d'identification Ă  bord de ce service gratuit d'API Yahoo Weather.

Pour mémoire, voici la section correspondante du journal

2019-01-08 12:28:22,330:ERROR:tmux:WeatherSegment:Exception while computing state for 'London,United Kingdom,GB': <urlopen error [Errno -5] No address associated with hostname>
Traceback (most recent call last):
  File "/home/souto/.local/lib/python3.6/site-packages/powerline/lib/threaded.py", line 197, in render
    update_state = queries[key][1]
KeyError: 'London,United Kingdom,GB'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/urllib/request.py", line 1318, in do_open
    encode_chunked=req.has_header('Transfer-encoding'))
  File "/usr/lib/python3.6/http/client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1026, in _send_output
    self.send(msg)
  File "/usr/lib/python3.6/http/client.py", line 964, in send
    self.connect()
  File "/usr/lib/python3.6/http/client.py", line 936, in connect
    (self.host,self.port), self.timeout, self.source_address)
  File "/usr/lib/python3.6/socket.py", line 704, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/usr/lib/python3.6/socket.py", line 745, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -5] No address associated with hostname

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/souto/.local/lib/python3.6/site-packages/powerline/lib/threaded.py", line 220, in update_one
    updates[key] = (monotonic(), self.compute_state(key))
  File "/home/souto/.local/lib/python3.6/site-packages/powerline/segments/common/wthr.py", line 140, in compute_state
    raw_response = urllib_read(url)
  File "/home/souto/.local/lib/python3.6/site-packages/powerline/lib/url.py", line 15, in urllib_read
    return urlopen(url, timeout=10).read().decode('utf-8')
  File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.6/urllib/request.py", line 526, in open
    response = self._open(req, data)
  File "/usr/lib/python3.6/urllib/request.py", line 544, in _open
    '_open', req)
  File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 1346, in http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "/usr/lib/python3.6/urllib/request.py", line 1320, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -5] No address associated with hostname>

Je n'ai trouvé aucun problÚme décrivant cela, je m'excuse, c'est qu'il s'agit d'un double.

segment bug enhancement

Commentaire le plus utile

Il serait simple d'Ă©crire un nouveau segment en utilisant l' API OpenWeatherMap, mais pour autant que je dĂ©pĂŽt semble abandonnĂ©. Je serais prĂȘt Ă  travailler sur le segment si un administrateur pouvait rĂ©pondre et confirmer que le dĂ©pĂŽt est actif et qu'il serait prĂȘt Ă  le fusionner.

Tous les 31 commentaires

Il serait simple d'Ă©crire un nouveau segment en utilisant l' API OpenWeatherMap, mais pour autant que je dĂ©pĂŽt semble abandonnĂ©. Je serais prĂȘt Ă  travailler sur le segment si un administrateur pouvait rĂ©pondre et confirmer que le dĂ©pĂŽt est actif et qu'il serait prĂȘt Ă  le fusionner.

Nous pouvons commencer par une pull request pour déplacer l'API, je suis disponible si vous avez besoin de plus de mains pour coder cela ...

Une autre main ici si une aide est nécessaire pour migrer l'API

@ barra51 @ mp1118 quand

@gsusrafael Pour moi, c'est OK si nous commençons maintenant :)

J'ai bifurqué le dépÎt, je vérifie cette info https://blog.rapidapi.com/access-global-weather-data-with-these-weather-apis/ pour vérifier nos options pour une collecte d'informations météorologiques. ..

Je voulais juste ajouter https://wttr.in comme une autre option, en raison de sa simplicité

@liketechnik votre suggestion est encore meilleure ... je pense que cela pourrait ĂȘtre une transition sans douleur

@liketechnik la seule chose que je recherche toujours dans wttr.in est la possibilité de vider les informations en JSON ...

Je ne sais pas si cela est possible avec wttr.in: / Ce que j'ai trouvé dans le Readme, c'est la possibilité d'avoir un formatage personnalisé et de renvoyer la météo actuelle en une seule ligne (https://github.com/chubin/wttr. dans # sortie-une-ligne)

----- COMMENCER LE MESSAGE SIGNÉ PGP -----
Hash: SHA1

cela pourrait ĂȘtre une proposition intĂ©ressante pour wttr.in, j'ai examinĂ© leur
liste des problÚmes et j'ai trouvé des demandes demandant le format de sortie JSON ... qui
pourrait ĂȘtre vraiment bien si cette fonctionnalitĂ© est intĂ©grĂ©e Ă  toute nouvelle version de
wttr.in et ensuite nous pourrions l'utiliser, mais maintenant faisons quelque chose qui pourrait
ĂȘtre rĂ©utilisable et / ou connectable Ă  n'importe quel fournisseur d'API mĂ©tĂ©o.

Le 15 mars 2019 Ă  13:31:03, Florian Warzecha a Ă©crit:

Je ne sais pas si cela est possible avec wttr.in: / Ce que j'ai trouvé dans le Readme, c'est la possibilité d'avoir un formatage personnalisé et de renvoyer la météo actuelle en une seule ligne (https://github.com/chubin/wttr. dans # sortie-une-ligne)

-
Vous recevez cela parce que vous avez été mentionné.
RĂ©pondez directement Ă  cet e-mail ou affichez-le sur GitHub:
https://github.com/powerline/powerline/issues/1973#issuecomment -473431217


JĂ©sus Rafael Sanchez
"Inter fractal umbras et illusionibus evanuit somnia ..."
----- COMMENCER LA SIGNATURE PGP -----
Version: GnuPG v1

iQIcBAEBAgAGBQJcjBAvAAoJEBKYkbOSUaVWlPwP / 3tBQWeBbpxPjZ7N8YxCsIyr
/ 2F3Y1 + OHViEosq6UOZu1SlTXZUB4tFb7Iu9 / 7Lf6xordPPAW / 7S0c35 / I9sTYgJ
dBuoi + rnNhTwVaisyu6Grl02mxTdItNlCI + SiZq36utuDEgUhCaUZa2NrRf3zT5h
341myYD3gwNvvj086z3nqorzV2usRF5N + RsajnP3q0EtmgceMcaCkFyaATrNJYVB
7r3UIO7DJgv0f + NZESSrAHHSXw0ni6PVdkh2CdQ9Qxfu8 / 7UFSw9jMBeXEG2vaAV
l4jEOZ6N9diN6kOYsgkcicE6bMFwx9g90HHM4 / HakUCeTuOD2opFkMv / C05gIJ9f
nf5y9 / KFkS2MN65Nl + F7A + HJ9JoW9kZ5b6uO034VDnckCvVpY5gLmPW9JTkEFs7g
0WnwAW8QJ + I9tZdhP / SDcoSgKVpOfpy0bG284PQ6IQpoKIp8ykndZF6V3xGVkV7x
ZlN1f6xzfLuYIIbg7ZHjJfEMGDzosM0mTERp8PHWcM2MKgnmmB + JrqvVSfufCqBe
0ZbJSe5QQvVR / saY0bn3vDf3bmFNr1vlr / YsJF64ODUGj1tel0vVeNLIywDkAr5Z
1SrCs + ii0uAM6XyrFskrIE3Gbct9KRCRSDX1EFvbRM5N0QM + ZTrolBRWfNE0MEN4
TWXs9vL + fMIE53L1vtgq
= u1tZ
----- FIN DE LA SIGNATURE PGP -----

https://github.com/USA-RedDragon/powerline/commit/352bf96335d0ebd63acc996316af94b1394c8595

ImplĂ©mentation d'un support merdique pour Wttr.in. IdĂ©alement, nous utiliserions une API plus professionnelle, configurable et plus verbeuse, mais cela fonctionne comme une fonctionnalitĂ© mĂ©tĂ©o "en un coup d'Ɠil".

Screen Shot 2019-03-17 at 6 05 06 AM

Vous avez sacrément raison ... wttr.in ne remplit pas les spécifications pour une météo complÚte
API

El dom., 17 mars. de 2019 07:05, Jacob McSwain [email protected]
escribiĂł:

USA-RedDragon @ 352bf96
https://github.com/USA-RedDragon/powerline/commit/352bf96335d0ebd63acc996316af94b1394c8595

Implémentation d'un support merdique pour Wttr.in. Idéalement, nous utiliserions un plus
API professionnelle qui est configurable et plus verbeuse, mais cela fonctionne comme
une fonction mĂ©tĂ©o "en un coup d'Ɠil".

[image: Screen Shot 2019-03-17 Ă  6 05 06 AM]
https://user-images.githubusercontent.com/13051767/54489483-b1efbf00-487a-11e9-8bf1-abd6372cc5df.png

-
Vous recevez cela parce que vous avez été mentionné.
RĂ©pondez directement Ă  cet e-mail, affichez-le sur GitHub
https://github.com/powerline/powerline/issues/1973#issuecomment-473655191 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AA39c7P7kL6gxIm7t0H1J4SP4ZPSXOnFks5vXiGRgaJpZM4Z1bYx
.

Une mise Ă  jour pour ceci?

il semble que @gsusrafael @ USA-RedDragon ait fait des progrÚs avec wttr.in mais aprÚs cela, je pense que les gars ne travaillent plus dans ce numéro ...

Malheureusement, il semble que ce repo ne soit pas activement maintenu, la derniĂšre fusion des relations publiques remonte au 11 novembre 2018.

Je suis peut-ĂȘtre un peu naĂŻf Ă  ce sujet, mais est-ce juste en deçà de vos exigences?

tmux-powerline-example

set -g status-interval 60
WEATHER='#(curl -s wttr.in/London:Stockholm:Moscow\?format\="%%l:+%%c%%20%%t%%60%%w&period=60")'
set -g status-right "$WEATHER ..."

Corrigez @CollinChaffin. Je l'utilise localement depuis un certain temps mais ce n'est pas une bonne API. J'ai en fait oublié ça, je vais m'en occuper plus aujourd'hui

Il s'avĂšre que le service GeoIP qu'il utilise est Ă©galement arrĂȘtĂ©: https://geoip.nekudo.com/shutdown

Il s'avĂšre que le service GeoIP qu'il utilise est Ă©galement arrĂȘtĂ©: https://geoip.nekudo.com/shutdown

@ USA-RedDragon veuillez vérifier en utilisant ifconfig.co ou api.ipapi.com

Comment est le statut Ă  ce sujet? Si quelqu'un crĂ©e un PR, je serais prĂȘt Ă  le fusionner (Ă  condition qu'il contienne les tests nĂ©cessaires).

De plus, j'envisagerais de supprimer l'ancien segment s'il ne fonctionne plus (et apparemment ne fonctionnera plus jamais, si je comprends bien).

si je ne me trompe pas, nous pourrions utiliser wttr.in et ifconfig.co en remplacement de
API IP et météo

Att.

JĂ©sus Rafael Sanchez Medrano
"La vie est un rĂȘve dont tous doivent se rĂ©veiller"

Le jeu.26 septembre 2019 Ă  03:39 Philip Wellnitz [email protected]
a Ă©crit:

Comment est le statut Ă  ce sujet? Si quelqu'un crĂ©e un PR, je serais prĂȘt Ă  fusionner
il (à condition qu'il contienne les tests nécessaires).

De plus, j'envisagerais de supprimer l'ancien segment s'il ne fonctionne plus
(et apparemment ne fonctionnera plus jamais, si je comprends bien).

-
Vous recevez cela parce que vous avez été mentionné.
RĂ©pondez directement Ă  cet e-mail, affichez-le sur GitHub
https://github.com/powerline/powerline/issues/1973?email_source=notifications&email_token=AAG7246IFIXXLINJLQZ7UUDQLRRKBA5CNFSM4GOVWYY2YY3PNVWWK3TUL52HS4Notifications&email_token=AAG7246IFIXXLINJLQZ7UUDQLRRKBA5CNFSM4GOVWYY2YY3PNVWWK3TUL52HS4DFVODREXJVM43VUBW63#WSNWH5WH5WH5WWW63TUL52HS4DFVODREXGVM43VUBW63
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAG72465C5JOTWA2YAL4P4LQLRRKBANCNFSM4GOVWYYQ
.

Salut, je viens d'utiliser Powerline avec tmux il y a moins d'une semaine et je l'adore. C'Ă©tait triste pour moi de trouver des arrĂȘts du segment mĂ©tĂ©orologique pour fonctionner et le rĂ©pertoire n'est pas en maintenance active maintenant. J'ai fait une tentative hier soir, pour modifier segments.wthr pour utiliser wttr.in comme suggĂ©rĂ© par ce fil. Les modifications sont vraiment simples, mais elles ne fonctionnent pas (toujours aucun segment mĂ©tĂ©o n'apparaĂźt). Je n'ai pas beaucoup d'expĂ©rience avec cette base de code et je ne sais mĂȘme pas comment la dĂ©boguer (je n'ai pas pu trouver le journal). Par consĂ©quent, je colle le code simple ici, en espĂ©rant que quelqu'un puisse aider Ă  faire avancer les choses. Juste parce que j'aime vraiment ce projet. Si vous aimez aussi ce projet et que vous avez plus d'expĂ©rience dans le segment de la rĂ©daction, aidez-moi ici :)

class WeatherSegment(KwThreadedSegment):
        interval = 600
        url_trunk = "wttr.in/"
        def __call__ (self, pl, update_first=True,
                location_query="Santa Clara,California",
                temp_coldest=30,
                temp_hottest=100,
                icons=None,
                **kwargs):
            self.location_query=location_query
            self.temp_coldest=temp_coldest
            self.temp_hottest=temp_hottest
            super(KwThreadedSegment, self).__call__(self, pl, update_first,
                location_query=location_query,
                temp_coldest=temp_coldest,
                temp_hottest=temp_hottest,
                icons=icons,
                    **kwargs)


        <strong i="8">@staticmethod</strong>
        def key(**kwargs):
                return "default_query"


        def compute_state(self, default_query):
                url_loc = '+'.join(self.location_query.split())
                url = url_trunk + url_loc + '?' + 'u&format="%c:%t"'
                response = urllib_read(url.encode('utf-8'))
                if not response:
                        self.error('Failed to get response')
                        return None

                return response

        def render_one(self, query_response, icons=None, unit='C', temp_format=None, temp_coldest=-30, temp_hottest=40, **kwargs):
                if not query_response:
                        return None

                icon,temp_string=query_response.split(':')
                match = re.match(r'([+-]*\d+)', temp_string)
                if match.group(1) is None:
                    self.error('Fail to get temperature')
                    return None

                temp = int(match.group(1))

                if temp <= self.temp_coldest:
                        gradient_level = 0
                elif temp >= self.temp_hottest:
                        gradient_level = 100
                else:
                        gradient_level = (temp - self.temp_coldest) * 100.0 / (self.temp_hottest - self.temp_coldest)
                return [
                        {
                                'contents': icon + ' ',
                                'highlight_groups': ['weather'],
                                'divider_highlight_group': 'background:divider',
                        },
                        {
                                'contents': temp_string,
                                'highlight_groups': ['weather_temp_gradient', 'weather_temp', 'weather'],
                                'divider_highlight_group': 'background:divider',
                                'gradient_level': gradient_level,
                        },
                ]

Je fais quelques efforts pour porter le plugin météo sur OpenWeatherMap.
Malheureusement, une clé API est requise pour cela, mais OpenWeatherMap déclare qu'il prend en charge FOSS, essaiera si j'obtiens une clé API avec des limites accrues à partir de là

Des mises Ă  jour Ă  ce sujet? C'est dommage que cela ne semble pas ĂȘtre actif. Le segment est toujours cassĂ©. Je suis passĂ© Ă  d'autres projets sur la plupart de mes ordinateurs, mais j'ai toujours un Linux utilisant Powerline sur lequel ce serait bien.

Eh bien, mon PR est toujours ouvert

Je n'ai pris aucune mesure concernant ce PR, parce que vous, @StopMotionCuber ,
Personnellement, je ne suis pas contre le fait d'avoir des segments dans lesquels un utilisateur doit fournir des informations de type informations d'identification dans la configuration (en fait, le segment IMAP fonctionne de la mĂȘme maniĂšre); ainsi, je peux imaginer fusionner le PR une fois qu'il est prĂȘt ...

Pourrions-nous simplement le fusionner et ajouter des informations clarifiant dans la documentation qu'une clĂ© API doit ĂȘtre ajoutĂ©e? Je suis prĂ©occupĂ© par le fait que ce soit un peu piratĂ©, mais honnĂȘtement, c'est mieux que le rien que nous avons pour le moment. Je serais heureux de vous aider s'il manque quelque chose, vous avez besoin d'aide avec @StopMotionCuber : smiley:

Oh, la seule chose qui me manque, c'est le temps, mais sinon je peux continuer avec ce PR.
Je vais essayer de faire avancer ce PR dans les prochains jours, peut-ĂȘtre dĂ©jĂ  ce soir.

Mise Ă  jour sur mon PR:
J'ai fait un peu de travail maintenant, et cela fonctionne sur ma machine (ÂŻ_ (ツ) _ / ÂŻ) cependant certains tests Ă©chouent car ils sont basĂ©s sur des rĂ©ponses de requĂȘte urllib stubbed que je n'ai pas encore remplacĂ©es par les API que j'utilise .
J'ai également introduit un changement de rupture (test), que le gradient de température est calculé en fonction de la valeur minimale et maximale de votre unité (avant que ce ne soit l'unité que vous obtiendriez de la demande).

Sinon, je suis assez ennuyĂ© de travailler sur ce problĂšme avec mon nouveau MacBook, car il semble y avoir un bug du processeur Ice Lake qui plante PyCharm et / ou macOS 😡

Corrigé dans # 2038

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

ironhouzi picture ironhouzi  Â·  7Commentaires

ssbanerje picture ssbanerje  Â·  6Commentaires

iamjboyd picture iamjboyd  Â·  6Commentaires

Chris-Bee picture Chris-Bee  Â·  3Commentaires

guyzmo picture guyzmo  Â·  5Commentaires