From 1b7d3edd307f8bf9e0ae29e76f6f2d8c0de5a3c0 Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Wed, 20 Oct 2021 12:39:04 -0600 Subject: [PATCH 1/5] Split latest and tagged buildx actions Reduces redundancy with builds when creating a tag --- .github/workflows/buildx.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/buildx.yml b/.github/workflows/buildx.yml index eaa528d..cd4e106 100644 --- a/.github/workflows/buildx.yml +++ b/.github/workflows/buildx.yml @@ -26,6 +26,7 @@ jobs: echo "${{ secrets.DOCKER_PASSWORD }}" | \ docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin - name: build and push the image + if: startsWith(github.ref, 'refs/heads/main') run: | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes docker buildx ls From d4e5984ccdd058a3654705e614f0cc8629cb9f8f Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Wed, 20 Oct 2021 15:32:45 -0600 Subject: [PATCH 2/5] Add check for event trigger in buildx action --- .github/workflows/buildx.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/buildx.yml b/.github/workflows/buildx.yml index cd4e106..d135aac 100644 --- a/.github/workflows/buildx.yml +++ b/.github/workflows/buildx.yml @@ -14,6 +14,9 @@ jobs: - name: Wait for tests to succeed if: ${{ github.event.workflow_run.conclusion != 'success' }} run: exit 1 + - name: Check trigger event + if: ${{ github.event_name != 'push' }} + run: exit 0 - name: checkout code uses: actions/checkout@v2 - name: install buildx From f7b8b30e9d4a62b0dd9e73220f95661479ab4269 Mon Sep 17 00:00:00 2001 From: fredster33 <64927044+fredster33@users.noreply.github.com> Date: Wed, 20 Oct 2021 14:37:17 -0700 Subject: [PATCH 3/5] Fix typo in readme (#478) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 85584a0..8522da8 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Contents ## Features - No ads or sponsored content -- No javascript +- No JavaScript - No cookies - No tracking/linking of your personal IP address\* - No AMP links From 284a8102c85bdc69674952bc30a6cfacfb8b01ee Mon Sep 17 00:00:00 2001 From: Yadomin <1782397074@qq.com> Date: Thu, 21 Oct 2021 10:01:04 +0800 Subject: [PATCH 4/5] Block by result title or url using regex (#473) Allows blocking search results using a regex filter for either result title or result url --- app/filter.py | 29 ++++++++++++- app/models/config.py | 3 ++ app/static/settings/translations.json | 60 ++++++++++++++++++++++++++- app/templates/index.html | 8 ++++ 4 files changed, 97 insertions(+), 3 deletions(-) diff --git a/app/filter.py b/app/filter.py index b5fbfbd..97d52db 100644 --- a/app/filter.py +++ b/app/filter.py @@ -45,12 +45,15 @@ class Filter: def __init__(self, user_key: str, mobile=False, config=None) -> None: if config is None: config = {} - self.near = config['near'] if 'near' in config else '' self.dark = config['dark'] if 'dark' in config else False self.nojs = config['nojs'] if 'nojs' in config else False self.new_tab = config['new_tab'] if 'new_tab' in config else False self.alt_redirect = config['alts'] if 'alts' in config else False + self.block_title = ( + config['block_title'] if 'block_title' in config else '') + self.block_url = ( + config['block_url'] if 'block_url' in config else '') self.mobile = mobile self.user_key = user_key self.main_divs = ResultSet('') @@ -87,6 +90,8 @@ class Filter: def clean(self, soup) -> BeautifulSoup: self.main_divs = soup.find('div', {'id': 'main'}) self.remove_ads() + self.remove_block_titles() + self.remove_block_url() self.collapse_sections() self.update_styling(soup) @@ -134,6 +139,28 @@ class Filter: if has_ad_content(_.text)] _ = div.decompose() if len(div_ads) else None + def remove_block_titles(self) -> None: + if not self.main_divs: + return + if self.block_title == '': + return + block_title = re.compile(self.block_title) + for div in [_ for _ in self.main_divs.find_all('div', recursive=True)]: + block_divs = [_ for _ in div.find_all('h3', recursive=True) + if block_title.search(_.text) is not None] + _ = div.decompose() if len(block_divs) else None + + def remove_block_url(self) -> None: + if not self.main_divs: + return + if self.block_url == '': + return + block_url = re.compile(self.block_url) + for div in [_ for _ in self.main_divs.find_all('div', recursive=True)]: + block_divs = [_ for _ in div.find_all('a', recursive=True) + if block_url.search(_.attrs['href']) is not None] + _ = div.decompose() if len(block_divs) else None + def collapse_sections(self) -> None: """Collapses long result sections ("people also asked", "related searches", etc) into "details" elements diff --git a/app/models/config.py b/app/models/config.py index 7d0da92..1902009 100644 --- a/app/models/config.py +++ b/app/models/config.py @@ -1,6 +1,7 @@ from app.utils.misc import read_config_bool from flask import current_app import os +import re class Config: @@ -14,6 +15,8 @@ class Config: open(os.path.join(app_config['STATIC_FOLDER'], 'css/variables.css')).read()) self.block = os.getenv('WHOOGLE_CONFIG_BLOCK', '') + self.block_title = os.getenv('WHOOGLE_CONFIG_BLOCK_TITLE', '') + self.block_url = os.getenv('WHOOGLE_CONFIG_BLOCK_URL', '') self.ctry = os.getenv('WHOOGLE_CONFIG_COUNTRY', '') self.theme = os.getenv('WHOOGLE_CONFIG_THEME', '') self.safe = read_config_bool('WHOOGLE_CONFIG_SAFE') diff --git a/app/static/settings/translations.json b/app/static/settings/translations.json index cc62324..cd2ea91 100644 --- a/app/static/settings/translations.json +++ b/app/static/settings/translations.json @@ -10,6 +10,10 @@ "config-near-help": "City Name", "config-block": "Block", "config-block-help": "Comma-separated site list", + "config-block-title": "Block by Title", + "config-block-title-help": "Use regex", + "config-block-url": "Block by URL", + "config-block-url-help": "Use regex", "config-theme": "Theme", "config-nojs": "Show NoJS Links", "config-dark": "Dark Mode", @@ -43,6 +47,10 @@ "config-near-help": "Stad", "config-block": "Blok", "config-block-help": "Lijst met sites met kommas onderscheiden", + "config-block-title": "Blokkeren op titel", + "config-block-title-help": "Gebruik regex", + "config-block-url": "Blokkeren op URL", + "config-block-url-help": "Gebruik regex", "config-theme": "Thema", "config-nojs": "Laat NoJS links zien", "config-dark": "Donkere Modus", @@ -76,6 +84,10 @@ "config-near-help": "Stadt-Name", "config-block": "Block", "config-block-help": "Komma-getrennte Liste von Seiten", + "config-block-title": "Nach Titel blockieren", + "config-block-title-help": "Regex verwenden", + "config-block-url": "Nach URL blockieren", + "config-block-url-help": "Regex verwenden", "config-theme": "Thema", "config-nojs": "NoJS-Links anzeigen", "config-dark": "Dark Mode", @@ -109,6 +121,10 @@ "config-near-help": "Nombre de la Ciudad", "config-block": "Bloquear", "config-block-help": "Lista de sitios separados por comas", + "config-block-title": "Bloquear por título", + "config-block-title-help": "Usar expresiones regulares", + "config-block-url": "Bloquear por URL", + "config-block-url-help": "Usar expresiones regulares", "config-theme": "Tema", "config-nojs": "Mostrar Enlaces NoJS", "config-dark": "Modo Oscuro", @@ -142,6 +158,10 @@ "config-near-help": "Nome della città", "config-block": "Blocca", "config-block-help": "Lista di siti separati da virgole", + "config-block-title": "Blocca per titolo", + "config-block-title-help": "Usa regex", + "config-block-url": "Blocca per url", + "config-block-url-help": "Usa regex", "config-theme": "Tema", "config-nojs": "Mostra link NoJS", "config-dark": "Modalità Notte", @@ -164,7 +184,7 @@ "dark": "notte", "system": "impostazioni di sistema" }, - "lang_pt": { + "lang_pt": { "search": "Pesquisar", "config": "Configuração", "config-country": "Filtrar Resultados por País", @@ -175,6 +195,10 @@ "config-near-help": "Nome da Cidade", "config-block": "Bloquear", "config-block-help": "Lista de sites separados por vírgulas", + "config-block-title": "Bloco por título", + "config-block-title-help": "Use regex", + "config-block-url": "Bloquear por url", + "config-block-url-help": "Use regex", "config-theme": "Tema", "config-nojs": "Mostrar Links NoJS", "config-dark": "Modo Escuro", @@ -208,6 +232,10 @@ "config-near-help": "城市名", "config-block": "屏蔽", "config-block-help": "逗号分隔的网站列表", + "config-block-title": "按网站标题屏蔽", + "config-block-title-help": "使用正则表达式", + "config-block-url": "按网站链接屏蔽", + "config-block-url-help": "使用正则表达式", "config-theme": "主题", "config-nojs": "显示 NoJS 链接", "config-dark": "深色模式", @@ -241,6 +269,10 @@ "config-near-help": "නගරයේ නම", "config-block": "අවහිර", "config-block-help": "අල්ප විරාම වලින් වෙන් වූ අඩවි ලැයිස්තුව", + "config-block-title": "මාතෘකාව අනුව අවහිර කරන්න", + "config-block-title-help": "රෙජෙක්ස් භාවිතා කරන්න", + "config-block-url": "යූආර්එල් මඟින් අවහිර කරන්න", + "config-block-url-help": "රෙජෙක්ස් භාවිතා කරන්න", "config-theme": "තේමාව", "config-nojs": "නෝජේඑස් සබැඳි පෙන්වන්න", "config-dark": "අඳුරු ආකාරය", @@ -274,6 +306,10 @@ "config-near-help": "Nom de ville", "config-block": "Bloquer", "config-block-help": "Liste de sites séparés pas des virgules", + "config-block-title": "Bloquer par titre", + "config-block-title-help": "Utiliser l'expression régulière", + "config-block-url": "Bloquer par URL", + "config-block-url-help": "Utiliser l'expression régulière", "config-theme": "Theme", "config-nojs": "Montrer les liens NoJS", "config-dark": "Mode Sombre", @@ -307,6 +343,10 @@ "config-near-help": "نام شهر", "config-block": "مسدود کردن", "config-block-help": "لیست سایت‌ها با ویرگول جدا می‌شود.", + "config-block-title": "مسدود کردن بر اساس عنوان", + "config-block-title-help": "از عبارت منظم استفاده کنید", + "config-block-url": "بلوک بر اساس URL", + "config-block-url-help": "از عبارت منظم استفاده کنید", "config-theme": "پوسته", "config-nojs": "نمایش پیوند‌های بدون جاوا اسکیریپت", "config-dark": "حالت تاریک", @@ -340,6 +380,10 @@ "config-near-help": "Název města", "config-block": "Blokovat", "config-block-help": "Čárkami oddělený seznam stránek", + "config-block-title": "Blokovat podle názvu", + "config-block-title-help": "Použijte regulární výraz", + "config-block-url": "Blokovat podle adresy URL", + "config-block-url-help": "Použijte regulární výraz", "config-theme": "Motiv", "config-nojs": "Zobrazit NoJS odkazy", "config-dark": "Tmavý motiv", @@ -373,6 +417,10 @@ "config-near-help": "城市名", "config-block": "排除", "config-block-help": "網址列表,以逗號分隔", + "config-block-title": "按標題屏蔽", + "config-block-title-help": "使用正則表達式", + "config-block-url": "按網址屏蔽", + "config-block-url-help": "使用正則表達式", "config-theme": "主題", "config-nojs": "顯示 NoJS 連結", "config-dark": "深色模式", @@ -406,6 +454,10 @@ "config-near-help": "Име на град", "config-block": "Блокирани сайтове", "config-block-help": "Списък сайтове, разделени със запетая", + "config-block-title": "Блокиране по заглавие", + "config-block-title-help": "Използвайте регулярно изражение", + "config-block-url": "Блокиране по url", + "config-block-url-help": "Използвайте регулярно изражение", "config-theme": "Стил", "config-nojs": "Показване на връзки без JS", "config-dark": "Тъмен режим", @@ -439,6 +491,10 @@ "config-near-help": "शहर का नाम", "config-block": "खंड", "config-block-help": "अल्पविराम से अलग की गई साइट सूची", + "config-block-title": "शीर्षक के अनुसार ब्लॉक करें", + "config-block-title-help": "रेगेक्स का प्रयोग करें", + "config-block-url": "url द्वारा अवरोधित करें", + "config-block-url-help": "रेगेक्स का प्रयोग करें", "config-theme": "विषय", "config-nojs": "NoJS लिंक दिखाएं", "config-dark": "डार्क मोड", @@ -460,5 +516,5 @@ "light": "रोशनी", "dark": "अंधेरा", "system": "प्रणाली" - } + } } diff --git a/app/templates/index.html b/app/templates/index.html index f5d2f5a..435dcf3 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -122,6 +122,14 @@ +
+ + +
+
+ + +
From aff7b6c72f21badb9ab9881ea87fd5c884d299dd Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Wed, 20 Oct 2021 20:41:04 -0600 Subject: [PATCH 5/5] Fix latest image build workflow condition --- .github/workflows/buildx.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/buildx.yml b/.github/workflows/buildx.yml index d135aac..35861ee 100644 --- a/.github/workflows/buildx.yml +++ b/.github/workflows/buildx.yml @@ -14,9 +14,6 @@ jobs: - name: Wait for tests to succeed if: ${{ github.event.workflow_run.conclusion != 'success' }} run: exit 1 - - name: Check trigger event - if: ${{ github.event_name != 'push' }} - run: exit 0 - name: checkout code uses: actions/checkout@v2 - name: install buildx @@ -29,7 +26,7 @@ jobs: echo "${{ secrets.DOCKER_PASSWORD }}" | \ docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin - name: build and push the image - if: startsWith(github.ref, 'refs/heads/main') + if: startsWith(github.ref, 'refs/heads/main') && github.actor == 'benbusby' run: | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes docker buildx ls