GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

chubin

wttr.in – ⛅️ 天気をチェックする正しい方法

投稿日:

⛅️ 天気をチェックする正しい方法 http://wttr.in

wttr.in – 天気をチェックする正しい方法。

wttr.inは、コンソール向けの天気予報サービスで、curl、httpie、wgetなどのコンソールHTTPクライアント用の端末指向のANSIシーケンスなどのさまざまな情報表現方法をサポートしています。 Webブラウザ用のHTML。 グラフィカルビューアの場合はPNGです。 wttr.inは、天気予報情報のための視覚化および様々なデータソースのために、Potsを使用します。

wttr.inで確認できます。

使用法

シェルまたはWebブラウザからサービスにアクセスできます。

$ curl wttr.in
Weather for City: Paris, France

     \   /     Clear
      .-.      10 – 11 °C     
   ― (   ) ―   ↑ 11 km/h      
      `-’      10 km          
     /   \     0.0 mm         

それはあなたの場所の実際の天気予報がどのように見えるかです(ライブです):

GitHubのCDNはあなた自身のIPアドレスであなたの実際のIPアドレスを隠すので、あなたの場所ではありませんが、あなたの言語でのライブ天気予報です。

天気情報を取得する場所を指定することができます。 ロケーション名を省略すると、IPアドレスに基づいて現在のロケーションのレポートが表示されます。

$ curl wttr.in/London
$ curl wttr.in/Moscow

一部の空港に関する天気情報を取得する場合は、3文字の空港コードを使用できます。

$ curl wttr.in/muc      # Weather for IATA: muc, Munich International Airport, Germany
$ curl wttr.in/ham      # Weather for IATA: ham, Hamburg Airport, Germany

市町村の名前ではなく、地理的な場所の名前(都市、山の名前、特別な場所など)の名前を指定する場合は、 ~前に置く必要があります名。 つまり、ロケーション名は次の前に検索する必要があります。

$ curl wttr.in/~Vostok+Station
$ curl wttr.in/~Eiffel+Tower
$ curl wttr.in/~Kilimanjaro

この場合、天気予報出力の下に、正確な地位を記載した線があります。

Location: Vostok Station, станция Восток, AAT, Antarctica [-78.4642714,106.8364678]
Location: Tour Eiffel, 5, Avenue Anatole France, Gros-Caillou, 7e, Paris, Île-de-France, 75007, France [48.8582602,2.29449905432]
Location: Kilimanjaro, Northern, Tanzania [-3.4762789,37.3872648] 

IPアドレス(直接)またはドメイン名(@が前に付いています)をロケーション指定子として使用することもできます。

$ curl wttr.in/@github.com
$ curl wttr.in/@msu.ru

オンラインで詳細な情報を入手するには、 /:ヘルプページにアクセスしください:

$ curl wttr.in/:help

追加オプション

デフォルトでUSCSユニットは、米国のクエリと他の世界のメトリックシステムに使用されます。 次のオプションを使用して、この動作を無効にすることができます。

$ curl wttr.in/Amsterdam?u
$ curl wttr.in/Amsterdam?m

サポートされているフォーマット

wttr.inは現在3つの出力フォーマットをサポートしています:

  • 端末のANSI。
  • ブラウザのHTML。
  • グラフィカルな視聴者のためのPNG。

ANSI形式とHTML形式は、User-Agent文字列に基づいて選択されます。 PNG形式は、クエリの末尾に.pngを追加することで強制できます。

$ wget wttr.in/Paris.png

すべてのオプションをURLのようにPNG形式で使用できますが、代わりに_区切らなければなり? &

$ wget wttr.in/Paris_0tqp_lang=fr.png

PNG形式の便利なオプション:

  • 透明性のためのttransparency=150 )。
  • カスタム透明度レベルの透明度= 0..255。

気候PNGを使用して気象データを写真に追加する場合、透明性は便利な機能です。

$ convert 1.jpg <( curl wttr.in/Oymyakon_tqp0.png ) -geometry +50+50 -composite 2.jpg

ここに:

  • 1.jpg – ソースファイル。
  • 2.jpg – ターゲットファイル。
  • Oymyakon – 場所の名前。
  • tqp0 – オプション(推奨)。

特別ページ

wttr.inは、天気のチェックだけでなく、他の目的のためにも使用できます。

$ curl wttr.in/Moon

現在のムーンフェイズを見る(そのバックエンドとしてpyphoonを使う)。

$ curl wttr.in/Moon@2016-12-25

指定された日付(2016-12-25)の月の位相を確認する。

国際化とローカリゼーション

wttr.inは多言語の場所名をサポートしています。世界のどの言語でも指定できます(驚くかもしれませんが、世界の多くの場所には英語名が全くありません)。

クエリ文字列は、Unicode(16進数でエンコードされているかどうか)で指定する必要があります。 スペースが含まれている場合は、+と置き換える必要があります。

$ curl wttr.in/станция+Восток
Weather report: станция Восток

               Overcast
      .--.     -65 – -47 °C
   .-(    ).   ↑ 23 km/h
  (___.__)__)  15 km
               0.0 mm

出力に使用される言語(場所名を除く)は、入力言語に依存せず、英語(デフォルト)またはブラウザで指定されたブラウザの優先言語(ブラウザからクエリが発行された場合)です。クエリヘッダー( Accept-Language )。

適切なコマンドラインオプション(たとえば、 curl -H "Accept-Language: fr" wttr.inまたはhttp GET wttr.in Accept-Language:ru )を使用してコンソールクライアントを使用する場合は、明示的に設定できます。

langオプションを使用して、優先言語を強制することができます。

$ curl wttr.in/Berlin?lang=de

3番目のオプションは、クエリで使用されるDNS名を使用して言語を選択することです。

$ curl de.wttr.in/Berlin

wttr.inは現在50以上の言語で翻訳されており、サポートされている言語の数は絶えず増えています。

翻訳プロセスの詳細、サポートされている言語と貢献者のリスト、またはwttr.inをあなたの言語でどのように翻訳するのに役立つかを知るには、 /:translationを参照してください。

インストール

プログラムをインストールするには:

  1. 外部依存関係をインストールする
  2. サービスで使用されるPython依存関係をインストールする
  3. WorldWeatherOnline APIキーを取得する
  4. 今すぐ予約
  5. wttr.inを設定する
  6. HTTPフロントエンドサービスを設定する

外部依存関係をインストールする

外部要件:

  • ターミナルのための気象クライアント

wegoをインストールするには、 golangがインストールされている必要があります。 その後:

$ go get -u github.com/schachmat/wego
$ go install github.com/schachmat/wego

Python依存関係をインストールする

Pythonの要件:

  • フラスコ
  • geoip2
  • ジオピー
  • リクエスト
  • ジーヴェント

天気予報をPNGファイルとして取得する場合は、以下もインストールしてください。

  • PIL
  • pyte(> = 0.6)
  • 必要なフォント

あなたはpipを使ってそれらのほとんどをインストールできます。

virtualenvを使用する場合:

$ virtualenv ve
$ ve/bin/pip install -r requirements.txt
$ ve/bin/pip bin/srv.py

(py0.6はまだリリースされておらず、現時点ではGitHubリポジトリのソースコードから直接インストールする必要があります)。

また、geoip2データベースをインストールする必要があります。 http://dev.maxmind.com/geoip/geoip2/geolite2/からダウンロードできる無料のデータベースGeoLite2を使用できます。

WorldWeatherOnlineキーを取得する

WorldWeatherOnline APIキーを取得するには、ここに登録する必要があります:

https://developer.worldweatheronline.com/auth/register

今すぐ予約

キーをwego

$ cat ~/.wegorc 
{
    "APIKey": "00XXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "City": "London",
    "Numdays": 3,
    "Imperial": false,
    "Lang": "en"
}

~/.wegorcCityパラメーターは無視されます。

wttr.inを設定する

ローカルwttr.inインストール、GeoLiteデータベース、およびwttr.inインストールへのパスを指定する次の環境変数を設定します。 例えば:

export WTTR_MYDIR="/home/igor/wttr.in"
export WTTR_GEOLITE="/home/igor/wttr.in/GeoLite2-City.mmdb"
export WTTR_WEGO="/home/igor/go/bin/wego"
export WTTR_LISTEN_HOST="0.0.0.0"
export WTTR_LISTEN_PORT="8002"

HTTPフロントエンドサービスを設定する

サービスにアクセスするために使用されるWebサーバーを構成します(Webフロントエンドを使用する場合は、これが推奨されます)。

server {
    listen [::]:80;
    server_name  wttr.in *.wttr.in;
    access_log  /var/log/nginx/wttr.in-access.log  main;
    error_log  /var/log/nginx/wttr.in-error.log;

    location / {
        proxy_pass         http://127.0.0.1:8002;

        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $remote_addr;

        client_max_body_size       10m;
        client_body_buffer_size    128k;

        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;

        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;

        expires                    off;
    }
}







-chubin
-, , , , , ,

執筆者: