Last active
November 15, 2019 03:59
-
-
Save 44uk/10e4f394478d6b9870bb7fb47c41f8e6 to your computer and use it in GitHub Desktop.
openweathermap description languages mapping
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
scattered clouds: | |
en: scattered clouds | |
ja: 雲 | |
few clouds: | |
en: few clouds | |
ja: 薄い雲 | |
clear sky: | |
en: clear sky | |
ja: 晴天 | |
moderate rain: | |
en: moderate rain | |
ja: 小雨 | |
overcast clouds: | |
en: overcast clouds | |
ja: 厚い雲 | |
shower rain: | |
en: shower rain | |
ja: にわか雨 | |
haze: | |
en: haze | |
ja: 薄霧 | |
mist: | |
en: mist | |
ja: 霧 | |
broken clouds: | |
en: broken clouds | |
ja: 曇りがち | |
light rain: | |
en: light rain | |
ja: 小雨 | |
light shower snow: | |
en: light shower snow | |
ja: 弱いにわか雪 | |
shower sleet: | |
en: shower sleet | |
ja: にわかみぞれ | |
light intensity shower rain: | |
en: light intensity shower rain | |
ja: 弱いにわか雨 | |
volcanic ash: | |
en: volcanic ash | |
ja: 火山灰 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- replace example | |
UPDATE | |
forecasts | |
SET | |
[desc] = replace( | |
[desc], | |
forecasts.[desc], | |
CASE forecasts.[desc] | |
WHEN '雲' THEN 'scattered clouds' | |
WHEN '薄い雲' THEN 'few clouds' | |
WHEN '晴天' THEN 'clear sky' | |
WHEN '小雨' THEN 'light rain' | |
WHEN '厚い雲' THEN 'overcast clouds' | |
WHEN 'にわか雨' THEN 'shower rain' | |
WHEN '薄霧' THEN 'haze' | |
WHEN '霧' THEN 'mist' | |
WHEN '曇りがち' THEN 'broken clouds' | |
WHEN '小雨' THEN 'light rain' | |
WHEN '弱いにわか雪' THEN 'light shower snow' | |
WHEN 'にわかみぞれ' THEN 'shower sleet' | |
WHEN '弱いにわか雨' THEN 'light intensity shower rain' | |
WHEN '火山灰' THEN 'volcanic ash' | |
WHEN '霧' THEN 'fog' | |
ELSE forecasts.[desc] | |
END | |
) | |
FROM | |
forecasts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "net/http" | |
require "json" | |
require "yaml" | |
API_KEY = ARGV.first | |
FILENAME = "_mapping.yml" | |
CITIES = [ | |
"Tokyo,JP", | |
"Sapporo,JP", | |
"Aomori,JP", | |
"Morioka,JP", | |
"Sendai,JP", | |
"Akita,JP", | |
"Yamagata,JP", | |
"Fukushima,JP", | |
"Mito,JP", | |
"Utsunomiya,JP", | |
"Maebashi,JP", | |
"Saitama,JP", | |
"Chiba,JP", | |
"Tokyo,JP", | |
"Yokohama,JP", | |
"Niigata,JP", | |
"Toyama,JP", | |
"Kanazawa,JP", | |
"Fukui,JP", | |
"Kofu,JP", | |
"Nagano,JP", | |
# "Gifu,JP", | |
"Shizuoka,JP", | |
"Nagoya,JP", | |
"Mie,JP", | |
"Otsu,JP", | |
"Kyoto,JP", | |
"Osaka,JP", | |
"Kobe,JP", | |
"Nara,JP", | |
"Wakayama,JP", | |
"Tottori,JP", | |
"Matsue,JP", | |
"Okayama,JP", | |
"Hiroshima,JP", | |
"Yamaguchi,JP", | |
"Tokushima,JP", | |
"Takamatsu,JP", | |
"Matsushima,JP", | |
# "Kouchi,JP", | |
"Fukuoka,JP", | |
"Saga,JP", | |
"Nagasaki,JP", | |
"Kumamoto,JP", | |
# "Oita,JP", | |
"Miyazaki,JP", | |
"Kagoshima,JP", | |
"Okinawa,JP", | |
# World Federation of Exchanges | |
"Shanghai,CN", | |
"Shanghai,CN", | |
"Hong Kong,CN", | |
"Shenzhen,CN", | |
"Paris,FR", | |
"Amsterdam,NL", | |
"Bruxelles,CA", | |
"Toronto,CA", | |
"Dublin,IE", | |
"Lisboa,PT", | |
"Milano,IT", | |
"Mumbai,IN", | |
"Frankfurt,DE", | |
"Zurich,CH", | |
"Seoul,KR", | |
"Stockholm,SE", | |
"Copenhagen,DK", | |
"Helsinki,FI", | |
"Reykjavik,IS", | |
"Tallinn,EE", | |
"Riga,LV", | |
"Vilnius,LT", | |
"Sydney,AU", | |
"Taipei,TW", | |
"Sao Paulo,BR", | |
"Johannesburg,ZA", | |
"Madrid,ES", | |
] | |
LANGS = [ | |
"en", # first must be English | |
"ja", | |
# add here langs if you want more | |
] | |
mapping = YAML.load_file("./#{FILENAME}") rescue {} | |
base_params = { units: "metric", APPID: API_KEY } | |
CITIES.each do |city| | |
en_description = nil | |
LANGS.each do |lang| | |
if mapping[en_description] && mapping[en_description]["#{lang}"] | |
break | |
end | |
params = URI.encode_www_form(base_params.merge(q: city, lang: lang)) | |
uri = URI.parse("http://api.openweathermap.org/data/2.5/weather?#{params}") | |
resp = Net::HTTP.get_response(uri) | |
result = JSON.parse(resp.body, symbolize_names: true) | |
if result[:cod] != 200 | |
raise "#{city}: #{result[:message]}" | |
end | |
result[:weather].map do |w| | |
if lang == "en" | |
en_description = w[:description] | |
else | |
raise "EN description is not found." unless en_description | |
end | |
mapping[en_description] = {} unless mapping[en_description] | |
mapping[en_description]["#{lang}"] = w[:description] | |
end | |
end | |
en_description = nil | |
end | |
YAML.dump(mapping, File.open("./#{FILENAME}", "w")) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment