do not pass query to view functions

This commit is contained in:
Igor Chubin 2020-04-27 20:00:26 +02:00
parent 0a8ab5e89f
commit e041280f27
4 changed files with 15 additions and 15 deletions

View File

@ -69,8 +69,6 @@ def parse_query(args):
if days in q:
result['days'] = days
result['no-caption'] = False
result['no-city'] = False
if 'q' in q:
result['no-caption'] = True
if 'Q' in q:
@ -83,7 +81,8 @@ def parse_query(args):
val = True
if val == 'False':
val = False
result[key] = val
if val:
result[key] = val
# currently `view` is alias for `format`
if "format" in result and not result.get("view"):

View File

@ -10,15 +10,12 @@ import constants
import parse_query
import globals
def get_moon(query, parsed_query):
def get_moon(parsed_query):
location = parsed_query['orig_location']
html = parsed_query['html_output']
lang = parsed_query['lang']
if query is None:
query = {}
date = None
if '@' in location:
date = location[location.index('@')+1:]
@ -40,7 +37,7 @@ def get_moon(query, parsed_query):
stdout = p.communicate()[0]
stdout = stdout.decode("utf-8")
if query.get('no-terminal', False):
if parsed_query.get('no-terminal', False):
stdout = globals.remove_ansi(stdout)
if html:

View File

@ -12,6 +12,7 @@ import sys
import os
import re
import time
import hashlib
sys.path.insert(0, "..")
from translations import get_message, FULL_TRANSLATION, PARTIAL_TRANSLATION, SUPPORTED_LANGS
@ -23,7 +24,7 @@ def _is_invalid_location(location):
if '.png' in location:
return True
def get_wetter(query, parsed_query):
def get_wetter(parsed_query):
location = parsed_query['location']
ip = parsed_query['ip_addr']
@ -83,7 +84,10 @@ def get_wetter(query, parsed_query):
if location_name is None:
location_name = ""
return "%s/%s/%s%s%s%s%s" % (CACHEDIR, location, timestamp, imperial_suffix, lang_suffix, query_line, location_name)
filename = "".join([timestamp, imperial_suffix, lang_suffix, query_line, location_name])
digest = hashlib.sha1(filename.encode('utf-8')).hexdigest()
return "%s/%s/%s" % (CACHEDIR, location, digest)
def save_weather_data(location, filename, lang=None, query=None, location_name=None, full_address=None):
@ -212,9 +216,9 @@ def get_wetter(query, parsed_query):
stdout = re.sub("<head>", "<head>" + title + opengraph, stdout)
open(filename+'.html', 'w').write(stdout)
filename = get_filename(location, lang=lang, query=query, location_name=location_name)
filename = get_filename(location, lang=lang, query=parsed_query, location_name=location_name)
if not os.path.exists(filename):
save_weather_data(location, filename, lang=lang, query=query, location_name=location_name, full_address=full_address)
save_weather_data(location, filename, lang=lang, query=parsed_query, location_name=location_name, full_address=full_address)
if html:
filename += '.html'

View File

@ -205,9 +205,9 @@ def _response(parsed_query, query, fast_mode=False):
if parsed_query.get("view"):
output = wttr_line(query, parsed_query)
elif loc == 'moon' or loc.startswith('moon@'):
output = get_moon(query, parsed_query)
output = get_moon(parsed_query)
else:
output = get_wetter(query, parsed_query)
output = get_wetter(parsed_query)
if parsed_query.get('png_filename'):
output = fmt.png.render_ansi(
@ -291,6 +291,7 @@ def parse_request(location, request, query, fast_mode=False):
'country': country,
'query_source_location': query_source_location})
parsed_query.update(query)
return parsed_query
@ -338,7 +339,6 @@ def wttr(location, request):
# use the full track
parsed_query = parse_request(location, request, query, fast_mode=True)
response = _response(parsed_query, query, fast_mode=True)
try:
if not response:
parsed_query = parse_request(location, request, query)