diff --git a/lib/view/line.py b/lib/view/line.py index 1f020fd..24ba323 100644 --- a/lib/view/line.py +++ b/lib/view/line.py @@ -237,26 +237,27 @@ def render_json(data): return output -def format_weather_data(format_line, location, override_location, full_address, data, query): +def format_weather_data(query, parsed_query, data): """ Format information about current weather `data` for `location` with specified in `format_line` format """ if 'data' not in data: - return 'Unknown location; please try ~%s' % location + return 'Unknown location; please try ~%s' % parsed_query["location"] + + format_line = query.get('format', parsed_query.get("view", "")) + if format_line in PRECONFIGURED_FORMAT: + format_line = PRECONFIGURED_FORMAT[format_line] if format_line == "j1": return render_json(data['data']) if format_line[:2] == "v2": - return v2.main(location, - override_location=override_location, - full_address=full_address, data=data, - view=format_line) + return v2.main(query, parsed_query, data) current_condition = data['data']['current_condition'][0] - current_condition['location'] = location - current_condition['override_location'] = override_location + current_condition['location'] = parsed_query["location"] + current_condition['override_location'] = parsed_query["override_location"] output = render_line(format_line, current_condition, query) return output @@ -266,23 +267,11 @@ def wttr_line(query, parsed_query): in format `line_format` """ location = parsed_query['location'] - override_location_name = parsed_query['override_location_name'] - full_address = parsed_query['full_address'] lang = parsed_query['lang'] - fmt = parsed_query['view'] - - format_line = query.get('format', fmt or '') - - if format_line in PRECONFIGURED_FORMAT: - format_line = PRECONFIGURED_FORMAT[format_line] - weather_data = get_weather_data(location, lang) - - output = format_weather_data( - format_line, location, override_location_name, full_address, - weather_data, query) - output = output.rstrip("\n")+"\n" - return output + data = get_weather_data(location, lang) + output = format_weather_data(query, parsed_query, data) + return output.rstrip("\n")+"\n" def main(): """ @@ -293,8 +282,14 @@ def main(): query = { 'line': sys.argv[2], } + parsed_query = { + "location": location, + "orig_location": location, + "language": "en", + "format": "v2", + } - sys.stdout.write(wttr_line(location, location, None, query, 'en', "v1")) + sys.stdout.write(wttr_line(query, parsed_query)) if __name__ == '__main__': main()