nerd fonts: initial support of v2d/v2n view (#363)
This commit is contained in:
parent
c35af1d5ba
commit
228b93aad5
2 changed files with 34 additions and 11 deletions
|
|
@ -147,6 +147,9 @@ WEATHER_SYMBOL_WI_NIGHT = {
|
||||||
"VeryCloudy": "",
|
"VeryCloudy": "",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WEATHER_SYMBOL_WIDTH_VTE_WI = {
|
||||||
|
}
|
||||||
|
|
||||||
WIND_DIRECTION_WI = [
|
WIND_DIRECTION_WI = [
|
||||||
"", "", "", "", "", "", "", "",
|
"", "", "", "", "", "", "", "",
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -239,7 +239,7 @@ def draw_time(geo_data):
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
# draw_astronomical {{{
|
# draw_astronomical {{{
|
||||||
def draw_astronomical(city_name, geo_data):
|
def draw_astronomical(city_name, geo_data, config):
|
||||||
datetime_day_start = datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
|
datetime_day_start = datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
|
||||||
|
|
||||||
city = LocationInfo()
|
city = LocationInfo()
|
||||||
|
|
@ -289,12 +289,17 @@ def draw_astronomical(city_name, geo_data):
|
||||||
|
|
||||||
answer += char
|
answer += char
|
||||||
|
|
||||||
|
if config.get("view") in ["v2n", "v2d"]:
|
||||||
|
moon_phases = constants.MOON_PHASES_WI
|
||||||
|
else:
|
||||||
|
moon_phases = constants.MOON_PHASES
|
||||||
|
|
||||||
# moon
|
# moon
|
||||||
if time_interval in [0,23,47,69]: # time_interval % 3 == 0:
|
if time_interval in [0,23,47,69]: # time_interval % 3 == 0:
|
||||||
moon_phase = moon.phase(
|
moon_phase = moon.phase(
|
||||||
date=datetime_day_start + datetime.timedelta(hours=time_interval))
|
date=datetime_day_start + datetime.timedelta(hours=time_interval))
|
||||||
moon_phase_emoji = constants.MOON_PHASES[
|
moon_phase_emoji = moon_phases[
|
||||||
int(math.floor(moon_phase*1.0/28.0*8+0.5)) % len(constants.MOON_PHASES)]
|
int(math.floor(moon_phase*1.0/28.0*8+0.5)) % len(moon_phases)]
|
||||||
# if time_interval in [0, 24, 48, 69]:
|
# if time_interval in [0, 24, 48, 69]:
|
||||||
moon_line += moon_phase_emoji # + " "
|
moon_line += moon_phase_emoji # + " "
|
||||||
elif time_interval % 3 == 0:
|
elif time_interval % 3 == 0:
|
||||||
|
|
@ -309,19 +314,29 @@ def draw_astronomical(city_name, geo_data):
|
||||||
return answer
|
return answer
|
||||||
# }}}
|
# }}}
|
||||||
# draw_emoji {{{
|
# draw_emoji {{{
|
||||||
def draw_emoji(data):
|
def draw_emoji(data, config):
|
||||||
answer = ""
|
answer = ""
|
||||||
|
if config.get("view") == "v2n":
|
||||||
|
weather_symbol = constants.WEATHER_SYMBOL_WI_NIGHT
|
||||||
|
weather_symbol_width_vte = constants.WEATHER_SYMBOL_WIDTH_VTE_WI
|
||||||
|
elif config.get("view") == "v2d":
|
||||||
|
weather_symbol = constants.WEATHER_SYMBOL_WI_NIGHT
|
||||||
|
weather_symbol_width_vte = constants.WEATHER_SYMBOL_WIDTH_VTE_WI
|
||||||
|
else:
|
||||||
|
weather_symbol = constants.WEATHER_SYMBOL
|
||||||
|
weather_symbol_width_vte = constants.WEATHER_SYMBOL_WIDTH_VTE
|
||||||
|
|
||||||
for i in data:
|
for i in data:
|
||||||
emoji = constants.WEATHER_SYMBOL.get(
|
emoji = weather_symbol.get(
|
||||||
constants.WWO_CODE.get(
|
constants.WWO_CODE.get(
|
||||||
str(int(i)), "Unknown"))
|
str(int(i)), "Unknown"))
|
||||||
space = " "*(3-constants.WEATHER_SYMBOL_WIDTH_VTE.get(emoji))
|
space = " "*(3-weather_symbol_width_vte.get(emoji, 2))
|
||||||
answer += emoji + space
|
answer += emoji + space
|
||||||
answer += "\n"
|
answer += "\n"
|
||||||
return answer
|
return answer
|
||||||
# }}}
|
# }}}
|
||||||
# draw_wind {{{
|
# draw_wind {{{
|
||||||
def draw_wind(data, color_data):
|
def draw_wind(data, color_data, config):
|
||||||
|
|
||||||
def _color_code_for_wind_speed(wind_speed):
|
def _color_code_for_wind_speed(wind_speed):
|
||||||
|
|
||||||
|
|
@ -346,11 +361,16 @@ def draw_wind(data, color_data):
|
||||||
answer = ""
|
answer = ""
|
||||||
answer_line2 = ""
|
answer_line2 = ""
|
||||||
|
|
||||||
|
if config.get("view") in ["v2n", "v2d"]:
|
||||||
|
wind_direction_list = constants.WIND_DIRECTION_WI
|
||||||
|
else:
|
||||||
|
wind_direction_list = constants.WIND_DIRECTION
|
||||||
|
|
||||||
for j, degree in enumerate(data):
|
for j, degree in enumerate(data):
|
||||||
|
|
||||||
degree = int(degree)
|
degree = int(degree)
|
||||||
if degree:
|
if degree:
|
||||||
wind_direction = constants.WIND_DIRECTION[int(((degree+22.5)%360)/45.0)]
|
wind_direction = wind_direction_list[int(((degree+22.5)%360)/45.0)]
|
||||||
else:
|
else:
|
||||||
wind_direction = ""
|
wind_direction = ""
|
||||||
|
|
||||||
|
|
@ -430,14 +450,14 @@ def generate_panel(data_parsed, geo_data, config):
|
||||||
output += "\n"
|
output += "\n"
|
||||||
|
|
||||||
data = jq_query(weather_code_query, data_parsed)
|
data = jq_query(weather_code_query, data_parsed)
|
||||||
output += draw_emoji(data)
|
output += draw_emoji(data, config)
|
||||||
|
|
||||||
data = jq_query(wind_direction_query, data_parsed)
|
data = jq_query(wind_direction_query, data_parsed)
|
||||||
color_data = jq_query(wind_speed_query, data_parsed)
|
color_data = jq_query(wind_speed_query, data_parsed)
|
||||||
output += draw_wind(data, color_data)
|
output += draw_wind(data, color_data, config)
|
||||||
output += "\n"
|
output += "\n"
|
||||||
|
|
||||||
output += draw_astronomical(config["location"], geo_data)
|
output += draw_astronomical(config["location"], geo_data, config)
|
||||||
output += "\n"
|
output += "\n"
|
||||||
|
|
||||||
output = add_frame(output, max_width, config)
|
output = add_frame(output, max_width, config)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue