Powerline: Yahoo天気APIEOL

作成日 2019年01月08日  ·  31コメント  ·  ソース: powerline/powerline

天気セグメントが消えたことに気づき、含まれている電力線ログを確認しました

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>

電力線が使用するURLは、Yahooによってサポートされなくなったようです。1月3日

重要なEOL通知:2019年1月3日木曜日をもって、Yahoo WeatherAPIのweather.yahooapis.comおよびquery.yahooapis.comは廃止されます。

無料のYahooWeather APIを引き続き使用するには、 https: //weather-ydn-yql.media.yahoo.com/forecastrssを使用してYahooWeather APIサービスにオンボードするための資格情報については、

記録のために、ここにログの関連セクションがあります

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>

これを説明する問題は見つかりませんでした。重複していることをお詫びします。

segment bug enhancement

最も参考になるコメント

OpenWeatherMap APIを使用して新しいセグメントを作成するのは

全てのコメント31件

OpenWeatherMap APIを使用して新しいセグメントを作成するのは

APIを移動するためのプルリクエストから始めることができます。これをコーディングするためにさらに手を必要とする場合は、私が利用できます...

APIを移行するためにヘルプが必要な場合は、ここでもう1つ

@ barra51 @ mp1118いつ始めますか?

@gsusrafael私にとっては、今すぐ始めても大丈夫です:)

リポジトリをフォークしました。この情報https://blog.rapidapi.com/access-global-weather-data-with-these-weather-apis/をチェックして、天気情報収集のオプションをチェックしています。 ..

シンプルなため、別のオプションとしてhttps://wttr.inを投入したかっただけです

@liketechnikあなたの提案はさらに良いです...私は痛みのない移行かもしれないと思います

@liketechnik私がまだwttr.inで探しているのは、JSONで情報をダンプする可能性だけです...

wttr.inでこれが可能かどうかはわかりません:/ Readmeで見つけたのは、カスタムフォーマットを使用して現在の天気を1行で返す可能性です(https://github.com/chubin/wttr。 in#one-line-output)

----- PGP署名付きメッセージの開始-----
ハッシュ:SHA1

それはwttr.inにとって興味深い提案かもしれません、私は彼らの調査をしてきました
問題リストと私はJSON出力形式を要求するいくつかのリクエストを見つけました...それ
この機能が今後のリリースに統合されれば、本当に素晴らしいかもしれません。
wttr.inそしてそれを使うことができましたが今はできることをしましょう
気象APIプロバイダーに対して再利用可能および/またはプラグ可能であること。

2019-Mar-15 13:31:03に、FlorianWarzechaは次のように書いています。

wttr.inでこれが可能かどうかはわかりません:/ Readmeで見つけたのは、カスタムフォーマットを使用して現在の天気を1行で返す可能性です(https://github.com/chubin/wttr。 in#one-line-output)

-
あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信するか、GitHubで表示してください。
https://github.com/powerline/powerline/issues/1973#issuecomment -473431217


ヘスース・ラファエル・サンチェス
「フラクタル間umbraset illusionibus evanuit somnia ...」
----- BEGIN PGP SIGNATURE -----
バージョン: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
----- PGPSIGNATUREの終了-----

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

Wttr.inのくだらないサポートを実装しました。 理想的には、構成可能でより冗長な、より専門的なAPIを使用しますが、これは「一目でわかる」天気機能として機能します。

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

あなたは正解です... wttr.inは全天候型の仕様を満たしていません
API

El dom。、17 demar。 2019デ7:05、ヤコブMcSwain [email protected]
escribió:

アメリカ-RedDragon @ 352bf96
https://github.com/USA-RedDragon/powerline/commit/352bf96335d0ebd63acc996316af94b1394c8595

Wttr.inのくだらないサポートを実装しました。 理想的には、もっと使用します
構成可能でより冗長なプロフェッショナルAPIですが、これは次のように機能します
「一目でわかる」天気機能。

[画像:スクリーンショット2019-03-17 at 6 05 06 AM]
https://user-images.githubusercontent.com/13051767/54489483-b1efbf00-487a-11e9-8bf1-abd6372cc5df.png


あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/powerline/powerline/issues/1973#issuecomment-473655191
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/AA39c7P7kL6gxIm7t0H1J4SP4ZPSXOnFks5vXiGRgaJpZM4Z1bYx

これに関する更新はありますか?

@gsusrafael @USAのようですwttr.inでいくらかの進歩を遂げましたが、その後、私はみんながこの問題でもう働いていないことを知っています...

残念ながら、このリポジトリは積極的に維持されていないようです。最後のPRマージは2018年11月11日に戻ってきました。

私はこれについて少しナイーブかもしれませんが、これはあなたの要件にちょうど足りませんか?

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 ..."

@CollinChaffinを修正してください。 私はしばらくの間それをローカルで使用していますが、それは良いAPIではありません。 私は実際にこれを忘れました、私は今日それをもっと調べます

使用しているGeoIPサービスもシャットダウンされていることが判明しました: https

使用しているGeoIPサービスもシャットダウンされていることが判明しました: https

@ USA-RedDragonはifconfig.coまたはapi.ipapi.comを使用して確認してください

これの状況はどうですか? 誰かがPRを作成した場合、私はそれをマージしたいと思います(必要なテストが含まれていることを条件とします)。

さらに、古いセグメントが機能しなくなった場合は削除することを検討します(そして、私が理解しているように、二度と機能しないようです)。

私が間違っていなければ、wttr.inとifconfig.coを代わりに使用できます
IPと天気API

Att。

ヘスース・ラファエル・サンチェス・メドラノ
「人生は夢であり、そのすべてが目覚めなければならない」

午前3時39分AMフィリップWellnitzの木、2019年9月26日には[email protected]
書きました:

これの状況はどうですか? 誰かがPRを作成した場合、私は喜んでマージします
それ(必要なテストが含まれていることを条件とします)。

さらに、古いセグメントが機能しなくなった場合は、削除することを検討します
(そして、私が理解しているように、明らかに二度と機能することはありません)。


あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/powerline/powerline/issues/1973?email_source=notifications&email_token=AAG7246IFIXXLINJLQZ7UUDQLRRKBA5CNFSM4GOVWYY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/AAG72465C5JOTWA2YAL4P4LQLRRKBANCNFSM4GOVWYYQ

こんにちは私は1週間以内にtmuxで電力線を使用するようになりました。絶対に気に入っています。 気象セグメントが機能しなくなり、現在、再配置がアクティブにメンテナンスされていないことに気付いたのは悲しいことでした。 私は修正し、最後の夜の試行を行いましたsegments.wthr使用するようにwttr.inこのスレッドにより示唆されるように。 変更は本当に簡単ですが、機能しません(それでも天気セグメントは表示されません)。 私はこのコードベースの経験があまりなく、デバッグする方法すら知りません(ログが見つかりませんでした)。 したがって、誰かがこれを前進させるのを手伝ってくれることを願って、ここに簡単なコードを貼り付けています。 このプロジェクトが大好きだからです。 このプロジェクトも気に入っており、セグメントの作成経験が豊富な場合は、ここで私を助けてください:)

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,
                        },
                ]

