wttr.in — วิธีที่ถูกต้องในการ ตรวจสอบ curl
อากาศ!
wttr.in เป็นบริการพยากรณ์อากาศแบบคอนโซลที่รองรับวิธีการแสดงข้อมูลต่างๆ เช่น ลำดับ ANSI ที่เน้นเทอร์มินัลสำหรับไคลเอ็นต์ HTTP ของคอนโซล (curl, httpie หรือ wget), HTML สำหรับเว็บเบราว์เซอร์ หรือ PNG สำหรับโปรแกรมดูกราฟิก
เดิมทีเริ่มต้นจากโครงการขนาดเล็ก ซึ่งเป็น wrapper สำหรับ wego ซึ่งมีจุดประสงค์เพื่อแสดงให้เห็นถึงประสิทธิภาพของบริการที่เน้นคอนโซล wttr.in กลายเป็นบริการรายงานสภาพอากาศยอดนิยม โดยจัดการคำถามหลายสิบล้านรายการต่อวัน
คุณสามารถดูว่ามันทำงานได้ที่นี่: wttr.in
เอกสารประกอบ | การใช้งาน | เอาต์พุตบรรทัดเดียว | รูปแบบเอาต์พุตที่มีข้อมูลมากมาย | มุมมองแผนที่ | รูปแบบเอาต์พุต | ข้างขึ้นข้างแรม | ความเป็นสากล | การติดตั้ง
คุณสามารถเข้าถึงบริการจากเชลล์หรือจากเว็บเบราว์เซอร์ดังนี้:
$ curl wttr.in
Weather for City: Paris, France
/ Clear
.-. 10 – 11 °C
― ( ) ― ↑ 11 km/h
`-’ 10 km
/ 0.0 mm
นี่คือตัวอย่างรายงานสภาพอากาศ:
หรือใน PowerShell:
Invoke-RestMethod https: // wttr.in
ต้องการรับข้อมูลสภาพอากาศสำหรับสถานที่เฉพาะหรือไม่? คุณสามารถเพิ่มตำแหน่งที่ต้องการลงใน URL ในคำขอของคุณได้ดังนี้:
$ curl wttr.in/London
$ curl wttr.in/Moscow
$ curl wttr.in/Salt+Lake+City
หากคุณไม่ระบุชื่อสถานที่ คุณจะได้รับรายงานสำหรับตำแหน่งปัจจุบันของคุณตามที่อยู่ IP ของคุณ
ใช้รหัสสนามบิน 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
หากต้องการรับข้อมูลโดยละเอียดทางออนไลน์ คุณสามารถเข้าถึงหน้า /:help:
$ curl wttr.in/:help
ตามค่าเริ่มต้น หน่วย USCS จะใช้สำหรับการสืบค้นจากสหรัฐอเมริกาและระบบเมตริกสำหรับส่วนอื่นๆ ของโลก คุณสามารถแทนที่ลักษณะการทำงานนี้ได้โดยเพิ่ม ?u
, ?m
หรือ ?M
ให้กับ URL ดังนี้:
$ curl wttr.in/Amsterdam?u # USCS (used by default in US)
$ curl wttr.in/Amsterdam?m # metric (SI) (used by default everywhere except US)
$ curl wttr.in/Amsterdam?M # metric (SI), but show wind speed in m/s
หากคุณมีหลายตัวเลือกที่จะผ่าน ให้เขียนตัวเลือกเหล่านั้นโดยไม่มีตัวคั่นระหว่างตัวเลือกตัวอักษรเดียว และใช้ &
เป็นตัวคั่นสำหรับตัวเลือกขนาดยาวที่มีค่า:
$ curl 'wttr.in/Amsterdam?m2&lang=nl'
มันจะเทียบเท่าโดยคร่าวของ -m2 --lang nl
สำหรับไวยากรณ์ GNU CLI
ปัจจุบัน wttr.in รองรับรูปแบบเอาต์พุตห้ารูปแบบ:
รูปแบบ ANSI และ HTML จะถูกเลือกตามสตริง User-Agent
หากต้องการบังคับข้อความธรรมดาซึ่งจะปิดใช้งานสี:
$ curl wttr.in/?T
หากต้องการจำกัดเอาต์พุตเป็นสัญลักษณ์ที่มีอยู่ในแบบอักษรคอนโซลมาตรฐาน (เช่น Consolas และ Lucida Console):
$ curl wttr.in/?d
คุณสามารถบังคับรูปแบบ PNG ได้โดยการเพิ่ม .png
ต่อท้ายแบบสอบถาม:
$ wget wttr.in/Paris.png
คุณสามารถใช้ตัวเลือกทั้งหมดที่มีรูปแบบ PNG เช่นเดียวกับใน URL แต่คุณต้องคั่นด้วย _
แทน ?
และ &
:
$ wget wttr.in/Paris_0tqp_lang=fr.png
ตัวเลือกที่มีประโยชน์สำหรับรูปแบบ PNG:
t
เพื่อความโปร่งใส ( transparency=150
);ความโปร่งใสเป็นคุณสมบัติที่มีประโยชน์เมื่อใช้ PNG สภาพอากาศเพื่อเพิ่มข้อมูลสภาพอากาศให้กับรูปภาพ:
$ convert source.jpg <( curl wttr.in/Oymyakon_tqp0.png ) -geometry +50+50 -composite target.jpg
ในตัวอย่างนี้:
source.jpg
- ไฟล์ต้นฉบับ;target.jpg
- ไฟล์เป้าหมาย;Oymyakon
- ชื่อสถานที่;tqp0
- ตัวเลือก (แนะนำ)คุณสามารถฝังวิดเจ็ต wttr.in พิเศษที่แสดงสภาพอากาศสำหรับตำแหน่งปัจจุบันหรือตำแหน่งที่เลือก ลงในหน้า HTML โดยใช้ wttr-switcher หน้าตาจะเป็นดังนี้: wttr-switcher-example หรือบนเว็บไซต์จริง: https://feuerwehr-eisolzried.de/
รูปแบบเอาต์พุตบรรทัดเดียวสะดวกในการใช้แสดงข้อมูลสภาพอากาศในแถบสถานะของโปรแกรมต่างๆ เช่น tmux , weechat เป็นต้น
สำหรับรูปแบบเอาต์พุตบรรทัดเดียว ให้ระบุ format
พารามิเตอร์ URL เพิ่มเติม :
$ curl wttr.in/Nuremberg?format=3
Nuremberg: ? +11⁰C
รูปแบบที่กำหนดค่าไว้ล่วงหน้าที่ใช้ได้: 1, 2, 3, 4 และรูปแบบที่กำหนดเองโดยใช้สัญลักษณ์เปอร์เซ็นต์ (ดูด้านล่าง)
คุณสามารถระบุสถานที่หลายแห่งโดยคั่นด้วย :
(สำหรับการสืบค้นซ้ำ):
$ curl wttr.in/Nuremberg:Hamburg:Berlin?format=3
Nuremberg: ? +11⁰C
หรือเพื่อประมวลผลคำค้นหาทั้งหมดนี้พร้อมกัน:
$ curl -s 'wttr.in/{Nuremberg,Hamburg,Berlin}?format=3'
Nuremberg: ? +11⁰C
Hamburg: ? +8⁰C
Berlin: ? +8⁰C
หากต้องการระบุรูปแบบเอาต์พุตที่คุณกำหนดเอง ให้ใช้เครื่องหมาย %
พิเศษ:
c Weather condition,
C Weather condition textual name,
x Weather condition, plain-text symbol,
h Humidity,
t Temperature (Actual),
f Temperature (Feels Like),
w Wind,
l Location,
m Moon phase ????????,
M Moon day,
p Precipitation (mm/3 hours),
P Pressure (hPa),
u UV index (1-12),
D Dawn*,
S Sunrise*,
z Zenith*,
s Sunset*,
d Dusk*,
T Current time*,
Z Local timezone.
(*times are shown in the local timezone)
ดังนั้นการโทรทั้งสองนี้จึงเหมือนกัน:
$ curl wttr.in/London?format=3
London: ⛅️ +7⁰C
$ curl wttr.in/London?format="%l:+%c+%tn"
London: ⛅️ +7⁰C
เมื่อใช้ใน tmux.conf
คุณจะต้องหลีกเลี่ยง %
ด้วย %
เช่นเขียนที่นั่น %%
แทน %
เอาต์พุตไม่มีการขึ้นบรรทัดใหม่ตามค่าเริ่มต้น เมื่อใช้เครื่องหมาย % แต่จะมีบรรทัดใหม่เมื่อมีการใช้รูปแบบที่กำหนดค่าไว้ล่วงหน้า ( 1
, 2
, 3
ฯลฯ) หากต้องการให้ขึ้นบรรทัดใหม่ในเอาต์พุตเมื่อใช้เครื่องหมาย % ให้ใช้ 'n' และเครื่องหมายคำพูดเดี่ยวเมื่อทำการสืบค้นจากเชลล์
ในโปรแกรมที่กำลังสอบถามบริการโดยอัตโนมัติ (เช่น tmux) ควรใช้ช่วงเวลาการอัปเดตที่สมเหตุสมผลจะดีกว่า ใน tmux คุณสามารถกำหนดค่าด้วย status-interval
หากมีการระบุตำแหน่งที่แยกจากกันหลาย :
ในการสืบค้น ให้ระบุระยะเวลาการอัปเดตเป็นพารามิเตอร์การสืบค้นเพิ่มเติม period=
:
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 ..."
วิธีฝังลงในแถบสถานะที่มีอยู่ของลูกค้า IRC (WeeChat):
/alias add wttr /exec -pipe "/mute /set plugins.var.wttr" url:wttr.in/Montreal?format=%l:+%c+%f+%h+%p+%P+%m+%w+%S+%s;/wait 3 /item refresh wttr
/trigger add wttr timer 60000;0;0 "" "" "/wttr"
/item add wttr "" "${plugins.var.wttr}"
/eval /set weechat.bar.status.items ${weechat.bar.status.items},spacer,wttr
/eval /set weechat.startup.command_after_plugins ${weechat.startup.command_after_plugins};/wttr
/wttr
ตัวอย่างการใช้งาน Conky:
${texeci 1800 curl wttr.in/kyiv_0pq_lang=uk.png
| convert - -transparent black $HOME/.config/conky/out.png}
${image $HOME/.config/conky/out.png -p 0,0}
ตัวอย่างการรวม IRC:
หากต้องการดูอิโมจิในเทอร์มินัล คุณต้องมี:
สำหรับแบบอักษรอิโมจิ เราขอแนะนำ Noto Color Emoji และตัวเลือกอื่นที่ดีคือแบบอักษร Emoji One ทั้งคู่รองรับสัญลักษณ์อิโมจิที่จำเป็นทั้งหมด
การกำหนดค่าแบบอักษร:
$ cat ~/.config/fontconfig/fonts.conf
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
<! DOCTYPE fontconfig SYSTEM "fonts.dtd">
< fontconfig >
< alias >
< family >serif</ family >
< prefer >
< family >Noto Color Emoji</ family >
</ prefer >
</ alias >
< alias >
< family >sans-serif</ family >
< prefer >
< family >Noto Color Emoji</ family >
</ prefer >
</ alias >
< alias >
< family >monospace</ family >
< prefer >
< family >Noto Color Emoji</ family >
</ prefer >
</ alias >
</ fontconfig >
(หากต้องการใช้การกำหนดค่า ให้รัน fc-cache -f -v
)
ในบางกรณี tmux
และความเข้าใจเทอร์มินัลของอักขระอิโมจิบางตัวอาจแตกต่างกัน ซึ่งอาจทำให้เกิดเอฟเฟกต์แปลกๆ คล้ายกับที่อธิบายไว้ใน #579
ในรูปแบบเอาต์พุตที่มีข้อมูลเชิงทดลองมากมาย ซึ่งมีให้ใช้งานภายใต้โค้ดมุมมอง v2
มีข้อมูลสภาพอากาศและดาราศาสตร์เพิ่มเติมมากมาย:
$ curl v2.wttr.in/München
หรือ
$ curl wttr.in/München?format=v2
หรือหากคุณชอบแบบอักษร Nerd แทน Emoji ให้เลือก v2d
(กลางวัน) หรือ v2n
(กลางคืน):
$ curl v2d.wttr.in/München
(โหมดนี้เป็นโหมดทดลอง และปัจจุบันมีข้อจำกัดหลายประการ:
ในปัจจุบัน คุณต้องปรับแต่งเทอร์มินัลบางตัวเพื่อให้ได้ภาพที่ดีที่สุด
คุณอาจดำเนินการทุกขั้นตอนหรือเพียงไม่กี่ขั้นตอน ทั้งนี้ขึ้นอยู่กับการกำหนดค่าของคุณ ขณะนี้ URXVT ไม่รองรับแบบอักษรที่เกี่ยวข้องกับอิโมจิ แต่เราสามารถรับเอฟเฟกต์เกือบเหมือนกันได้โดยใช้ Font-Symbola ดังนั้นให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ . .Xresources
ของคุณ:
xft:symbola:size=10:minspace=False
คุณสามารถเพิ่มได้ หลังจาก แบบอักษรที่คุณต้องการ และจะแสดงเมื่อจำเป็นเท่านั้น จากนั้น หากคุณเห็นหรือรู้สึกว่าคุณกำลังมีปัญหาเรื่องการเว้นวรรค ให้เพิ่มสิ่งนี้: URxvt.letterSpace: 0
ด้วยเหตุผลบางอย่าง บางครั้ง URXVT จะหยุดตัดสินใจเลือกการเว้นวรรคให้ถูกต้อง และเราต้องบังคับด้วยวิธีนี้
ผลลัพธ์ควรมีลักษณะดังนี้:
ในมุมมองแผนที่ทดลองซึ่งมีให้ใช้งานภายใต้โค้ดมุมมอง v3
มีข้อมูลสภาพอากาศเกี่ยวกับภูมิภาคทางภูมิศาสตร์:
$ curl v3.wttr.in/Bayern.sxl
หรือโดยตรงในเบราว์เซอร์:
ปัจจุบันมุมมองแผนที่รองรับสามรูปแบบ:
เทอร์มินัลที่รองรับโปรโตคอลรูปภาพอินไลน์:
⟶ บทความโดยละเอียด: รูปภาพในเทอร์มินัล
เทอร์มินัล | สิ่งแวดล้อม | การสนับสนุนรูปภาพ | โปรโตคอล |
---|---|---|---|
เอ็กซ์เทอม | X11 | ใช่ | ซิกเซล |
มลเทอม | X11 | ใช่ | ซิกเซล |
คิตตี้ | X11 | ใช่ | คิตตี้ |
เวสเทอม | X11 | ใช่ | ไอไอพี |
ดาร์กไทล์ | X11 | ใช่ | ซิกเซล |
เจ็กเซอร์ | X11 | ใช่ | ซิกเซล |
เทอร์มินัล GNOME | X11 | อยู่ระหว่างดำเนินการ | ซิกเซล |
ความขี้ระแวง | X11 | อยู่ระหว่างดำเนินการ | ซิกเซล |
เท้า | เวย์แลนด์ | ใช่ | ซิกเซล |
DomTerm | เว็บ | ใช่ | ซิกเซล |
เรือยอชท์ | FB | ใช่ | ซิกเซล |
iTerm2 | แมค โอเอส เอ็กซ์ | ใช่ | ไอไอพี |
มิ้นท์ | หน้าต่าง | ใช่ | ซิกเซล |
เทอร์มินัลวินโดวส์ | หน้าต่าง | อยู่ระหว่างดำเนินการ | ซิกเซล |
Rเข้าสู่ระบบ | หน้าต่าง | ใช่ | ซิกเซล |
รูปแบบ JSON เป็นคุณลักษณะที่ให้การเข้าถึงข้อมูล wttr.in ผ่านรูปแบบที่แยกวิเคราะห์ได้ง่าย โดยที่ผู้ใช้ไม่จำเป็นต้องสร้างสคริปต์ที่ซับซ้อนเพื่อตีความเอาต์พุตกราฟิกของ wttr.in ใหม่
หากต้องการดึงข้อมูลในรูปแบบ JSON ให้ใช้ไวยากรณ์ต่อไปนี้:
$ curl wttr.in/Detroit?format=j1
สิ่งนี้จะดึงข้อมูลเกี่ยวกับภูมิภาคดีทรอยต์ในรูปแบบ JSON โค้ดรูปแบบ j1 ใช้เพื่ออนุญาตให้ใช้เลย์เอาต์อื่นสำหรับเอาต์พุต JSON
ผลลัพธ์จะมีลักษณะดังนี้:
{
"current_condition" : [
{
"FeelsLikeC" : " 25 " ,
"FeelsLikeF" : " 76 " ,
"cloudcover" : " 100 " ,
"humidity" : " 76 " ,
"observation_time" : " 04:08 PM " ,
"precipMM" : " 0.2 " ,
"pressure" : " 1019 " ,
"temp_C" : " 22 " ,
"temp_F" : " 72 " ,
"uvIndex" : 5 ,
"visibility" : " 16 " ,
"weatherCode" : " 122 " ,
"weatherDesc" : [
{
"value" : " Overcast "
}
],
"weatherIconUrl" : [
{
"value" : " "
}
],
"winddir16Point" : " NNE " ,
"winddirDegree" : " 20 " ,
"windspeedKmph" : " 7 " ,
"windspeedMiles" : " 4 "
}
],
...
ค่าเหล่านี้ส่วนใหญ่อธิบายได้ในตัว นอกเหนือจาก weatherCode
weatherCode
เป็นการแจงนับซึ่งคุณสามารถดูได้ที่เว็บไซต์ WorldWeatherOnline หรือในซอร์สโค้ด wttr.in
รูปแบบ Prometheus Metrics เป็นคุณสมบัติที่ให้การเข้าถึงข้อมูล wttr.in ผ่านรูปแบบที่แยกวิเคราะห์ได้ง่ายสำหรับระบบการตรวจสอบ โดยไม่จำเป็นต้องให้ผู้ใช้สร้างสคริปต์ที่ซับซ้อนเพื่อตีความเอาต์พุตกราฟิกของ wttr.in ใหม่
หากต้องการดึงข้อมูลในรูปแบบ Prometheus ให้ใช้ไวยากรณ์ต่อไปนี้:
$ curl wttr.in/Detroit?format=p1
สิ่งนี้จะดึงข้อมูลเกี่ยวกับภูมิภาคดีทรอยต์ในรูปแบบ Prometheus Metrics โค้ดรูปแบบ p1
ใช้เพื่ออนุญาตให้ใช้เลย์เอาต์อื่นสำหรับเอาต์พุต Prometheus Metrics
การกำหนดค่าที่เป็นไปได้สำหรับ Prometheus อาจมีลักษณะดังนี้:
- job_name : ' wttr_in_detroit '
static_configs :
- targets : ['wttr.in']
metrics_path : ' /Detroit '
params :
format : ['p1']
ผลลัพธ์จะมีลักษณะดังนี้:
# HELP temperature_feels_like_celsius Feels Like Temperature in Celsius
temperature_feels_like_celsius{forecast="current"} 7
# HELP temperature_feels_like_fahrenheit Feels Like Temperature in Fahrenheit
temperature_feels_like_fahrenheit{forecast="current"} 45
[truncated]
-
wttr.in ยังสามารถใช้เพื่อตรวจสอบเฟสของดวงจันทร์ได้ ตัวอย่างนี้แสดงวิธีดูข้างขึ้นข้างแรมปัจจุบันในโหมดเอาท์พุตเต็ม:
$ curl wttr.in/Moon
รับข้างขึ้นข้างแรมสำหรับวันที่ระบุโดยเพิ่ม @YYYY-MM-DD
:
$ curl wttr.in/Moon@2016-12-25
ข้อมูลข้างขึ้นข้างแรมใช้ pyphoon เป็นแบ็กเอนด์
หากต้องการรับข้อมูลข้างขึ้นข้างแรมในโหมดออนไลน์ ให้ใช้ %m
:
$ curl wttr.in/London?format=%m
?
โปรดจำไว้ว่าการแสดงระยะข้างขึ้นข้างแรมด้วย Unicode มี 2 คำเตือน:
ด้วยฟอนต์บางตัว การแสดง ?
มีความคลุมเครือ เนื่องจากอาจดูเหมือนเกือบเป็นเงาหรือเกือบสว่าง ขึ้นอยู่กับว่าเทอร์มินัลของคุณอยู่ในโหมดสว่างหรือโหมดมืด การใช้แบบอักษรสี เช่น noto-fonts
จะช่วยแก้ไขปัญหานี้ได้
การเป็นตัวแทน ?
ยังคลุมเครือเช่นกัน เนื่องจากหมายถึง "ไตรมาสสุดท้าย" ในซีกโลกเหนือ แต่ "ไตรมาสแรก" ในซีกโลกใต้ มันไม่มีความหมายอะไรเลยในเขตร้อน นี่เป็นข้อจำกัดที่ Unicode ทราบ แต่ยังไม่ได้แก้ไขที่ wttr.in
ดู #247, #364 สำหรับปัญหาการติดตามที่เกี่ยวข้อง และ pyphoon#1 สำหรับ pyphoon ยินดีต้อนรับความช่วยเหลือใด ๆ
wttr.in รองรับชื่อสถานที่หลายภาษาที่สามารถระบุในภาษาใดก็ได้ในโลก (อาจเป็นเรื่องที่น่าแปลกใจ แต่สถานที่หลายแห่งในโลกไม่มีชื่อภาษาอังกฤษ)
ควรระบุสตริงการสืบค้นในรูปแบบ Unicode (เข้ารหัสฐานสิบหกหรือไม่) ช่องว่างในสตริงการสืบค้นจะต้องแทนที่ด้วย +
:
$ 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
ตัวเลือกที่สามคือการเลือกภาษาโดยใช้ชื่อ DNS ที่ใช้ในการสืบค้น:
$ curl de.wttr.in/Berlin
ปัจจุบัน wttr.in ได้รับการแปลเป็น 54 ภาษา และจำนวนภาษาที่รองรับก็เพิ่มขึ้นอย่างต่อเนื่อง
ดู /:translation เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับกระบวนการแปล ดูรายชื่อภาษาและผู้มีส่วนร่วมที่รองรับ หรือเพื่อทราบว่าคุณสามารถช่วยแปล wttr.in ในภาษาของคุณได้อย่างไร
ในการติดตั้งแอปพลิเคชัน:
wttr.in มีการพึ่งพาภายนอกดังต่อไปนี้:
หลังจากที่คุณติดตั้ง golang ให้ติดตั้ง wego
:
go install github.com/schachmat/wego@latest
ข้อกำหนดหลาม:
หากคุณต้องการรับรายงานสภาพอากาศเป็นไฟล์ PNG คุณจะต้องติดตั้ง:
คุณสามารถติดตั้งส่วนใหญ่ได้โดยใช้ pip
แพ็คเกจหลามบางตัวใช้ LLVM ดังนั้นให้ติดตั้งก่อน:
apt-get install llvm-7 llvm-7-dev
หากใช้ virtualenv
:
virtualenv -p python3 ve
ve/bin/pip3 install -r requirements.txt
ve/bin/python3 bin/srv.py
คุณต้องติดตั้งฐานข้อมูล geoip2 ด้วย คุณสามารถใช้ฐานข้อมูล GeoLite2 ฟรีที่สามารถดาวน์โหลดได้จาก (http://dev.maxmind.com/geoip/geoip2/geolite2/)
หากคุณต้องการใช้บริการ IP2location สำหรับที่อยู่ IP ที่ GeoLite2 ไม่ครอบคลุม คุณจะต้องได้รับคีย์ API ของบริการนั้น และหลังจากนั้นให้บันทึกลงในไฟล์ ~/.ip2location.key
:
$ echo 'YOUR_IP2LOCATION_KEY' > ~/.ip2location.key
หากคุณไม่มีไฟล์นี้ บริการจะถูกข้ามไปโดยไม่แจ้งให้ทราบ (ไม่ใช่ปัญหาใหญ่ เนื่องจากฐานข้อมูล MaxMind ค่อนข้างดี)
/root/.wegorc
/root/.ip2location.key (optional)
/app/airports.dat
/app/GeoLite2-City.mmdb
หากต้องการรับคีย์ WorldWeatherOnline API คุณต้องลงทะเบียนที่นี่:
https://developer.worldweatheronline.com/auth/register
หลังจากที่คุณมีคีย์ WorldWeatherOnline แล้ว คุณสามารถบันทึกลงในไฟล์คีย์ WWO ได้: ~/.wwo.key
นอกจากนี้ คุณต้องระบุคีย์ในการกำหนดค่า wego
:
$ cat ~/.wegorc
{
"APIKey" : " 00XXXXXXXXXXXXXXXXXXXXXXXXXXX " ,
"City" : " London " ,
"Numdays" : 3 ,
"Imperial" : false ,
"Lang" : " en "
}
พารามิเตอร์ City
ใน ~/.wegorc
จะถูกละเว้น
กำหนดค่าตัวแปรสภาพแวดล้อมต่อไปนี้ซึ่งกำหนดเส้นทางไปยังการติดตั้ง 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 "
ขอแนะนำให้คุณกำหนดค่าเว็บเซิร์ฟเวอร์ที่จะใช้ในการเข้าถึงบริการด้วย:
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 ;
}
}