Skip to content

Commit ef390d7

Browse files
Merge pull request #85 from p2plabsxyz/feat/brave-search
feat: add brave search engine
2 parents 3f718a0 + f19fa93 commit ef390d7

File tree

5 files changed

+12
-2
lines changed

5 files changed

+12
-2
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
- [x] Cross browser themeing ([browser://theme/](https://github.com/p2plabsxyz/peersky-browser/blob/main/docs/Theme.md))
2929
- [x] Search engine
3030
- DuckDuckGo (default)
31+
- Brave Search
3132
- Ecosia
3233
- Kagi
3334
- Startpage

docs/Settings.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ Each section is built using simple HTML blocks styled with internal and theme-pr
9595
### Search Engine
9696

9797
- `settings.set('searchEngine', 'DuckDuckGo')`
98-
- Allows user to switch search engines between DuckDuckGo, Ecosia, Kagi, Startpage
98+
- Allows user to switch search engines between DuckDuckGo, Brave Search, Ecosia, Kagi, Startpage
9999

100100
### Cache Clearing
101101

src/pages/settings.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ <h1 class="section-title">Search Engine</h1>
120120
<div class="select-display" data-value="duckduckgo">DuckDuckGo</div>
121121
<div class="select-dropdown">
122122
<div class="select-option" data-value="duckduckgo">DuckDuckGo</div>
123+
<div class="select-option" data-value="brave">Brave Search</div>
123124
<div class="select-option" data-value="ecosia">Ecosia</div>
124125
<div class="select-option" data-value="kagi">Kagi</div>
125126
<div class="select-option" data-value="startpage">Startpage</div>

src/settings-manager.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ class SettingsManager {
307307

308308
validateSetting(key, value) {
309309
const validators = {
310-
searchEngine: (v) => ['duckduckgo', 'ecosia', 'kagi', 'startpage'].includes(v),
310+
searchEngine: (v) => ['duckduckgo', 'brave', 'ecosia', 'kagi', 'startpage'].includes(v),
311311
theme: (v) => ['transparent', 'light', 'dark', 'green', 'cyan', 'yellow', 'violet'].includes(v),
312312
showClock: (v) => typeof v === 'boolean',
313313
verticalTabs: (v) => typeof v === 'boolean',
@@ -412,6 +412,7 @@ class SettingsManager {
412412
getSearchEngineName() {
413413
const engineNames = {
414414
'duckduckgo': 'DuckDuckGo',
415+
'brave': 'Brave Search',
415416
'ecosia': 'Ecosia',
416417
'kagi': 'Kagi',
417418
'startpage': 'Startpage'

src/utils.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ function makeDuckDuckGo(query) {
3434
return `https://duckduckgo.com/?q=${encodeURIComponent(query)}`;
3535
}
3636

37+
function makeBraveSearch(query) {
38+
return `https://search.brave.com/search?q=${encodeURIComponent(query)}`;
39+
}
40+
3741
function makeEcosia(query) {
3842
return `https://www.ecosia.org/search?q=${encodeURIComponent(query)}`;
3943
}
@@ -49,6 +53,8 @@ function makeStartpage(query) {
4953

5054
function makeSearch(query, engine = 'duckduckgo') {
5155
switch (engine) {
56+
case 'brave':
57+
return makeBraveSearch(query);
5258
case 'ecosia':
5359
return makeEcosia(query);
5460
case 'kagi':
@@ -177,6 +183,7 @@ export {
177183
makeHttp,
178184
makeHttps,
179185
makeDuckDuckGo,
186+
makeBraveSearch,
180187
makeEcosia,
181188
makeKagi,
182189
makeStartpage,

0 commit comments

Comments
 (0)