天気プラグインをOpenWeatherMapに移植するためにいくつかの努力をしています。
残念ながら、そのためにはAPIキーが必要ですが、OpenWeatherMapはFOSSをサポートしていると述べており、そこから制限が増加したAPIキーを取得した場合に試行します

これに関する更新はありますか? これがアクティブではないように見えるのは残念です。 セグメントはまだ壊れています。 ほとんどのコンピューターで他のプロジェクトに切り替えましたが、電力線を使用しているLinuxがまだいくつかあります。

まあ、私のPRはまだ開いています

@StopMotionCuberが「これはまだマージの準備ができていません」と書いたので、私はそのPRに関して何もしませんでした。そのため、PRはまだWIPであると想定しました。
個人的には、ユーザーが構成で資格情報のような情報を提供する必要があるセグメントを持つことに反対していません(実際、IMAPセグメントも同様に機能します)。 したがって、準備ができたらPRをマージすることを想像できます...

それをマージして、APIキーを追加する必要があるという明確な情報をドキュメントに追加できますか? 私はこれが一種のハッキーであることに懸念を抱いていますが、正直なところ、これは私たちが現在持っているものよりも優れています。 @StopMotionCuber :smiley:で助けが必要なものが足りない場合は、喜んでお手伝いします。

ああ、私が見逃しているのは時間だけですが、それ以外の場合はこのPRを続けることができます。
今後数日以内に、おそらく今夜、そのPRを推進しようとします。

私のPRの更新:
私は今いくつかの作業を行い、それは私のマシンで動作しています(¯_(ツ)_ /¯)しかし、いくつかのテストは、使用しているAPIにまだ置き換えていないスタブされたurllibリクエストの回答に基づいているため失敗しています。
また、(テスト)破壊的な変更を導入しました。これは、温度勾配がユニットの最小値と最大値に基づいて計算されることです(リクエストから取得するユニットになる前)。

そうでなければ、PyCharmやmacOSをクラッシュさせているIce Lake CPUバグがあるように見えるので、新しいMacBookでこの問題に取り組むのはかなりイライラします😡

#2038で修正

このページは役に立ちましたか?
0 / 5 - 0 評価