|
|
@ -152,6 +152,8 @@ def query_results(request, size=None):
|
|
|
|
message = None
|
|
|
|
message = None
|
|
|
|
message_class = None
|
|
|
|
message_class = None
|
|
|
|
add_bool = []
|
|
|
|
add_bool = []
|
|
|
|
|
|
|
|
add_top = []
|
|
|
|
|
|
|
|
sort = None
|
|
|
|
if request.user.is_anonymous:
|
|
|
|
if request.user.is_anonymous:
|
|
|
|
sizes = settings.OPENSEARCH_MAIN_SIZES_ANON
|
|
|
|
sizes = settings.OPENSEARCH_MAIN_SIZES_ANON
|
|
|
|
else:
|
|
|
|
else:
|
|
|
@ -172,6 +174,40 @@ def query_results(request, size=None):
|
|
|
|
if source != "all":
|
|
|
|
if source != "all":
|
|
|
|
add_bool.append({"src": source})
|
|
|
|
add_bool.append({"src": source})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if "dates" in request.POST:
|
|
|
|
|
|
|
|
dates = request.POST["dates"]
|
|
|
|
|
|
|
|
spl = dates.split(" - ")
|
|
|
|
|
|
|
|
if all(spl):
|
|
|
|
|
|
|
|
spl = [f"{x.replace(' ', 'T')}Z" for x in spl]
|
|
|
|
|
|
|
|
if not len(spl) == 2:
|
|
|
|
|
|
|
|
message = "Invalid dates"
|
|
|
|
|
|
|
|
message_class = "danger"
|
|
|
|
|
|
|
|
return {"message": message, "class": message_class}
|
|
|
|
|
|
|
|
from_ts, to_ts = spl
|
|
|
|
|
|
|
|
range_query = {
|
|
|
|
|
|
|
|
"range": {
|
|
|
|
|
|
|
|
"ts": {
|
|
|
|
|
|
|
|
"gt": from_ts,
|
|
|
|
|
|
|
|
"lt": to_ts,
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
add_top.append(range_query)
|
|
|
|
|
|
|
|
if "sorting" in request.POST:
|
|
|
|
|
|
|
|
sorting = request.POST["sorting"]
|
|
|
|
|
|
|
|
if sorting not in ("asc", "desc", "none"):
|
|
|
|
|
|
|
|
message = "Invalid sort"
|
|
|
|
|
|
|
|
message_class = "danger"
|
|
|
|
|
|
|
|
return {"message": message, "class": message_class}
|
|
|
|
|
|
|
|
if sorting in ("asc", "desc"):
|
|
|
|
|
|
|
|
sort = [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"ts": {
|
|
|
|
|
|
|
|
"order": sorting,
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
if "check-sentiment" in request.POST:
|
|
|
|
if "check-sentiment" in request.POST:
|
|
|
|
if "sentiment" in request.POST:
|
|
|
|
if "sentiment" in request.POST:
|
|
|
|
sentiment = request.POST["sentiment"]
|
|
|
|
sentiment = request.POST["sentiment"]
|
|
|
@ -188,6 +224,11 @@ def query_results(request, size=None):
|
|
|
|
if add_bool:
|
|
|
|
if add_bool:
|
|
|
|
for item in add_bool:
|
|
|
|
for item in add_bool:
|
|
|
|
search_query["query"]["bool"]["must"].append({"match": item})
|
|
|
|
search_query["query"]["bool"]["must"].append({"match": item})
|
|
|
|
|
|
|
|
if add_top:
|
|
|
|
|
|
|
|
for item in add_top:
|
|
|
|
|
|
|
|
search_query["query"]["bool"]["must"].append(item)
|
|
|
|
|
|
|
|
if sort:
|
|
|
|
|
|
|
|
search_query["sort"] = sort
|
|
|
|
results = run_main_query(
|
|
|
|
results = run_main_query(
|
|
|
|
client,
|
|
|
|
client,
|
|
|
|
request.user, # passed through run_main_query to filter_blacklisted
|
|
|
|
request.user, # passed through run_main_query to filter_blacklisted
|
|
|
@ -280,12 +321,5 @@ def construct_query(query, size):
|
|
|
|
]
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"sort": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"ts": {
|
|
|
|
|
|
|
|
"order": "desc",
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return query
|
|
|
|
return query
|
|
|
|