1
0
Fork 0
mirror of https://gitlab.com/SIGBUS/nyaa.git synced 2024-12-22 19:40:00 +00:00

Add per-user filter on search page based on query.

This commit is contained in:
ReimuHakurei 2017-05-24 08:23:04 +00:00
parent 63a469e08b
commit f215f0803c
2 changed files with 27 additions and 2 deletions

View file

@ -181,6 +181,15 @@ def home(rss):
flask.abort(404) flask.abort(404)
user_id = user.id user_id = user.id
if search_term:
exploded_query = search_term.split(" ")
first_word_user = models.User.by_username(exploded_query[0])
exploded_query.pop(0)
query_sans_user = ' '.join(exploded_query)
else:
first_word_user = None
query_sans_user = None
query_args = { query_args = {
'user': user_id, 'user': user_id,
'sort': sort_key or 'id', 'sort': sort_key or 'id',
@ -192,6 +201,11 @@ def home(rss):
'per_page': results_per_page 'per_page': results_per_page
} }
user_query = {
'first_word_user': first_word_user,
'query_sans_user': query_sans_user
}
if flask.g.user: if flask.g.user:
query_args['logged_in_user'] = flask.g.user query_args['logged_in_user'] = flask.g.user
if flask.g.user.is_moderator: # God mode if flask.g.user.is_moderator: # God mode
@ -229,7 +243,8 @@ def home(rss):
pagination=pagination, pagination=pagination,
torrent_query=query_results, torrent_query=query_results,
search=query_args, search=query_args,
rss_filter=rss_query_string) rss_filter=rss_query_string,
user_query=user_query)
else: else:
# If ES is enabled, default to db search for browsing # If ES is enabled, default to db search for browsing
if use_elastic: if use_elastic:
@ -250,7 +265,8 @@ def home(rss):
use_elastic=False, use_elastic=False,
torrent_query=query, torrent_query=query,
search=query_args, search=query_args,
rss_filter=rss_query_string) rss_filter=rss_query_string,
user_query=user_query)
@app.route('/user/<user_name>', methods=['GET', 'POST']) @app.route('/user/<user_name>', methods=['GET', 'POST'])

View file

@ -8,6 +8,15 @@
{{ caller() }} {{ caller() }}
</th> </th>
{% endmacro %} {% endmacro %}
{% if user_query is defined %}
{% if user_query['first_word_user'] and not search['user'] %}
<div class="alert alert-info">
<a href="/user/{{ user_query['first_word_user'].username }}{{ modify_query(q=user_query['query_sans_user'])[1:] }}">Click here to see only results uploaded by {{ user_query['first_word_user'].username }}</a>
</div>
{% endif %}
{% endif %}
{% if (use_elastic and torrent_query.hits.total > 0) or (torrent_query.items) %} {% if (use_elastic and torrent_query.hits.total > 0) or (torrent_query.items) %}
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered table-hover table-striped torrent-list"> <table class="table table-bordered table-hover table-striped torrent-list">