mirror of
https://github.com/chubin/wttr.in
synced 2024-11-15 00:27:09 +00:00
displayed location names for implied locations fixes (fixes #265)
This commit is contained in:
parent
5a4c57ce96
commit
65855a6d6a
3 changed files with 14 additions and 11 deletions
|
@ -207,11 +207,11 @@ def location_processing(location, ip_addr):
|
|||
if location == '~':
|
||||
location = None
|
||||
|
||||
if location and location.lstrip('~').startswith('@'):
|
||||
if location and location.lstrip('~ ').startswith('@'):
|
||||
try:
|
||||
location, country = get_location(
|
||||
socket.gethostbyname(
|
||||
location.lstrip('~')[1:]))
|
||||
location.lstrip('~ ')[1:]))
|
||||
location = '~' + location
|
||||
if country:
|
||||
location += ", %s" % country
|
||||
|
@ -243,13 +243,16 @@ def location_processing(location, ip_addr):
|
|||
hide_full_address = not force_show_full_address
|
||||
|
||||
if location and not location.startswith('~'):
|
||||
location = location_canonical_name(location)
|
||||
tmp_location = location_canonical_name(location)
|
||||
if tmp_location != location:
|
||||
override_location_name = location
|
||||
locaiton = tmp_location
|
||||
|
||||
# up to this point it is possible that the name
|
||||
# contains some unicode symbols
|
||||
# here we resolve them
|
||||
if location is not None and not ascii_only(location):
|
||||
location = "~" + location.lstrip('~')
|
||||
location = "~" + location.lstrip('~ ')
|
||||
|
||||
if location is not None and location.upper() in IATA_CODES:
|
||||
location = '~%s' % location
|
||||
|
|
|
@ -93,7 +93,7 @@ def render_location(data, query):
|
|||
location (l)
|
||||
"""
|
||||
|
||||
return data['location'].title()
|
||||
return (data['override_location'] or data['location']) # .title()
|
||||
|
||||
def render_moonphase(_, query):
|
||||
"""
|
||||
|
@ -155,7 +155,7 @@ def render_line(line, data, query):
|
|||
|
||||
return re.sub(r'%[^%]*[a-zA-Z]', render_symbol, line)
|
||||
|
||||
def format_weather_data(format_line, location, data, query):
|
||||
def format_weather_data(format_line, location, override_location, data, query):
|
||||
"""
|
||||
Format information about current weather `data` for `location`
|
||||
with specified in `format_line` format
|
||||
|
@ -163,10 +163,11 @@ def format_weather_data(format_line, location, data, query):
|
|||
|
||||
current_condition = data['data']['current_condition'][0]
|
||||
current_condition['location'] = location
|
||||
current_condition['override_location'] = override_location
|
||||
output = render_line(format_line, current_condition, query)
|
||||
return output
|
||||
|
||||
def wttr_line(location, query):
|
||||
def wttr_line(location, override_location_name, query):
|
||||
"""
|
||||
Return 1line weather information for `location`
|
||||
in format `line_format`
|
||||
|
@ -179,7 +180,7 @@ def wttr_line(location, query):
|
|||
|
||||
weather_data = get_weather_data(location)
|
||||
|
||||
output = format_weather_data(format_line, location, weather_data, query)
|
||||
output = format_weather_data(format_line, location, override_location_name, weather_data, query)
|
||||
output = output.rstrip("\n")+"\n"
|
||||
return output
|
||||
|
||||
|
@ -193,7 +194,7 @@ def main():
|
|||
'line': sys.argv[2],
|
||||
}
|
||||
|
||||
sys.stdout.write(wttr_line(location, query))
|
||||
sys.stdout.write(wttr_line(location, location, query))
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
|
@ -208,8 +208,7 @@ def wttr(location, request):
|
|||
# We are ready to return the answer
|
||||
try:
|
||||
if 'format' in query:
|
||||
location = (orig_location or location).lstrip('~')
|
||||
return wttr_line(location, query)
|
||||
return wttr_line(location, override_location_name, query)
|
||||
|
||||
if png_filename:
|
||||
options = {
|
||||
|
|
Loading…
Reference in a new issue