Skip to content

Commit d959741

Browse files
Merge pull request #110 from p2plabsxyz/feat/noai_duckduckgo
feat: add DuckDuckGo No-AI as default search engine
2 parents 87ea29c + 6ad027d commit d959741

File tree

5 files changed

+13
-10
lines changed

5 files changed

+13
-10
lines changed

src/pages/settings.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,17 +121,18 @@ <h1 class="section-title">Search Engine</h1>
121121
<div class="setting-label">Default search engine</div>
122122
<div class="setting-control">
123123
<div class="custom-select" id="search-engine-select">
124-
<div class="select-display" data-value="duckduckgo">DuckDuckGo</div>
124+
<div class="select-display" data-value="duckduckgo_noai">DuckDuckGo (No AI)</div>
125125
<div class="select-dropdown">
126-
<div class="select-option" data-value="duckduckgo">DuckDuckGo</div>
126+
<div class="select-option" data-value="duckduckgo_noai">DuckDuckGo (No AI)</div>
127+
<div class="select-option" data-value="duckduckgo">DuckDuckGo (AI)</div>
127128
<div class="select-option" data-value="brave">Brave Search</div>
128129
<div class="select-option" data-value="ecosia">Ecosia</div>
129130
<div class="select-option" data-value="kagi">Kagi</div>
130131
<div class="select-option" data-value="startpage">Startpage</div>
131132
<div class="select-option" data-value="custom">Custom</div>
132133
</div>
133134
</div>
134-
<input type="hidden" id="search-engine" value="duckduckgo">
135+
<input type="hidden" id="search-engine" value="duckduckgo_noai">
135136
</div>
136137
</div>
137138

src/pages/static/js/settings.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ function loadDefaultSettings() {
564564
const keepTabsExpanded = document.getElementById('keep-tabs-expanded');
565565
const wallpaperSelector = document.getElementById('wallpaper-selector');
566566

567-
if (searchEngine) searchEngine.value = 'duckduckgo';
567+
if (searchEngine) searchEngine.value = 'duckduckgo_noai';
568568
if (themeToggle) themeToggle.value = 'dark';
569569
if (showClock) showClock.checked = true;
570570
if (verticalTabs) verticalTabs.checked = false;

src/search-engine.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export const BUILTIN_SEARCH_ENGINES = {
2+
duckduckgo_noai: "https://noai.duckduckgo.com/?ia=web&q=%s",
23
duckduckgo: "https://duckduckgo.com/?q=%s",
34
brave: "https://search.brave.com/search?q=%s",
45
ecosia: "https://www.ecosia.org/search?q=%s",

src/settings-manager.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ class SettingsManager {
454454

455455
validateSetting(key, value) {
456456
const validators = {
457-
searchEngine: (v) => ['duckduckgo', 'brave', 'ecosia', 'kagi', 'startpage', "custom"].includes(v),
457+
searchEngine: (v) => ['duckduckgo_noai', 'duckduckgo', 'brave', 'ecosia', 'kagi', 'startpage', "custom"].includes(v),
458458
customSearchTemplate: (v) => {
459459
if (typeof v !== "string" || v.length >= 2048) return false;
460460
try {
@@ -598,14 +598,15 @@ class SettingsManager {
598598

599599
getSearchEngineName() {
600600
const engineNames = {
601-
'duckduckgo': 'DuckDuckGo',
601+
'duckduckgo_noai': 'DuckDuckGo (No AI)',
602+
'duckduckgo': 'DuckDuckGo (AI)',
602603
'brave': 'Brave Search',
603604
'ecosia': 'Ecosia',
604605
'kagi': 'Kagi',
605606
'startpage': 'Startpage',
606607
'custom' : 'Custom'
607608
};
608-
return engineNames[this.settings.searchEngine] || 'DuckDuckGo';
609+
return engineNames[this.settings.searchEngine] || 'DuckDuckGo (No AI)';
609610
}
610611

611612
// Get wallpaper path for current setting

src/utils.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ function makeHttps(query) {
3131
return `https://${query}`;
3232
}
3333

34-
function makeSearch(query, engine = 'duckduckgo') {
35-
const template = BUILTIN_SEARCH_ENGINES[engine] || BUILTIN_SEARCH_ENGINES.duckduckgo;
34+
function makeSearch(query, engine = 'duckduckgo_noai') {
35+
const template = BUILTIN_SEARCH_ENGINES[engine] || BUILTIN_SEARCH_ENGINES.duckduckgo_noai;
3636
return template.replace("%s", encodeURIComponent(query));
3737
}
3838

@@ -53,7 +53,7 @@ function buildSearchUrl(template, term) {
5353
url = new URL(template);
5454
} catch {
5555
// Fallback if invalid URL
56-
return makeSearch(term, 'duckduckgo');
56+
return makeSearch(term, 'duckduckgo_noai');
5757
}
5858

5959
// (a) Fill first empty param, e.g. ?q=

0 commit comments

Comments
 (0)