Documentation
¶
Overview ¶
Package wttrin 封装http://wttr.in
不同形式的天气预报URL格式:
ASCII: http://wttr.in/<location>?<query> 图片: http://wttr.in/<location>_<query>.png 单行文本: http://wttr.in/<location>?format=<format>&<query>
location 是需要查询天气预报的地点,可以使用英文字符串,也可以直接传中文
query 是控制天气预报内容的参数,所有控制参数直接拼接在一起即可,如0_A_T_p表示对输出内容做对应的4种处理
不加query参数,默认返回html内容,包含全部信息,从上到下为:预报的地点;当前天气信息;今天、明天、后天的表格天气信息;底部详细地点信息;底部wttrin作者项目信息
以下信息是阅读wttr.in源码写的,其中有点参数看起来还在实现中,因此仅供参考。
query 控制参数解释:
A: 返回带颜色的ASCII内容,不加返回的是HTML n: 表格天气信息只返回中午和夜间,不加返回的是早上、中午、傍晚、夜间的信息 m: 温度展示位摄氏度 u: 温度展示为华氏度,风速等其他值和单位也有对应变化 M: 风速展示为m/s 不加展示为km/h I: 反转html或ASCII中的颜色 t: 设置png图片透明值为150 transparency: 指定png图片透明值,transparency=123 T: 返回的ASCII内容不带颜色 p: 对内容设置一定的padding 0: 返回当前天气信息 1: 返回当前+今天的天气信息 2: 返回当前+今天+明天的天气信息 3: 返回当前+今天+明天+后天的天气信息 q: 不显示底部详细地址和顶部地址信息的前缀信息 Q: 不显示顶部和底部的地点信息 F: 不显示底部作者项目信息 lang: 天气语言翻译 "az", "bg", "bs", "cy", "cs", "eo", "es", "fi", "ga", "hi", "hr", "hy", "is", "ja", "jv", "ka", "kk", "ko", "ky", "lt", "lv", "mk", "ml", "nl", "fy", "nn", "pt", "pt-br", "sk", "sl", "sr", "sr-lat", "sv", "sw", "te", "uz", "zh", "zu", "he"
format 参数解释
%l: 地点 %c: 天气图标 %C: 天气文字 %t: 温度 %w: 风速 %m: 月相图标 0-新月 1-眉月 2-上弦月 3-盈凸月 4-满月 5-亏凸月 6-下弦月 7-残月 %M: 新月后第几天 %h: 湿度 %p: 降水量 %o: 降水几率 %P: 气压 %s: 日落时间 1: 预定义格式(⛅️ +15°C) 2: 预定义格式(⛅️ 🌡️+15°C 🌬️↗11 km/h) 3: 预定义格式(成都: ⛅️ +15°C) 4: 预定义格式(成都: ⛅️ 🌡️+15°C 🌬️↗11 km/h)
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ASCII ¶
ASCII 图形天气信息
Example ¶
返回ASCII图形的天气预报示例
package main
import (
"log"
"github.com/axiaoxin-com/wttrin"
)
func main() {
// 默认样式控制
result, err := wttrin.ASCII("zh", "成都")
if err != nil {
log.Fatal(err)
}
log.Println(result)
// 自定义样式控制
result, err = wttrin.ASCII("zh", "成都", "0", "A", "Q")
if err != nil {
log.Fatal(err)
}
log.Println(result)
}
Output:
func Image ¶
func Image(lang, location string, q ...string) (io.ReadCloser, error)
Image 图片天气信息
Example ¶
返回天气预报图片的示例
package main
import (
"io"
"log"
"os"
"github.com/axiaoxin-com/wttrin"
)
func main() {
// 默认样式的图片
result, err := wttrin.Image("zh", "成都")
if err != nil {
log.Fatal(err)
}
// 保存图片
f, err := os.Create("./wttrin_noquery.png")
if err != nil {
log.Fatal(err)
}
defer f.Close()
if _, err := io.Copy(f, result); err != nil {
log.Fatal(err)
}
// 自定义图片样式
result, err = wttrin.Image("zh", "成都", "A", "p", "F")
if err != nil {
log.Fatal(err)
}
// 保存图片
f1, err := os.Create("./wttrin_query.png")
if err != nil {
log.Fatal(err)
}
defer f1.Close()
if _, err := io.Copy(f1, result); err != nil {
log.Fatal(err)
}
}
Output:
func Line ¶
Line 单行天气信息
Example ¶
单行文字的天气预报示例:
package main
import (
"log"
"github.com/axiaoxin-com/wttrin"
)
func main() {
// 自定义格式
result, err := wttrin.Line("zh", "成都", "地点%l 天气图标%c 天气文字%C 温度%t 风速%w 月相图标%m 新月后第几天%M 湿度%h 降水量%p 降水几率%o 气压%P 日落时间%s")
if err != nil {
log.Fatal(err)
}
log.Print(result)
// 默认格式
result, err = wttrin.Line("zh", "成都", "")
if err != nil {
log.Fatal(err)
}
log.Print(result)
}
Output:
func WttrIn ¶
func WttrIn(locationQuery string) (io.ReadCloser, error)
WttrIn 获取 GET 请求 http://wttr.in 的返回 Body
Example ¶
原始请求http://wttr.in的示例
package main
import (
"io/ioutil"
"log"
"github.com/axiaoxin-com/wttrin"
)
func main() {
body, err := wttrin.WttrIn("成都?0ATp")
if err != nil {
log.Fatal(err)
}
content, err := ioutil.ReadAll(body)
if err != nil {
log.Fatal(err)
}
defer body.Close()
log.Println(string(content))
}
Output:
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.