| @@ -0,0 +1,51 @@ | |||||
| // ==UserScript== | |||||
| // @name Brave Search Plus | |||||
| // @namespace https://ikibani.com | |||||
| // @version 0.1 | |||||
| // @description Supercharge the Brave search engine. | |||||
| // @author afycyro | |||||
| // @match https://search.brave.com/ | |||||
| // @match https://search.brave.com/search?q=* | |||||
| // @icon https://www.google.com/s2/favicons?sz=64&domain=brave.com | |||||
| // @grant none | |||||
| // ==/UserScript== | |||||
| (function() { | |||||
| 'use strict'; | |||||
| let search = { | |||||
| origTerms: "", | |||||
| terms: "", | |||||
| exclude: [], | |||||
| } | |||||
| const searchBox = document.querySelector('input#searchbox'); | |||||
| document.querySelector('form.form').addEventListener('submit', () => { | |||||
| let searchValue = searchBox.value.trim(); | |||||
| search.origTerms = searchValue; | |||||
| searchValue = searchValue.toLowerCase().split(' ').filter(t => !t.startsWith('-')).join(' '); | |||||
| search.exclude = searchBox.value.split(' ').filter(term => term.startsWith('-')).map(term => term.slice(1)); | |||||
| search.terms = searchValue; | |||||
| window.localStorage.setItem('searchOptions', JSON.stringify(search)); | |||||
| searchBox.value = search.terms; | |||||
| return true; | |||||
| }); | |||||
| if (window.location.href.split('/').filter(c => !!c).length > 2) { | |||||
| search = JSON.parse(window.localStorage.getItem('searchOptions')); | |||||
| searchBox.value = search.origTerms; | |||||
| document.querySelector('head title').innerText = `${search.origTerms} - Brave Search` | |||||
| const results = document.querySelectorAll('.snippet.fdb'); | |||||
| for (let result of results) { | |||||
| let resultLoc = result.querySelector('.netloc'); | |||||
| for (let exclusion of search.exclude) { | |||||
| if (resultLoc.innerText.toLowerCase().includes(exclusion)) { | |||||
| result.style.display = 'none'; | |||||
| } | |||||
| } | |||||
| }; | |||||
| } | |||||
| })(); | |||||