Wttr.in

De Mi caja de notas

Révision datée du 14 février 2019 à 05:41 par Xtof (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

http://wttr.in [source github](https://github.com/chubin/wttr.in)

  • wttr.in — la bonne façon de vérifier la météo !*

`wttr.in` est un service de prévision météo orienté-console supportant différentes méthodes de représentation telles que les séquences-ANSI-orientées-terminal pour les clients console HTTP (curl, httpie, ou wget), HTML pour les navigateurs web ou PNG pour les visualiseurs graphiques.

`wttr.in` utilise [wego](http://github.com/schachmat/wego) pour la visualisation et différentes sources de données pour la prévision d'info météo.

Vous pouvez le voir fonctionner en lançant : [wttr.in](http://wttr.in).

Usage

Accédez au service à partir de la ligne de commande ou d'un navigateur web comme ceci :

   $ curl wttr.in
   Weather for City: Paris, France
        \   /     Clear
         .-.      10 – 11 °C     
      ― (   ) ―   ↑ 11 km/h      
         `-’      10 km          
        /   \     0.0 mm         


Voici un véritable rapport météo pour votre lieu (il est en live !) :

![Weather Report](http://wttr.in/MyLocation.png?)

(Ce n'est pas votre véritable lieu - le CDN de GitHub cache votre véritable adresse IP avec sa propre adresse IP, mais cela demeure un rapport météo en live dans votre langue.)

Vous voulez recevoir l'info météo pour un lieu spécifique ? Vous pouvez ajouter le lieu désiré à l'URL dans votre requête comme suit : request like this:

   $ curl wttr.in/Pau
   $ curl wttr.in/Bordeaux

Si vous omettez le nom du lieu, vous obtiendrez le rapport pour votre lieu actuel basé sur votre adresse IP.

Utilisez les codes aéroport à 3 lettres afin de recevoir l'information météo pour un certain aéroport :

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

Disons que vous aimeriez connaître la météo pour un lieu géographique autre qu'une ville - peut-être une attraction dans une ville, un nom de montagne ou un endroit spécial. Ajoutez le caractère `~` avant le nom pour rechercher ce nom spécial de lieu avant que la météo ne soit ensuite récupérée :

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

Pour ces exemples, vous verrez une ligne sous la sortie de prévision météo qui montre les résultats de géolocalisation du lieu :

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]

Vous pouvez aussi utiliser les adresses-IP (direct) oui les noms de domaines (préfixés avec un `@`) pour spécifier un lieu :

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

Pour recevoir une information en-linge détaillée, vous pouvez accéder à la page [/:help](http://wttr.in/:help) :

   $ curl wttr.in/:help

Unités Météo

Par défaut, les unités USCS sont utilisées pour les requêtes provenant des USA et le système métrique pour le reste du monde. Vous pouvez outrepasser ce comportement en ajoutant `?u` ou `?m` à une URL comme ceci :

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

Formats de sortie supportés

wttr.in supporte actuellement trois formats de sortie :

  • ANSI pour le terminal;
  • ANSI pour le terminal, mode une-ligne ;
  • HTML pour le navigateur ;
  • PNG pour les visualises graphiques.

Les formats ANSI et HTML sont sélectionnés selon la chaîne de l'agent-utilisateur. Le format PNG peut être forcé en ajoutant `.png` à la fin de la requête :

   $ wget wttr.in/Paris.png

Vous pouvez utiliser toutes les options avec le format-PNG comme dans une URL, mais vous devez les séparer avec un `_` au lieu de `?` et `&`:

   $ wget wttr.in/Paris_0tqp_lang=fr.png

Options utiles pour le format PNG :

  • `t` pour transparency (`transparency=150`);
  • transparency=0..255 pour un niveau personnalisé de transparence.

La transparence est une fonctionnalité utile quand les PNGs de météo sont utilisés pour ajouter de la donnée météo à des images :

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

Dans cet exemple :

  • `source.jpg` - fichier source ;
  • `target.jpg` - fichier cible ;
  • `Oymyakon` - nom du lieu ;
  • `tqp0` - options (recommandées).

![Image avec données météo](https://pbs.twimg.com/media/C69-wsIW0AAcAD5.jpg)

Sortie en une-ligne

Pour un format de sortie en une-ligne, spécifiez un paramètre supplémentaire `format` :

   $ curl wttr.in/Paris?format=3
   Paris: 🌦 +4⁰C


Formats disponibles pré-configurés : 1, 2, 3, 4 et format personnalisé en utilisant une note en pourcentage.

Phases de la lune

wttr.in peut être aussi utilisé pour vérifier la phase de la Lune. Cet exemple présente comme voir la phase de la lune en cours :

   $ curl wttr.in/Moon

Recevez la phase de la lune pour une date particulière en ajoutant `@AAAA-MM-JJ`:

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

L'information de la phase de la Lune utilise [pyphoon](https://github.com/chubin/pyphoon) pour son backend.

Internationalisation et localisation

wttr.in prend en charge les noms de lieux en plusieurs langues qui peuvent être spécifiés dans toute langue dans le monde. (ce peut être surprenant mais plein de lieux dans le monde n'ont pas de nom en anglais). (it may be surprising, but many locations in the world don't have an English name).

La chaîne de requête devrait être spécifiée en Unicode (encodé-hex ou pas). Les espaces dans la chaîne de requête doivent être remplacés par `+` :

   $ curl wttr.in/станция+Восток
   Weather report: станция Восток
                  Overcast
         .--.     -65 – -47 °C
      .-(    ).   ↑ 23 km/h
     (___.__)__)  15 km
                  0.0 mm

La langue utilisée pour la sortie (exception faite du nom du lieu) ne dépend pas de la langue de l'input, et elle est soit en anglais (par défaut) ou la langue préférée du navigateur (si la requête émane d'un navigateur) qui est spécifiée dans les headers de la requête (`Accept-Language`).

La langue peut être réglée explicitement au moment d'utiliser les clients de console en utilisant les options de ligne de commande comme suit :

   curl -H "Accept-Language: fr" wttr.in
   http GET wttr.in Accept-Language:fr

La langue préférée peut être forcée en utilisant l'option `lang` :

   $ curl wttr.in/Paris?lang=fr

La troisième option est de choisir la langue en utilisant le nom de DNS utilisé dans la requête :

   $ curl fr.wttr.in/Paris

wttr.in est actuellement traduit en 54 langues, et le nombre de langues supportées croit continuellement.

Voir [/:translation](http://wttr.in/:translation) pour en savoir plus sur le processus de traduction, la liste des langues supportées et les contributeurs, ou pour savoir comment vous pouvez aider à traduire wttr.in dans votre langue.

![Requêtes vers wttr.in en différentes langues](https://pbs.twimg.com/media/C7hShiDXQAES6z1.jpg)

Installation

Pour installer l'application :

1. Installez les dépendances externes 2. Installez les dépendances Python utilisées par le service 3. Recevez une Clé API WorldWeatherOnline 4. Configurez wego 5. Configurez wttr.in 6. Configurez le service frontend-HTTP

Installez les dépendances externes

wttr.in has the following external dependencies:

After you install [golang](https://golang.org/doc/install), install `wego`:

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

Installez les dépendances Python

Exigences Python :

  • Flask
  • geoip2
  • geopy
  • requests
  • gevent

Si vous voulez recevoir les rapports météo sous forme de fichiers PNG, vous devrez aussi installer :

  • PIL
  • pyte (>=0.6)
  • necessary fonts

Vous pouvez installer la plupart d'entre eux en utilisant `pip`.

si `virtualenv` est utilisé :

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

Vous devez aussi installer la base de données geoip2. Vous pouvez utiliser une base de données gratuite GeoLite2 qui se télécharge à partir de (http://dev.maxmind.com/geoip/geoip2/geolite2/).

Recevez une clé WorldWeatherOnline

Pour recevoir une clé API WorldWeatherOnline, vous devez vous enregistrer ici :

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

Configurez wego

Après avoir reçu votre clé WorldWeatherOnline, vous pouvez configurer `wego`:

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

Le paramètre `City` dans `~/.wegorc` est ignoré.

Configurez wttr.in

Configurez les variables d'environnement suivantes qui définissent le chemin vers l'installation locale de `wttr.in`, vers la base de données GeoLite, et vers l'installation `wego` installation. Par exemple :

   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"

Configurez le service frontend-HTTP

Il est recommandé que vous configure aussi le serveur web qui sera utilisé pour accéder au service :

   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;
       }
   }