diff --git a/app/__init__.py b/app/__init__.py
index 939ebb6b..e4360853 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -198,3 +198,16 @@ def set_locale():
models.db.session.commit()
return resp
+
+
+@app.route("/set-nonfree/", methods=["POST"])
+def set_nonfree():
+ resp = redirect(url_for("homepage.home"))
+ if request.cookies.get("hide_nonfree") == "1":
+ resp.set_cookie("hide_nonfree", "0", expires=0)
+ else:
+ expire_date = datetime.datetime.now()
+ expire_date = expire_date + datetime.timedelta(days=5*365)
+ resp.set_cookie("hide_nonfree", "1", expires=expire_date)
+
+ return resp
diff --git a/app/blueprints/packages/packages.py b/app/blueprints/packages/packages.py
index a6ccef39..ab96e966 100644
--- a/app/blueprints/packages/packages.py
+++ b/app/blueprints/packages/packages.py
@@ -49,7 +49,7 @@ from app.utils import is_user_bot, get_int_or_abort, is_package_page, abs_url_fo
@bp.route("/packages/")
def list_all():
- qb = QueryBuilder(request.args)
+ qb = QueryBuilder(request.args, cookies=True)
query = qb.build_package_query()
title = qb.title
diff --git a/app/blueprints/todo/editor.py b/app/blueprints/todo/editor.py
index 96ed6754..a2a12999 100644
--- a/app/blueprints/todo/editor.py
+++ b/app/blueprints/todo/editor.py
@@ -93,7 +93,7 @@ def view_editor():
@bp.route("/todo/topics/")
@login_required
def topics():
- qb = QueryBuilder(request.args)
+ qb = QueryBuilder(request.args, cookies=True)
qb.set_sort_if_none("date")
query = qb.build_topic_query()
@@ -125,7 +125,7 @@ def topics():
@bp.route("/todo/tags/")
@login_required
def tags():
- qb = QueryBuilder(request.args)
+ qb = QueryBuilder(request.args, cookies=True)
qb.set_sort_if_none("score", "desc")
query = qb.build_package_query()
diff --git a/app/querybuilder.py b/app/querybuilder.py
index 143a7418..50357cc5 100644
--- a/app/querybuilder.py
+++ b/app/querybuilder.py
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see
DEBUG MODE ENABLED