From 2856ae2f9324d43d67e2cf9fe8613b1ae8b06663 Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Wed, 5 May 2021 13:24:34 -0400 Subject: [PATCH] Block websites in search results via user config Adds a new config field "Block" to specify a comma separated list of websites to block in search results. This is applied for all searches. --- app/models/config.py | 1 + app/request.py | 4 ++++ app/routes.py | 3 +-- app/templates/index.html | 4 ++++ app/utils/search.py | 1 - 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/models/config.py b/app/models/config.py index 84ad0e4..3898ae7 100644 --- a/app/models/config.py +++ b/app/models/config.py @@ -18,6 +18,7 @@ class Config: 'WHOOGLE_CONFIG_STYLE', open(os.path.join(app_config['STATIC_FOLDER'], 'css/variables.css')).read()) + self.block = os.getenv('WHOOGLE_CONFIG_BLOCK', '') self.ctry = os.getenv('WHOOGLE_CONFIG_COUNTRY', '') self.safe = read_config_bool('WHOOGLE_CONFIG_SAFE') self.dark = read_config_bool('WHOOGLE_CONFIG_DARK') diff --git a/app/request.py b/app/request.py index b4c67dd..6fabe46 100644 --- a/app/request.py +++ b/app/request.py @@ -120,6 +120,10 @@ def gen_query(query, args, config, near_city=None) -> str: ) if config.lang_interface else '' param_dict['safe'] = '&safe=' + ('active' if config.safe else 'off') + # Block all sites specified in the user config + for blocked in config.block.split(','): + query += (' -site:' + blocked) if blocked else '' + for val in param_dict.values(): if not val: continue diff --git a/app/routes.py b/app/routes.py index 053cb72..7867442 100644 --- a/app/routes.py +++ b/app/routes.py @@ -2,7 +2,6 @@ import argparse import base64 import io import json -import os import pickle import urllib.parse as urlparse import uuid @@ -17,7 +16,7 @@ from app import app from app.models.config import Config from app.request import Request, TorError from app.utils.bangs import resolve_bang -from app.utils.session import valid_user_session +from app.utils.session import generate_user_key, valid_user_session from app.utils.search import * # Load DDG bang json files only on init diff --git a/app/templates/index.html b/app/templates/index.html index 3625719..9d43988 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -106,6 +106,10 @@ +
+ + +
diff --git a/app/utils/search.py b/app/utils/search.py index b71e6dd..a856bf6 100644 --- a/app/utils/search.py +++ b/app/utils/search.py @@ -1,5 +1,4 @@ from app.filter import Filter, get_first_link -from app.utils.session import generate_user_key from app.request import gen_query from bs4 import BeautifulSoup as bsoup from cryptography.fernet import Fernet, InvalidToken