Merge pull request #1 from chubin/master

catching up to upstream
This commit is contained in:
Jesus M. Castagnetto 2020-01-01 20:12:38 -05:00 committed by GitHub
commit 0e276955d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 892 additions and 99 deletions

View file

@ -2,15 +2,14 @@ group: travis_latest
language: python
cache: pip
python:
- 2.7
- 3.7
install:
- pip install flake8 -r requirements.txt
before_script:
# stop the build if there are Python syntax errors or undefined names
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
- flake8 bin lib --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- flake8 bin lib --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
script:
- true # pytest --capture=sys # add other tests here
notifications:

View file

@ -77,12 +77,13 @@ You can override this behavior by adding `?u` or `?m` to a URL like this:
## Supported output formats
wttr.in currently supports three output formats:
wttr.in currently supports four output formats:
* ANSI for the terminal;
* ANSI for the terminal, one-line mode;
* HTML for the browser;
* PNG for the graphical viewers.
* PNG for the graphical viewers;
* JSON for scripts and APIs.
The ANSI and HTML formats are selected basing on the User-Agent string.
The PNG format can be forced by adding `.png` to the end of the query:
@ -112,6 +113,57 @@ In this example:
![Picture with weather data](https://pbs.twimg.com/media/C69-wsIW0AAcAD5.jpg)
You can embed a special wttr.in widget, that displays the weather condition for the current or a selected location, into a HTML page using the [wttr-switcher](https://github.com/midzer/wttr-switcher). That is how it looks like: [wttr-switcher-example](https://midzer.github.io/wttr-switcher/) or on a real world web site: https://feuerwehr-eisolzried.de/.
![Embedded wttr.in example at feuerwehr-eisolzried.de](https://user-images.githubusercontent.com/3875145/65265457-50eac180-db11-11e9-8f9b-2e1711dfc436.png)
## JSON output
The JSON format is a feature providing access to wttr.in data through an easy-to-parse format, without requiring the user to create a complex script to reinterpret wttr.in's graphical output.
To fetch information in JSON format, use the following syntax:
$ curl wttr.in/Detroit?format=j1
This will fetch information on the Detroit region in JSON format. The j1 format code is used to allow for the use of other layouts for the JSON output.
The result will look something like the following:
{
"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"
}
],
...
Most of these values are self-explanatory, aside from `weatherCode`. The `weatherCode` is an enumeration which you can find at either [the WorldWeatherOnline website](https://www.worldweatheronline.com/developer/api/docs/weather-icons.aspx) or [in the wttr.in source code](https://github.com/chubin/wttr.in/blob/master/lib/constants.py).
## One-line output
For one-line output format, specify additional URL parameter `format`:
@ -150,6 +202,7 @@ To specify your own custom output format, use the special `%`-notation:
m Moonphase 🌑🌒🌓🌔🌕🌖🌗🌘,
M Moonday,
p precipitation (mm),
o Probability of Precipitation,
P pressure (hPa),
```

View file

@ -63,7 +63,6 @@ def load_translations():
return translations
TRANSLATIONS = load_translations()
def _find_srv_for_query(path, query): # pylint: disable=unused-argument
return 'http://api.worldweatheronline.com'
@ -206,8 +205,8 @@ def proxy(path):
if response:
headers = {}
headers['Content-Type'] = response.headers['content-type']
_save_content_and_headers(path, query_string, response.content, headers)
content = add_translations(response.content, lang)
_save_content_and_headers(path, query_string, content, headers)
else:
content = "{}"

View file

@ -42,8 +42,9 @@ import constants
import translations
import wttr_line
reload(sys)
sys.setdefaultencoding("utf-8")
if not sys.version_info >= (3, 0):
reload(sys) # noqa: F821
sys.setdefaultencoding("utf-8")
# data processing {{{
@ -302,22 +303,9 @@ def draw_wind(data, color_data):
def _color_code_for_wind_speed(wind_speed):
color_codes = [
(3, 82), # 82
(6, 118), # 118
(9, 154), # 154
(12, 250), # 190
(15, 246), # 226
(19, 253), # 220
(23, 214),
(27, 208),
(31, 202),
(-1, 196)
]
color_codes = [
(3, 241), # 82
(6, 242), # 118
(9, 243), # 154
(3, 241), # 82
(6, 242), # 118
(9, 243), # 154
(12, 246), # 190
(15, 250), # 226
(19, 253), # 220

View file

@ -5,19 +5,19 @@ Translation of almost everything.
"""
FULL_TRANSLATION = [
"af", "da", "de", "el", "et",
"af", "be", "ca", "da", "de", "el", "et",
"fr", "fa", "hu", "id", "it",
"nb", "nl", "pl", "pt-br", "ro",
"ru", "tr", "uk", "vi"
"ru", "tr", "th", "uk", "vi", "zh-cn", "zh-tw"
]
PARTIAL_TRANSLATION = [
"az", "be", "bg", "bs", "ca", "cy", "cs",
"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", "th", "te", "uz",
"sv", "sw", "te", "uz",
"zh", "zu", "he",
]
@ -27,8 +27,8 @@ PROXY_LANGS = [
"fy", "he", "hr", "hu", "hy",
"id", "is", "it", "ja", "kk",
"lv", "mk", "nb", "nn", "ro",
"ru", "sl", "pt-br", "uk", "uz",
"vi",
"ru", "sl", "th", "pt-br", "uk", "uz",
"vi", "zh-cn", "zh-tw",
]
SUPPORTED_LANGS = FULL_TRANSLATION + PARTIAL_TRANSLATION
@ -96,7 +96,7 @@ asi que hemos decidido enseñarte el tiempo en Oymyakon,
uno de los sitios más fríos y permanentemente deshabitados del planeta.
""",
'fa': u"""
ما نتونستیم مکان شما رو پیدا کنیم. به همین خاطر شما رو به om بردیم
ما نتونستیم مکان شما رو پیدا کنیم. به همین خاطر شما رو به اویمیاکن بردیم
، یکی از سردترین مکان های روی زمین که اصلا قابل سکونت نیست!
""",
'fi': u"""
@ -224,6 +224,9 @@ Umarız sizin olduğunuz yerde havalar daha iyidir!
ి కననలకప
కన మన "ఓమాయకాన్కు" ి వచ,
ి అతయల వత ివసి ి రదలల ఒకటి.
""",
'th': u"""
เราไมสามารถหาตำแหนงของคณไดเราจงนำคณไปส Oymyakon หมานทหนาวทดในโลก!
""",
'uk': u"""
Ми не змогли визначити Ваше місцезнаходження,
@ -254,6 +257,11 @@ mis on üks kõige külmemaid püsivalt asustatud paiku planeedil.
Chúng tôi không tìm thấy địa điểm của bạn
vậy chúng tôi đưa bạn đến Oymyakon,
một trong những nơi lạnh nhất người sinh sống trên trái đất.
""",
'zh-tw': u"""
我們找不到您的位置
所以我們帶您到奧伊米亞康
這個星球上有人類定居最冷之處
""",
},
@ -298,10 +306,12 @@ một trong những nơi lạnh nhất có người sinh sống trên trái đ
'sv': u'Okänd plats',
'te': u'తెలియని ప్రదేశం',
'tr': u'Bilinmeyen konum',
'th': u'ไม่สามารถระบุตำแหน่งได้',
'uk': u'Невідоме місце',
'uz': u'Аникланмаган худуд',
'zh': u'未知地点',
'vi': u'Địa điểm không xác định',
'zh-tw': u'未知位置',
},
'LOCATION': {
@ -346,8 +356,10 @@ một trong những nơi lạnh nhất có người sinh sống trên trái đ
'zh': u'地点',
'te': u'స్థానము',
'tr': u'Konum',
'th': u'ตำแหน่ง',
'uk': u'Місцезнаходження',
'vi': u'Địa điểm',
'zh-tw': u'位置',
},
'CAPACITY_LIMIT_REACHED': {
@ -394,7 +406,7 @@ Pots seguir https://twitter.com/igor_chubin per noves actualitzacions.
""",
'de': u"""
Entschuldigung, wir können momentan den Wetterdienst nicht erreichen.
Dafür zeigen wir Ihnen das Wetter an einem Beispielort, damit Sie sehen wie die Seite das Wetter anzeigt.
Dafür zeigen wir Ihnen das Wetter an einem Beispielort, damit Sie sehen, wie die Seite das Wetter anzeigt.
Wir werden versuchen das Problem so schnell wie möglich zu beheben.
Folgen Sie https://twitter.com/igor_chubin für Updates.
======================================================================================
@ -408,7 +420,7 @@ Gellir dilyn https://twitter.com/igor_chubin i gael newyddion pellach.
""",
'es': u"""
Lo siento, hemos alcanzado el límite de peticiones al servicio de previsión del tiempo en este momento.
A continuación, la previsión del tiempo para una ciudad estándar (solo para que puedas ver que aspecto tiene el informe).
A continuación, la previsión del tiempo para una ciudad estándar (solo para que puedas ver el formato del reporte).
Muy pronto volveremos a tener acceso a las peticiones.
Puedes seguir https://twitter.com/igor_chubin para estar al tanto de la situación.
======================================================================================
@ -487,7 +499,7 @@ Du kan følge https://twitter.com/igor_chubin for oppdateringer.
抱歉当前天气服务不可用
以下显示默认城市只对您可见
我们将会尽快获取新数据
您可以通过https://twitter.com/igor_chubin 获取最新动态
您可以通过 https://twitter.com/igor_chubin 获取最新动态
======================================================================================
""",
'nl': u"""
@ -545,6 +557,13 @@ Varsayılan şehir için hava durumu bilgisini görüyorsunuz (neye benzediğini
Mümkün olan en kısa sürede servise yeniden sorgu yapmaya başlayacağız.
Gelişmeler için https://twitter.com/igor_chubin adresini takip edebilirsiniz.
======================================================================================
""",
'th': u"""
ขออภ การเรยกคนหาระบบสภาพอากาศของเราหมดชวคราว
เราจงแสดงขอมลของเมองตวอยาง (เพอทจะแสดงใหณเหนวาหนาตาเปนยงไง)
เราจะเรยกคนหาใหมโดยเรวท
ณสามารถตดตามการอพเดทได https://twitter.com/igor_chubin
======================================================================================
""",
'da': u"""
Beklager, men vi er ved at løbe tør for forespørgsler til vejr-servicen lige nu.
@ -573,6 +592,13 @@ Xin lỗi, hiện tại chúng tôi đã hết lượt yêu cầu thông tin th
Chung tôi sẽ thêm lượt truy vấn sớm nhất thể
Bạn thể theo dõi https://twitter.com/igor_chubin để cập nhật thông tin mới nhất.
======================================================================================
""",
'zh-tw': u"""
抱歉目前天氣服務的查詢請求太多了
這裡是預設城市的天氣報告只是為您展示它的外觀
我們將盡快取得新的資料
您可以追蹤 https://twitter.com/igor_chubin 以取得更新
======================================================================================
""",
},
@ -587,7 +613,7 @@ Bạn có thể theo dõi https://twitter.com/igor_chubin để cập nhật th
'bg': u'Нова функционалност: многоезични имена на места\033[92mwttr.in/станция+Восток\033[0m (в UTF-8) и в търсенето \033[92mwttr.in/~Kilimanjaro\033[0m (добавете ~ преди)',
'bs': u'XXXXXXXXXXXXXXXXXXXX: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX\033[92mwttr.in/станция+Восток\033[0m (XX UTF-8) XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'ca': u'Noves funcionalitats: noms d\'ubicació multilingües \033[92mwttr.in/станция+Восток\033[0m (en UTF-8) i la ubicació de recerca \033[92mwttr.in/~Kilimanjaro\033[0m (només cal afegir ~ abans)',
'es': u'Nuevas funcionalidades: los nombres de las ubicaciones en vários idiomas \033[92mwttr.in/станция+Восток\033[0m (em UTF-8) y la búsqueda por ubicaciones \033[92mwttr.in/~Kilimanjaro\033[0m (tan solo inserte ~ en frente)',
'es': u'Nuevas funcionalidades: los nombres de las ubicaciones en varios idiomas \033[92mwttr.in/станция+Восток\033[0m (em UTF-8) y la búsqueda por ubicaciones \033[92mwttr.in/~Kilimanjaro\033[0m (tan solo inserte ~ en frente)',
'fa': u'قابلیت جدید: پشتیبانی از نام چند زبانه مکانها \033[92mwttr.in/станция+Восток\033[0m (در فرمت UTF-8) و جسجتوی مکان ها \033[92mwttr.in/~Kilimanjaro\033[0m (فقط قبل از اون ~ اضافه کنید)',
'fr': u'Nouvelles fonctionnalités: noms d\'emplacements multilingues \033[92mwttr.in/станция+Восток\033[0m (en UTF-8) et recherche d\'emplacement \033[92mwttr.in/~Kilimanjaro\033[0m (ajouter ~ devant)',
'mk': u'Нова функција: повеќе јазично локациски имиња \033[92mwttr.in/станция+Восток\033[0m (во UTF-8) и локациско пребарување \033[92mwttr.in/~Kilimanjaro\033[0m (just add ~ before)',
@ -612,10 +638,12 @@ Bạn có thể theo dõi https://twitter.com/igor_chubin để cập nhật th
'zh': u'新功能:多语言地点名称 \033[92mwttr.in/станция+Восток\033[0m (in UTF-8) 及地点搜索\033[92mwttr.in/~Kilimanjaro\033[0m (只需在名称前加~',
'tr': u'Yeni özellik: çok dilli konum isimleri \033[92mwttr.in/станция+Восток\033[0m (UTF-8 ile) ve konum arama \033[92mwttr.in/~Kilimanjaro\033[0m (sadece önüne ~ ekleyin)',
'te': u'క్రొత్త లక్షణం: బహుభాషా స్థాన పేర్లు \ 033 [92mwttr.in/stancelя+Vostок\033 [0 U (UTF-8 లో) మరియు స్థానం శోధన \ 033 [92mwttr.in/~kilimanjaro\033 [0m (కేవలం ~ ముందుకి జోడించండి)',
'th': u'ฟีเจอร์ใหม่: แสดงที่ตั้งได้หลายภาษา \033[92mwttr.in/станция+Восток\033[0m (ใน UTF-8) และการค้นหาที่ตั้ง \033[92mwttr.in/~Kilimanjaro\033[0m (เพียงเพิ่ม ~ ข้างหน้า)',
'da': u'Ny funktion: flersprogede lokationsnavne \033[92mwttr.in/станция+Восток\033[0m (som UTF-8) og lokations søgning \033[92mwttr.in/~Kilimanjaro\033[0m (bare tilføj ~ inden)',
'et': u'Uus funktsioon: mitmekeelsed asukohanimed \033[92mwttr.in/станция+Восток\033[0m (UTF-8 vormingus) ja asukoha otsing \033[92mwttr.in/~Kilimanjaro\033[0m (lisa ~ enne)',
'uk': u'Спробуйте: назви місць будь-якою мовою \033[92mwttr.in/станція+Восток\033[0m (в UTF-8) та пошук місць \033[92mwttr.in/~Kilimanjaro\033[0m (потрібно додати ~ спочатку)',
'vi': u'Chức năng mới: tên địa điểm đa ngôn ngữ \033[92mwttr.in/станция+Восток\033[0m (dùng UTF-8) và tìm kiếm địa điểm \033[92mwttr.in/~Kilimanjaro\033[0m (chỉ cần thêm ~ phía trước)',
'zh-tw': u'新功能:多語言地點名稱 \033[92mwttr.in/станция+Восток\033[0m (使用 UTF-8 編碼)與位置搜尋 \033[92mwttr.in/~Kilimanjaro\033[0m (只要在地點前加 ~ 就可以了)',
},
'FOLLOW_ME': {
@ -649,10 +677,12 @@ Bạn có thể theo dõi https://twitter.com/igor_chubin để cập nhật th
'zh': u'关注 \033[46m\033[30m@igor_chubin\033[0m 获取 wttr.in 动态',
'te': u'అనుసరించండి \ 033 [46m \ 033 [30m @ igor_chubin \ 033 [wttr.in నవీకరణలను కోసం',
'tr': u'wttr.in ile ilgili gelişmeler için \033[46m\033[30m@igor_chubin\033[0m adresini takip edin',
'th': u'ติดตาม \033[46m\033[30m@igor_chubin\033[0m สำหรับการอัพเดท wttr.in',
'da': u'Følg \033[46m\033[30m@igor_chubin\033[0m for at få wttr.in opdateringer',
'et': u'Jälgi \033[46m\033[30m@igor_chubin\033[0m wttr.in uudiste tarbeks',
'uk': u'Нові можливості wttr.in публікуються тут: \033[46m\033[30m@igor_chubin\033[0m',
'vi': u'Theo dõi \033[46m\033[30m@igor_chubin\033[0m để cập nhật thông tin về wttr.in',
'zh-tw': u'追蹤 \033[46m\033[30m@igor_chubin\033[0m 以取得更多 wttr.in 的動態',
},
}
@ -671,9 +701,9 @@ CAPTION = {
"el": u"Πρόγνωση καιρού για:",
"en": u"weather report for:",
"eo": u"Veterprognozo por:",
"es": u"El tiempo en:",
"es": u"El reporte del tiempo en:",
"et": u"Ilmaprognoos:",
"fa": u"ﺍﻮﻫ ﻭ ﺏﺁ ﺕیﻊﺿﻭ ﺵﺭﺍﺯگ",
"fa": u"گزارش آب و هئا برای شما:",
"fi": u"Säätiedotus:",
"fr": u"Prévisions météo pour:",
"fy": u"Waarberjocht foar:",
@ -715,11 +745,14 @@ CAPTION = {
"uk": u"Прогноз погоди для:",
"uz": u"Ob-havo bashorati:",
"vi": u"Báo cáo thời tiết:",
"zh": u"氣預報",
"zh": u"气预报",
"zu": u"Isimo sezulu:",
"zh-tw": u"天氣報告:",
}
def get_message(message_name, lang):
if lang == 'zh-cn':
lang = 'zh'
if message_name not in MESSAGE:
return ''
message_dict = MESSAGE[message_name]

70
lib/translations_v2.py Normal file
View file

@ -0,0 +1,70 @@
# vim: fileencoding=utf-8
"""
Translation of v2
"""
# pylint: disable=line-too-long,bad-whitespace
V2_TRANSLATION = {
"en": ("Weather report for:", "Weather", "Timezone", "Now", "Dawn", "Sunrise", "Zenith", "Sunset", "Dusk"),
"af": ("Weer verslag vir:", "", "", "", "", "", "", "", ""),
"ar": ("تقرير حالة ألطقس", "", "", "", "", "", "", "", ""),
"az": ("Hava proqnozu:", "", "", "", "", "", "", "", ""),
"be": ("Прагноз надвор'я для:", "", "", "", "", "", "", "", ""),
"bg": ("Прогноза за времето в:", "", "", "", "", "", "", "", ""),
"bs": ("Vremenske prognoze za:", "", "", "", "", "", "", "", ""),
"ca": ("Informe del temps per a:", "", "", "", "", "", "", "", ""),
"cs": ("Předpověď počasí pro:", "", "", "", "", "", "", "", ""),
"cy": ("Adroddiad tywydd ar gyfer:", "", "", "", "", "", "", "", ""),
"da": ("Vejret i:", "", "", "", "", "", "", "", ""),
"de": ("Wetterbericht für:", "Wetter", "Zeitzone", "Jetzt", "Morgendämmerung", "Sonnenaufgang","Zenit", "Sonnenuntergang", "Abenddämmerung"),
"el": ("Πρόγνωση καιρού για:", "", "", "", "", "", "", "", ""),
"eo": ("Veterprognozo por:", "Vetero", "Horzono", "Nun", "Tagiĝo", "Sunleviĝo", "Zenito", "Sunsubiro", "Krepusko"),
"es": ("El tiempo en:", "", "", "", "", "", "", "", ""),
"et": ("Ilmaprognoos:", "", "", "", "", "", "", "", ""),
"fa": ("اوه و بآ تیعضو شرازگ", "", "", "", "", "", "", "", ""),
"fi": ("Säätiedotus:", "", "", "", "", "", "", "", ""),
"fr": ("Prévisions météo pour:", "", "", "", "", "", "", "", ""),
"fy": ("Waarberjocht foar:", "", "", "", "", "", "", "", ""),
"ga": ("Réamhaisnéis na haimsire do:", "", "", "", "", "", "", "", ""),
"he": (":ריוואה גזמ תיזחת", "", "", "", "", "", "", "", ""),
"hr": ("Vremenska prognoza za:", "", "", "", "", "", "", "", ""),
"hu": ("Időjárás előrejelzés:", "", "", "", "", "", "", "", ""),
"hy": ("Եղանակի տեսություն:", "", "", "", "", "", "", "", ""),
"id": ("Prakiraan cuaca:", "", "", "", "", "", "", "", ""),
"it": ("Previsioni meteo:", "", "", "", "", "", "", "", ""),
"is": ("Veðurskýrsla fyrir:", "", "", "", "", "", "", "", ""),
"ja": ("天気予報:", "天気", "タイムゾーン", "", "夜明け", "日の出", "天頂", "日の入", "日暮れ"),
"jv": ("Weather forecast for:", "", "", "", "", "", "", "", ""),
"ka": ("ამინდის პროგნოზი:", "", "", "", "", "", "", "", ""),
"kk": ("Ауа райы:", "", "", "", "", "", "", "", ""),
"ko": ("일기 예보:", "", "", "", "", "", "", "", ""),
"ky": ("Аба ырайы:", "", "", "", "", "", "", "", ""),
"lt": ("Orų prognozė:", "", "", "", "", "", "", "", ""),
"lv": ("Laika ziņas:", "", "", "", "", "", "", "", ""),
"mk": ("Прогноза за времето во:", "", "", "", "", "", "", "", ""),
"ml": ("കാലാവസ്ഥ റിപ്പോർട്ട്:", "", "", "", "", "", "", "", ""),
"nb": ("Værmelding for:", "", "", "", "", "", "", "", ""),
"nl": ("Weerbericht voor:", "Weer", "Tijdzone", "Nu", "Dageraad", "Zonsopkomst", "Zenit", "Zonsondergang", "Schemering"),
"nn": ("Vêrmelding for:", "", "", "", "", "", "", "", ""),
"pl": ("Pogoda w:", "", "", "", "", "", "", "", ""),
"pt": ("Previsão do tempo para:", "Tempo", "Fuso horário", "Agora", "Alvorada", "Nascer do sol", "Zénite", "Pôr do sol", "Crepúsculo"),
"pt-br": ("Previsão do tempo para:", "Tempo", "Fuso horário", "Agora", "Alvorada", "Nascer do sol", "Zénite", "Pôr do sol", "Crepúsculo"),
"ro": ("Prognoza meteo pentru:", "", "", "", "", "", "", "", ""),
"ru": ("Прогноз погоды:", "Погода", "Часовой пояс", "Сейчас", "Рассвет", "Восход", "Зенит", "Закат", "Сумерки"),
"sk": ("Predpoveď počasia pre:", "", "", "", "", "", "", "", ""),
"sl": ("Vremenska napoved za", "", "", "", "", "", "", "", ""),
"sr": ("Временска прогноза за:", "", "", "", "", "", "", "", ""),
"sr-lat": ("Vremenska prognoza za:", "", "", "", "", "", "", "", ""),
"sv": ("Väderleksprognos för:", "", "", "", "", "", "", "", ""),
"sw": ("Ripoti ya hali ya hewa, jiji la:", "", "", "", "", "", "", "", ""),
"te": ("వాతావరణ సమాచారము:", "", "", "", "", "", "", "", ""),
"th": ("รายงานสภาพอากาศ:", "", "", "", "", "", "", "", ""),
"tr": ("Hava beklentisi:", "", "", "", "", "", "", "", ""),
"uk": ("Прогноз погоди для:", "Погода", "Часовий пояс", "Зараз", "Світанок", "Схід сонця", "Зеніт", "Захід сонця", "Сутінки"),
"uz": ("Ob-havo bashorati:", "", "", "", "", "", "", "", ""),
"vi": ("Báo cáo thời tiết:", "", "", "", "", "", "", "", ""),
"zh": ("天气预报:", "天气", "时区", "当前", "黎明", "日出", "正午", "日落", "黄昏"),
"zh-tw": ("天氣預報:", "天氣", "時區", "目前", "黎明", "日出", "日正當中", "日落", "黃昏"),
"zu": ("Isimo sezulu:", "", "", "", "", "", "", "", ""),
}

View file

@ -101,6 +101,16 @@ def render_precipitation(data, query):
answer += 'mm'
return answer
def render_precipitation_chance(data, query):
"""
precipitation chance (o)
"""
answer = data.get('chanceofrain', '')
if answer:
answer += '%'
return answer
def render_pressure(data, query):
"""
pressure (P)
@ -189,6 +199,7 @@ FORMAT_SYMBOL = {
'M': render_moonday,
's': render_sunset,
'p': render_precipitation,
'o': render_precipitation_chance,
'P': render_pressure,
}

View file

@ -301,14 +301,14 @@ def wttr(location, request):
return _wrap_response(output, html_output)
except RuntimeError as exception:
if 'Malformed response' in str(exception) \
or 'API key has reached calls per day allowed limit' in str(exception):
except Exception as exception:
# if 'Malformed response' in str(exception) \
# or 'API key has reached calls per day allowed limit' in str(exception):
if html_output:
return _wrap_response(MALFORMED_RESPONSE_HTML_PAGE, html_output)
return _wrap_response(get_message('CAPACITY_LIMIT_REACHED', lang).encode('utf-8'), html_output)
logging.error("Exception has occured", exc_info=1)
return "ERROR"
# logging.error("Exception has occured", exc_info=1)
# return "ERROR"
if __name__ == "__main__":
import doctest

View file

@ -4,53 +4,58 @@ wttr.in is translated in NUMBER_OF_LANGUAGES languages:
Translated/improved/corrected by:
* Afrikaans: Casper Labuschage @casperl (on github)
* Armenian: Aram Bayadyan @aramix, Mikayel Ghazaryan @mkdotam, Grigor Khachatryan @grigortw
* Azerbaijani: Dmytro Nikitiuk, Elsevar Abbasov
* Belarusian: Igor Chubin, Anton Zhavoronkov @edogby (on github)
* Bosnian: Ismar Kunc @ismarkunc
* Bulgarian: Vladimir Vitkov @zeridon (on github)
* Brazilian-PT: Tupã Negreiros @TupaNegreiros (on github)
* Catalan: Angel Jarabo @legna29A
* Croatian: Siniša Kusić @ku5ic
* Czech: Juraj Kakody
* Danish: Kim Schulz @kimusan (on github)
* Dutch: Youri Claes
* Frisian: Anne Douwe Bouma @anned20 (on github)
* Esperanto: Igor Chubin
* Estonian: Jaan Jänesmäe @janesmae (on github)
* Finnish: @Maxifi
* French: Igor Chubin, @daftaupe
* German: Igor Chubin, @MAGICC (https://kthx.at)
* Greek: Panayotis Vryonis and @Petewg (on github)
* Hebrew: E.R.
* Hungarian: Mark Petruska
* Italian: Diego Maniacco
* Icelandic: Óli G. @dvergur, Skúli Arnlaugsson @Arnlaugsson
* Indonesian: Andria Arisal @andria009
* Japanese: @ryunix
* Kazakh: Akku Tutkusheva, Oleg Tropinin
* Korean: Jeremy Bae @opt9, Jung Winter @res_tin
* Latvian: Gunārs Danovskis
* Macedonian: Matej Plavevski @MatejMecka
* Norwegian: Fredrik Fjeld @fredrikfjeld
* Nynorsk: Kevin Brubeck Unhammer (https://unhammer.org/k/)
* Persian: Javad @threadripper_
* Polish: Wojtek Łukasiewicz @wojtuch (on github)
* Portuguese: Fernando Bitti Loureiro @fbitti (on github)
* Romanian: Gabriel Moruz
* Russian: Igor Chubin
* Spanish: Fernando Bitti Loureiro @fbitti (on github)
* Slovak: Juraj Kakody
* Slovenian: B.S.
* Swedish: John Eriksson
* Serbian: Milan Stevanović @FathVader
* Swahili: Joel Mukuthu
* Turkish: Atabey Kaygun, Yilmaz @edigu, Volkan Tokmak(@volkanto)
* Ukrainian: Igor Chubin, Serhiy @pavse
* Uzbek: Shukhrat Mukimov
* Welsh: Daniel Thomas
* Vietnamese: Lưu Vĩnh Phúc @phuclv90 (on github)
* Afrikaans: Casper Labuschage @casperl (on github)
* Armenian: Aram Bayadyan @aramix, Mikayel Ghazaryan @mkdotam,
Grigor Khachatryan @grigortw
* Azerbaijani: Dmytro Nikitiuk, Elsevar Abbasov
* Belarusian: Igor Chubin, Anton Zhavoronkov @edogby (on github)
* Bosnian: Ismar Kunc @ismarkunc
* Bulgarian: Vladimir Vitkov @zeridon (on github)
* Brazilian-PT: Tupã Negreiros @TupaNegreiros (on github)
* Catalan: Angel Jarabo @legna29A
* Chinese(Traditional): Jeff Huang
* Chinese(Simplified): YouthLin Chen(@YouthLin on github), Junhan (@junhan-z on github),
Felix Wong (@gnowxilef on github)
* Croatian: Siniša Kusić @ku5ic
* Czech: Juraj Kakody
* Danish: Kim Schulz @kimusan (on github)
* Dutch: Youri Claes
* Esperanto: Igor Chubin
* Estonian: Jaan Jänesmäe @janesmae (on github)
* Finnish: @Maxifi
* French: Igor Chubin, @daftaupe, @iago-lito
* Frisian: Anne Douwe Bouma @anned20 (on github)
* German: Igor Chubin, @MAGICC (https://kthx.at)
* Greek: Panayotis Vryonis and @Petewg (on github)
* Hebrew: E.R.
* Hungarian: Mark Petruska
* Icelandic: Óli G. @dvergur, Skúli Arnlaugsson @Arnlaugsson
* Indonesian: Andria Arisal @andria009
* Italian: Diego Maniacco
* Japanese: @ryunix
* Kazakh: Akku Tutkusheva, Oleg Tropinin
* Korean: Jeremy Bae @opt9, Jung Winter @res_tin
* Latvian: Gunārs Danovskis
* Macedonian: Matej Plavevski @MatejMecka
* Norwegian: Fredrik Fjeld @fredrikfjeld
* Nynorsk: Kevin Brubeck Unhammer (https://unhammer.org/k/)
* Persian: Javad @threadripper_
* Polish: Wojtek Łukasiewicz @wojtuch (on github)
* Portuguese: Fernando Bitti Loureiro @fbitti (on github)
* Romanian: Gabriel Moruz
* Russian: Igor Chubin
* Serbian: Milan Stevanović @FathVader
* Slovak: Juraj Kakody
* Slovenian: B.S.
* Spanish: Fernando Bitti Loureiro @fbitti (on github)
* Swedish: John Eriksson
* Swahili: Joel Mukuthu
* Turkish: Atabey Kaygun, Yilmaz @edigu, Volkan Tokmak(@volkanto)
* Thai: Vatunyoo Suwannapisit @kerlos
* Ukrainian: Igor Chubin, Serhiy @pavse
* Uzbek: Shukhrat Mukimov
* Vietnamese: Lưu Vĩnh Phúc @phuclv90 (on github)
* Welsh: Daniel Thomas
and many many others.

View file

@ -0,0 +1,69 @@
Выкарыстанне:
$ curl wttr.in # надвор'е ў вашым месцы
$ curl wttr.in/msq # надвор'е ў аэрапорце Мінск
Магчымыя тыпы месцазнаходжання:
/novaja-mysz # населены пункт
/~dipgorodok # якое-небудзь месца
/жабінка # назва якога-небудзь месца юнікодам на нейкай мове
/gme # трохлітарны код аэрапорта
/@osm.by # даменнае імя
/220121 # паштовы індэкс
/53.953994,27.537774 # каардынаты GPS
Адмысловыя месцазнаходжанні:
/moon # Фаза месяца (дадайце ,+US або ,+France для горада Moon у ЗША або ў Францыі)
/moon@2016-10-25 # Фаза Месяца для гэтай даты (@2016-10-25)
Адзінкі вымярэння:
m # метрычная (СІ) (звычайна ўжываецца паўсюль акрамя ЗША)
u # USCS (ўжываецца ў ЗША)
M # паказваць хуткасць ветру ў м/с
Опцыі прагляду:
0 # толькі надвор'е цяпер
1 # надвор'е цяпер + 1 дзень
2 # надвор'е цяпер + 2 дні
A # не зважаць на User-Agent і мусова ўжываць фармат вываду ANSI (як у тэрмінале)
F # не паказваць радок "Сачыце за навінамі"
n # вузкая версія (толькі дзень і ноч)
q # ціхая версія (без тэксту "Прагноз надвор'я для")
Q # надта ціхая версія (без "Прагноз надвор'я для", без назвы месца)
T # выключыць паслядоўнасці тэрміналу (без колераў)
Опцыі PNG:
/szklow.png # выдаць файл PNG
p # дадаць рамку вакол
t # празрыстасць 150
transparency=... # празрыстасць ад 0 да 255 (255 = непразрыста)
Опцыі можна спалучаць:
/iuje?pq
/dzvinsk?0pq&lang=be
/bielastok_0pq.png # для PNG опцыі падаюцца пасля знаку _
/turau_0pq_lang=be.png # доўгія опцыі адасабляюцца знакам _
Лакалізацыя:
$ curl be.wttr.in/Minsk
$ curl wttr.in/minsk?lang=be
$ curl -H "Accept-Language: be" wttr.in/minsk
Даступныя мовы:
FULL_TRANSLATION (падтрымліваюцца)
PARTIAL_TRANSLATION (не цалкам)
Адмысловыя адрасы:
/:help # паказаць гэтую старонку
/:bash.function # паказаць рэкамендаваную функцыю bash wttr()
/:translation # паказаць спіс перакладаў

View file

@ -7,24 +7,24 @@
176: Месцамі дождж : Patchy rain possible :
179: Месцамі снег : Patchy snow possible :
182: Месцамі дождж са снегам : Patchy sleet possible :
185: Месцамі студзёная імжа : Patchy freezing drizzle possible :
185: Месцамі сцюдзёная імжа : Patchy freezing drizzle possible :
200: Месцамі навальніцы : Thundery outbreaks possible :
227: Нізавая завіруха : Blowing snow :
230: Мяцеліца : Blizzard :
248: Туман : Fog :
260: Студзёны туман : Freezing fog :
260: Сцюдзёны туман : Freezing fog :
263: Месцамі невялікая імжа : Patchy light drizzle :
266: Невялікая імжа : Light drizzle :
281: Студзёная імжа : Freezing drizzle :
284: Моцная студзёная імжа : Heavy freezing drizzle :
281: Сцюдзёная імжа : Freezing drizzle :
284: Моцная сцюдзёная імжа : Heavy freezing drizzle :
293: Месцамі невялікі дождж : Patchy light rain :
296: Невялікі дождж : Light rain :
299: Часам умераны дождж : Moderate rain at times :
302: Умераны дождж : Moderate rain :
305: Часам моцны дождж : Heavy rain at times :
308: Моцны дождж : Heavy rain :
311: Невялікі студзёны дождж : Light freezing rain :
314: Умераны ці моцны студзёны дождж : Moderate or heavy freezing rain :
311: Невялікі сцюдзёны дождж : Light freezing rain :
314: Умераны ці моцны сцюдзёны дождж : Moderate or heavy freezing rain :
317: Невялікі дождж са снегам : Light sleet :
320: Умераны ці моцны дождж са снегам : Moderate or heavy sleet :
323: Месцамі невялікі снег : Patchy light snow :

View file

@ -0,0 +1,66 @@
Instruccions:
$ curl wttr.in # el clima de la ubicació actual
$ curl wttr.in/muc # el clima de l'aeroport de Múnich
Tipus d'ubicacions suportades:
/paris # el nom d'una ciutat
/~Eiffel+tower # el nom de qualsevol lloc famós
/Москва # el nom Unicode de qualsevol lloc en qualsevol idioma
/muc # el codi d'un aeroport (3 lletres)
/@stackoverflow.com # el nom d'un domini web
/94107 # un codi d'àrea
/-78.46,106.79 # coordenades de GPS
Llocs especials:
/moon # la fase de la lluna (afegeix ,+US o ,+France per a aquests països)
/moon@2016-10-25 # la fase de la lluna en una data especfica (@2016-10-25)
Unitats:
?m # mètriques (SI) (l'estàndard a tots els llocs excepte als EEUU)
?u # Sistema Unificat de Classificació del Sòl o USCS (l'estàndard als EEUU)
?M # mostrar la velocitat del vent en m/s
Opcions de visualització:
?0 # noms el clima actual
?1 # el clima actual + la previsió d'1 dia
?2 # el clima actual + la previsió de 2 dies
?n # versió curta (només el dia i la nit)
?q # versió silenciosa (sense el text de "El temps a")
?Q # versió supersilenciosa (ni "El temps a" ni el nom de la ciutat)
?T # desactiva les seqüències del terminal (sense colors)
Opcions de PNG:
/paris.png # genera una imatge PNG
?p # afegeix una vora al voltant de la imatge
?t # transparència 150
transparency=... # transparència de 0 a 255 (255 = sense transparència)
Les opcions es poden utilitzar conjuntament:
/Paris?0pq
/Paris?0pq&lang=fr
/Paris_0pq.png # amb PNG les opcions s'especifiquen després del caràcter _
/Rome_0pq_lang=it.png # una llarga seqüència d'opcions es poden separar amb el caràcter _
Ubicació:
$ curl fr.wttr.in/Paris
$ curl wttr.in/paris?lang=fr
$ curl -H "Accept-Language: fr" wttr.in/paris
Idiomes suportats:
FULL_TRANSLATION (soportados)
PARTIAL_TRANSLATION (en progreso)
URLs especials:
/:help # mostra aquesta pàgina
/:bash.function # suggereix una funció wttr() en bash
/:translation # mostra informació sobre els traductors

50
share/translations/fr.txt Normal file
View file

@ -0,0 +1,50 @@
: Pluie : Rain
: Pluie légère, Averses : Light Rain, Rain Shower
: Averses : Rain Shower
113 : Temps clair : Clear
113 : Ensoleillé : Sunny
116 : Partiellement couvert : Partly cloudy
119 : Nuageux : Cloudy
122 : Couvert : Overcast
143 : Brumeux : Mist
176 : Pluies éparses possibles : Patchy rain possible
179 : Chutes de neige éparses possibles : Patchy snow possible
182 : Chutes éparses de neige fondue possibles : Patchy sleet possible
185 : Bruines givrantes éparses possibles : Patchy freezing drizzle possible
200 : Orages possibles : Thundery outbreaks possible
227 : Poudrerie : Blowing snow
230 : Blizzard : Blizzard
248 : Brouillard : Fog
260 : Brouillard givrant : Freezing fog
263 : Bruines éparses et légères : Patchy light drizzle
266 : Bruine légère : Light drizzle
281 : Bruine givrante : Freezing drizzle
284 : Forte bruine givrante : Heavy freezing drizzle
293 : Pluies éparses et légères : Patchy light rain
296 : Pluie légère : Light rain
299 : Pluie modérée intermittente : Moderate rain at times
302 : Pluie modérée : Moderate rain
305 : Forte pluie intermittente : Heavy rain at times
308 : Forte pluie : Heavy rain
311 : Pluie verglaçante légère : Light freezing rain
314 : Pluie verglaçante modérée à forte : Moderate or heavy freezing rain
317 : Chutes légères de neige fondue : Light sleet
320 : Chutes de neige fondue modérées à fortes : Moderate or heavy sleet
323 : Chutes de neige éparses et légères : Patchy light snow
326 : Chutes de neige légères : Light snow
329 : Chutes de neige éparses et modérées : Patchy moderate snow
332 : Chutes de neige modérées : Moderate snow
335 : Fortes chutes de neige éparses : Patchy heavy snow
338 : Fortes chutes de neige : Heavy snow
350 : Grésil : Ice pellets
353 : Averses légères : Light rain shower
356 : Averses modérées à fortes : Moderate or heavy rain shower
359 : Averses torrentielles : Torrential rain shower
362 : Averses légères de neige fondue : Light sleet showers
365 : Averses de neige fondue modérées à fortes : Moderate or heavy sleet showers
368 : Averses de neige légères : Light snow showers
371 : Averses de neige modérées à fortes : Moderate or heavy snow showers
386 : Pluies orageuses légères et éparses : Patchy light rain with thunder
389 : Pluies orageuses modérées à fortes : Moderate or heavy rain with thunder
392 : Chutes de neige orageuses légères et éparses : Patchy light snow with thunder
395 : Chutes de neige orageuses modérées à fortes : Moderate or heavy snow with thunder

View file

@ -0,0 +1,69 @@
วิธีใช้:
$ curl wttr.in # ตำแหน่งปัจจุบัน
$ curl wttr.in/muc # สภาพอากาศที่สนามบินมิวนิค
รองรับสถานที่หลายรูปแบบ:
/paris # ชื่อเมือง
/~Eiffel+tower # สถานที่ใดก็ได้
/Москва # ชื่อ Unicode ของสถานที่และภาษาใดก็ได้
/muc # รหัสสนามบิน (3 ตัวอักษร)
/@stackoverflow.com # โดเมนเนม
/94107 # รหัสพื้นที่
/-78.46,106.79 # ตำแหน่ง GPS
สถานที่พิเศษ:
/moon # จันทรคติ (เพิ่ม ,+US หรือ ,+France สำหรับเมือง)
/moon@2016-10-25 # จันทรคติ สำหรับวันที่ (@2016-10-25)
หน่วย:
m # เมตริก (SI) (ใช้กับทุกที่ยกเว้นประเทศอเมริกา)
u # USCS (ใช้ในประเทศอเมริกา)
M # แสดงความเร็วลม เมตร/วินาที
ดูตัวเลือก:
0 # เฉพาะสภาพอากาศปัจจุบัน
1 # สภาพอากาศของวันพรุ่งนี้
2 # สภาพอากาศของวันมะรืน
A # ไม่สนใจ User-Agent และบังคับใช้ฟอร์แมต ANSI (terminal)
F # ไม่แสดงบรรทัดติดตาม
n # แสดงผลแบบแคบ (เฉพาะตอนเช้าและค่ำ)
q # แสดงผลแบบเงียบ (ไม่แสดงรายงานสภาพอากาศ)
Q # แสดงผลแบบเงียบที่สุด (ไม่แสดงรายงานสภาพอากาศและชื่อเมือง)
T # ปิดการทำงาน terminal sequences (ไม่มีสี)
ตัวเลือก PNG:
/paris.png # สร้างไฟล์ PNG
p # เพิ่มกรอบรอบๆไฟล์ที่สร้าง
t # โปร่งใส 150
transparency=... # โปร่งใส จาก 0 ถึง 255 (255 = ไม่โปร่งใส)
ตัวเลือกสามารถรวมกันได้:
/Paris?0pq
/Paris?0pq&lang=fr
/Paris_0pq.png # สำหรับการสร้าง PNG ให้เพิ่มตัวเลือกต่อท้าย _
/Rome_0pq_lang=it.png # ตัวเลือกหลายตัวให้ต่อด้วย _
ตัวเลือกภาษา:
$ curl fr.wttr.in/Paris
$ curl wttr.in/paris?lang=fr
$ curl -H "Accept-Language: fr" wttr.in/paris
ภาษาที่รองรับ:
FULL_TRANSLATION (รองรับ)
PARTIAL_TRANSLATION (อยู่ระหว่างการแปล)
URL พิเศษ:
/:help # แสดงหน้านี้
/:bash.function # แสดงคำแนะนำ bash function wttr()
/:translation # แสดงข้อมูลของผู้ร่วมแปล

81
share/translations/th.txt Normal file
View file

@ -0,0 +1,81 @@
113: ฟ้าโปร่ง : Clear :
113: แดดจัด : Sunny :
116: มีเมฆบางส่วน : Partly cloudy :
119: มีเมฆมาก : Cloudy :
122: มืดครึ้ม : Overcast :
143: มีหมอก : Mist :
176: มีโอกาสฝนตกเป็นหย่อม ๆ : Patchy rain possible :
179: มีโอกาสหิมะตกเป็นหย่อม ๆ : Patchy snow possible :
182: มีโอกาสลูกเห็บตกเป็นหย่อม ๆ : Patchy sleet possible :
185: มีโอกาสละอองฝนเยือกแข็งตกเป็นหย่อม ๆ : Patchy freezing drizzle possible :
200: มีโอกาสฟ้าผ่า : Thundery outbreaks possible :
227: หิมะพัดผ่าน : Blowing snow :
230: พายุหิมะ : Blizzard :
248: หมอก : Fog :
260: หมอกเยือกแข็ง : Freezing fog :
263: ละอองฝนเป็นหย่อม ๆ : Patchy light drizzle :
266: ฝนพรำ : Light drizzle :
281: ละอองฝนเยือกแข็ง : Freezing drizzle :
284: ละอองฝนเยือกแข็งอย่างหนัก : Heavy freezing drizzle :
293: ฝนตกเบาบางเป็นหย่อม ๆ : Patchy light rain :
296: ฝนตกเล็กน้อย : Light rain :
299: ฝนตกปานกลางในช่วงเวลานั้น : Moderate rain at times :
302: ฝนตกปานกลาง : Moderate rain :
305: ฝนตกหนักในช่วงเวลานั้น : Heavy rain at times :
308: ฝนตกหนัก : Heavy rain :
311: ฝนเยือกแข็งเบาบาง : Light freezing rain :
314: ฝนเยือกแข็งปานกลางหรือหนัก : Moderate or heavy freezing rain :
317: ลูกเห็บเบาบาง : Light sleet :
320: ลูกเห็บปานกลางหรือหนัก : Moderate or heavy sleet :
323: หิมะตกโปรยปรายเป็นหย่อม ๆ : Patchy light snow :
326: หิมะตกเบาบาง : Light snow :
329: หิมะตกปานกลางเป็นหย่อม ๆ : Patchy moderate snow :
332: หิมะตกปานกลาง : Moderate snow :
335: หิมะตกหนักเป็นหย่อม ๆ : Patchy heavy snow :
338: หิมะตกหนัก : Heavy snow :
350: มีเกล็ดน้ำแข็ง : Ice pellets :
353: ฝนตกโปรยปราย : Light rain shower :
356: ฝนตกปานกลางหรือหนัก : Moderate or heavy rain shower :
359: ฝนตกชุก : Torrential rain shower :
362: ลูกเห็บตกเบาบาง : Light sleet showers :
365: ลูกเห็บตกปานกลางหรือหนัก : Moderate or heavy sleet showers :
368: หิมะตกโปรยปราย : Light snow showers :
371: หิมะตกปานกลางหรือหนัก : Moderate or heavy snow showers :
386: ฝนตกและมีฟ้าผ่าเป็นหย่อม ๆ : Patchy light rain with thunder :
389: ฝนตกและมีฟ้าผ่าปานกลางหรือหนัก : Moderate or heavy rain with thunder :
392: หิมะตกและมีฟ้าผ่าเป็นหย่อม ๆ : Patchy light snow with thunder :
395: หิมะตกและมีฟ้าผ่าปานกลางหรือหนัก : Moderate or heavy snow with thunder :

View file

@ -0,0 +1,69 @@
用法:
$ curl wttr.in # 当前位置
$ curl wttr.in/pek # 机场三字码
支持的位置类型:
/paris # 城市名称
/~Eiffel+tower # 任意地点
/北京 # 任意语言的任意地点
/PEK # 机场三字码
/@stackoverflow.com # 域名
/94107 # 区域代码
/-78.46,106.79 # GPS 坐标
特殊位置:
/moon # 月相(加上 ,+US 或 ,+France 以察看特定城市的月相)
/moon@2016-10-25 # 特定日期的月相(@2016-10-25
单位:
m # 公制(国际单位制)(除美国外该单位制为默认值)
u # USCS美国默认单位制
M # 以米/秒为单位显示风速
查看选项:
0 # 仅当前天气
1 # 当前天气 + 未来 1 天
2 # 当前天气 + 未来 2 天
A # 忽略代理(User-Agent)并强制使用 ANSI 输出格式(终端模式)
F # 不显示「关注」(Follow)那行
n # 较窄模式(仅日夜)
q # 简练模式(无「天气预报」文字)
Q # 极简模式(无「天气预报」、无城市名称)
T # 关闭终端转义序列(无颜色)
PNG 选项:
/paris.png # 生成 PNG 文件
p # 在输出图像周围增加缩进空白
t # 透明度 150
transparency=... # 透明度从 0 到 255255 = 不透明)
可合并使用的选项
/Paris?0pq
/Paris?0pq&lang=fr
/Paris_0pq.png # PNG 文件模式中在下划线 _ 后指定选项
/Rome_0pq_lang=it.png # 用下划线分隔长选项
本地化:
$ curl fr.wttr.in/Paris
$ curl wttr.in/paris?lang=fr
$ curl -H "Accept-Language: fr" wttr.in/paris
支持的语言:
FULL_TRANSLATION (supported)
PARTIAL_TRANSLATION (in progress)
特殊 URL
/:help # 显示此页面
/:bash.function # 显示建议的 bash 函数 wttr()
/:translation # 显示翻译者信息

View file

@ -0,0 +1,81 @@
113:晴 : Clear
113:晴 : Sunny
116:少云 : Partly cloudy
119:多云 : Cloudy
122:阴 : Overcast
143:轻雾 : Mist
176:可能下小雨 : Patchy rain possible
179:可能下小雪 : Patchy snow possible
182:可能有雨夹雪 : Patchy sleet possible
185:可能有冻毛毛雨 : Patchy freezing drizzle possible
200:可能打雷 : Thundery outbreaks possible
227:小雪 : Blowing snow
230:暴雪 : Blizzard
248:雾 : Fog
260:冻雾 : Freezing fog
263:局部毛毛雨 : Patchy light drizzle
266:毛毛雨 : Light drizzle
281:冻毛毛雨 : Freezing drizzle
284:大冻毛毛雨 : Heavy freezing drizzle
293:局部小雨 : Patchy light rain
296:小雨 : Light rain
299:有时中雨 : Moderate rain at times
302:中雨 : Moderate rain
305:有时大雨 : Heavy rain at times
308:大雨 : Heavy rain
311:小冻雨 : Light freezing rain
314:中或大冻雨 : Moderate or heavy freezing rain
317:小雨夹雪 : Light sleet
320:中或大雨夹雪 : Moderate or heavy sleet
323:局部小雪 : Patchy light snow
326:小雪 : Light snow
329:局部中雪 : Patchy moderate snow
332:中雪 : Moderate snow
335:局部大雪 : Patchy heavy snow
338:大雪 : Heavy snow
350:冰珠 : Ice pellets
353:小阵雨 : Light rain shower
356:中或大阵雨 : Moderate or heavy rain shower
359:暴阵雨 : Torrential rain shower
362:小阵雨夹雪 : Light sleet showers
365:中或大阵雨夹雪 : Moderate or heavy sleet showers
368:小阵雪 : Light snow showers
371:中或大阵雪 : Moderate or heavy snow showers
386:局部小雷阵雨 : Patchy light rain with thunder
389:中或大雷阵雨 : Moderate or heavy rain with thunder
392:小雷阵雪 : Patchy light snow with thunder
395:中或大雷阵雪 : Moderate or heavy snow with thunder

View file

@ -0,0 +1,69 @@
使用方法
$ curl wttr.in # 目前位置
$ curl wttr.in/muc # 慕尼黑機場的天氣
支援的位置類型:
/paris # 城市名稱
/~Eiffel+tower # 任意地點
/Москва # 任意地點在任何語言的 Unicode 名稱
/muc # 機場代碼3個字母
/@stackoverflow.com # 網域名稱
/94107 # 區域代碼
/-78.46,106.79 # GPS 座標
特殊位置:
/moon # 月相(加入 ,+US 或 ,+France 來觀看這些地方的月相)
/moon@2016-10-25 # 特定日期的月相 (@2016-10-25)
單位:
m # 公制(國際單位制)(除了美國以外的地方皆預設使用此單位置)
u # USCS美國預設使用
M # 以公尺/秒為單位顯示風速
檢視選項:
0 # 僅目前的天氣
1 # 目前的天氣+未來1天
2 # 目前的天氣+未來2天
A # 忽略使用者代理字串並強制使用 ANSI 輸出格式(終端機)
F # 不要顯示「追蹤」那行
n # 窄版(僅日夜)
q # 安靜版(無「天氣報告」文字)
Q # 超安靜版(無「天氣報告」、無城市名稱)
T # 關閉終端機序列(無色彩)
PNG 選項:
/paris.png # 生成 PNG 檔案
p # 在輸出周圍新增框架
t # 透明度 150
transparency=... # 透明度從 0 到 255255 = 不透明)
可合併使用的選項
/Paris?0pq
/Paris?0pq&lang=fr
/Paris_0pq.png # PNG 檔案模式於 _ 後指定
/Rome_0pq_lang=it.png # 以底線分隔長選項
在地化:
$ curl fr.wttr.in/Paris
$ curl wttr.in/paris?lang=fr
$ curl -H "Accept-Language: fr" wttr.in/paris
支援的語言:
FULL_TRANSLATION (supported)
PARTIAL_TRANSLATION (in progress)
特殊 URL
/:help # 顯示此頁面
/:bash.function # 顯示建議的 bash 函式 wttr()
/:translation # 顯示關於譯者的資訊

View file

@ -0,0 +1,81 @@
113: 晴朗 : Clear :
113: 陽光充足 : Sunny :
116: 部份有雲 : Partly cloudy :
119: 多雲 : Cloudy :
122: 陰天 : Overcast :
143: 薄霧 : Mist :
176: 可能下小雨 : Patchy rain possible :
179: 可能下小雪 : Patchy snow possible :
182: 可能有雨夾雪 : Patchy sleet possible :
185: 可能有凍毛毛雨 : Patchy freezing drizzle possible :
200: 可能打雷 : Thundery outbreaks possible :
227: 吹雪 : Blowing snow :
230: 雪暴 : Blizzard :
248: 霧 : Fog :
260: 凍霧 : Freezing fog :
263: 部份毛毛細雨 : Patchy light drizzle :
266: 毛毛細雨 : Light drizzle :
281: 凍毛毛雨 : Freezing drizzle :
284: 重凍毛毛雨 : Heavy freezing drizzle :
293: 部份小雨 : Patchy light rain :
296: 小雨 : Light rain :
299: 有時中雨 : Moderate rain at times :
302: 中雨 : Moderate rain :
305: 有時大雨 : Heavy rain at times :
308: 大雨 : Heavy rain :
311: 小凍雨 : Light freezing rain :
314: 中或大凍雨 : Moderate or heavy freezing rain :
317: 小雨夾雪 : Light sleet :
320: 中或大雨夾雪 : Moderate or heavy sleet :
323: 部份小雪 : Patchy light snow :
326: 小雪 : Light snow :
329: 部份中雪 : Patchy moderate snow :
332: 中雪 : Moderate snow :
335: 部份大雪 : Patchy heavy snow :
338: 大雪 : Heavy snow :
350: 冰珠 : Ice pellets :
353: 小陣雨 : Light rain shower :
356: 中或大陣雨 : Moderate or heavy rain shower :
359: 豪陣雨 : Torrential rain shower :
362: 小陣雨夾雪 : Light sleet showers :
365: 中或大陣雨夾雪 : Moderate or heavy sleet showers :
368: 小陣雪 : Light snow showers :
371: 中或大陣雪 : Moderate or heavy snow showers :
386: 部份小雷雨 : Patchy light rain with thunder :
389: 中或大雷雨 : Moderate or heavy rain with thunder :
392: 可能會打雷的小陣雪 : Patchy light snow with thunder :
395: 可能會打雷的中或大陣雪 : Moderate or heavy snow with thunder :