帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:天气  
Web frontend for wego

  • 源代码名称:wttr.in
  • 源代码网址:http://www.github.com/chubin/wttr.in
  • wttr.in源代码文档
  • wttr.in源代码下载
  • Git URL:
    git://www.github.com/chubin/wttr.in.git
  • Git Clone代码到本地:
    git clone http://www.github.com/chubin/wttr.in
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/chubin/wttr.in
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • wttr.in - 检查天气的正确方法。

    wttr.in 是面向控制台的天气预报服务,支持像 curl。httpie或者for等控制台HTTP客户端的各种信息表示方法。 wttr.in 使用 wego 可视化和各种数据源,用于天气预报信息。

    你可以在 wttr.in 查看它。

    用法

    你可以从 shell 或者Web浏览器访问该服务:

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

    这就是你所在位置的实际天气报告看起来像( 它是带电的): !

    Weather Report

    ( 实际上,它不是你的位置,因为github的IP地址隐藏了你自己的IP地址,但是它仍然是你的语言。

    你可以指定要获取天气信息的位置。 如果省略了位置名称,你将根据你的IP地址获取当前位置的报告。

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

    如果你想要获取有关某些机场的天气信息,你可以使用 3-letters 机场代码:

    
    $ 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
    
    
    
    

    在这种情况下,天气预报输出有一条 below 线,描述了所建立的精确位置:

    
    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地址( 直接) 或者域名( 以 @) 作为位置 specificator ):

    
    $ 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 目前支持三种输出格式:

    • 终端的ANSI ;
    • 浏览器的HTML ;
    • 图形查看器 PNG。

    ANSI和HTML格式是基于 USER-AGENT 字符串选择的。 在查询末尾添加 .png 时,可以强制使用PNG格式:

    
    $ wget wttr.in/Paris.png
    
    
    
    

    你可以使用png格式的所有选项,如 URL,但必须用 _ 将它们分开,而不是 ?&:

    
    $ wget wttr.in/Paris_0tqp_lang=fr.png
    
    
    
    

    PNG格式的特殊有用选项:

    • 用于透明( transparency=150 )的t
    • transparency=0.255用于自定义透明级别。

    当天气png用于向图片添加天气数据时,透明度是一个有用的特性:

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

    这里:

    • 1.jpg - 源文件;
    • 2.jpg - 目标文件;
    • Oymyakon - 位置的名称;
    • tqp0 - 选项( 推荐推荐)。

    Picture with weather data

    特殊页面

    wttr.in 不仅可以用于检查天气,还可以用于其他用途:

    
    $ curl wttr.in/Moon
    
    
    
    

    查看当前月相( 使用 pyphoon 作为后端)。

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

    要查看指定日期( 2016-12-25 )的月相。

    国际化和本地化

    wttr.in 支持多语言位置名称: 它们可以用世界( 这可能令人惊讶,但是世界上很多地方都没有任何英文名称) 中的任何语言来指定。

    查询字符串应该在 Unicode ( 十六进制编码或者不) 中指定。 如果包含空格,则必须用+ 替换空格:

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

    输出(。除了位置名称) 所用语言不依赖于输入语言,它是 English ( 默认情况) 或者查询头( Accept-Language ) 中指定的浏览器( 如果查询是从浏览器发出的) 首选语言。

    通过适当的命令行 选项使用控制台客户机时,可以显式设置它( 例如: curl -H"Accept-Language: fr" wttr.in 或者 http GET wttr.in Accept-Language:ru )。

    使用 lang 选项可以强制使用首选语言:

    
    $ curl wttr.in/Berlin?lang=de
    
    
    
    

    第三个选项是使用查询中使用的DNS名称选择语言:

    
    $ curl de.wttr.in/Berlin
    
    
    
    

    目前 wttr.in 翻译了超过 50种语言,支持的语言数量不断增长。

    请参见 /: 翻译了解有关翻译过程的详细信息,查看支持语言和贡献者列表,或者了解如何帮助你翻译语言中的wttr.in。

    Queries to wttr.in in various languages

    安装

    要安装该程序:

    • 安装外部依赖项
    • 安装服务使用的python 依赖项
    • 获取 WorldWeatherOnline API密钥
    • 配置 wego
    • 配置 wttr.in
    • 配置http前端服务

    安装外部依赖项

    外部需求:

    • wego,终端的气象客户端

    要安装 wego,你必须安装 golang。 在那之后:

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

    安装 python-依赖项

    python 要求:

    • Flask
    • geoip2
    • geopy
    • 请求
    • gevent

    如果你想以PNG文件的形式获取天气预报,请安装:

    • 文件
    • pyte (> =0.6 )
    • 必要字体

    你可以使用 pip 安装大部分。

    如果使用了 virtualenv:

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

    ( pyte 0.6尚未发布,应当从源代码直接安装到它的GitHub存储库中)。

    此外,你还需要安装geoip2数据库。 你可以使用免费数据库 GeoLite2,可以从 http://dev.maxmind.com/geoip/geoip2/geolite2/ 下载。

    获取WorldWeatherOnline密钥

    要获取 WorldWeatherOnline API密钥,必须在这里执行 register:

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

    配置 wego

    在你拥有密钥之后,配置 wego:

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

    忽略 ~/.wegorc 中的City 参数。

    配置 wttr.in

    将以下 环境变量 specifing配置为本地 wttr.in 安装的路径,到GeoLite数据库和 wego 安装。 例如:

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


    文章标签:天气  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语