Skip to content
This repository was archived by the owner on May 28, 2023. It is now read-only.

Commit c53191c

Browse files
Add Ad Blocking Option
1 parent c3bc821 commit c53191c

File tree

3 files changed

+42
-1
lines changed

3 files changed

+42
-1
lines changed

index.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ if (numCPUs > 0 && cluster.isPrimary) {
6868
try {
6969
if (!req.headers.cookie?.includes('allowads')) {
7070
for (let i in blacklisted)
71-
if (req.headers['x-bare-host']?.includes(blacklisted[i]))
71+
if (
72+
req.headers['x-bare-host']?.includes(blacklisted[i])
73+
)
7274
return res.end('Denied');
7375
}
7476
bare.routeRequest(req, res);
@@ -183,6 +185,24 @@ if (numCPUs > 0 && cluster.isPrimary) {
183185
return;
184186
}
185187
});
188+
app.get('/disable-ads', (req, res) => {
189+
if (req.headers.cookie?.includes('allowads')) {
190+
res.clearCookie('allowads');
191+
res.writeHead(302, {
192+
Location: '/settings',
193+
});
194+
res.end('Disabled ads');
195+
return;
196+
} else {
197+
res.writeHead(302, {
198+
Location: '/settings',
199+
'Set-Cookie':
200+
'allowads=allowads; Path=/; expires=Thu, 31 Dec 2099 23:59:59 GMT;',
201+
});
202+
res.end('Ads enabled');
203+
return;
204+
}
205+
});
186206
// Define the /analytics endpoint
187207
app.use((req, res) => {
188208
res.writeHead(302, {

public/js/settings.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,19 @@ function setClickoff(setValue, routechange) {
388388
document.addEventListener('visibilitychange', handleClickoff);
389389
}
390390
}
391+
function changeAds(value) {
392+
localStorage.setItem('adsallowed', value);
393+
window.location.href = '/disable-ads';
394+
}
395+
function setAds(setVal) {
396+
if (!localStorage.getItem('adsallowed')) {
397+
localStorage.setItem('adsallowed', false);
398+
}
399+
if (setVal === 'true') {
400+
let val = document.getElementById('adbehavior');
401+
val.value = localStorage.getItem('adsallowed');
402+
}
403+
}
391404
if (
392405
window.location.pathname == '/settings' ||
393406
window.location.pathname == '/settings/'
@@ -400,6 +413,7 @@ if (
400413
setBgeffect();
401414
setFullscreen();
402415
setClickoff('true', 'true');
416+
setAds('true');
403417
if (document.getElementById('bg-effect').value === 'none') {
404418
localStorage.setItem('autoChanged', 'null');
405419
localStorage.setItem('manualChanged', 'false');
@@ -416,6 +430,7 @@ if (
416430
setThemeElsewhere();
417431
setBgEffectElsewhere();
418432
setClickoff('false', 'true');
433+
setAds('false');
419434
} else {
420435
setTitleElsewhere();
421436
setFaviconElsewhere();
@@ -424,4 +439,5 @@ if (
424439
setBgEffectElsewhere();
425440
setFullScreenElsewhere();
426441
setClickoff('false', 'true');
442+
setAds('false');
427443
}

src/pages/settings.astro

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,11 @@ import Password from '../components/password';
162162
</select>
163163
<div class="divider mt-20">About:Blank Cloaking</div>
164164
<button class="button" id="cloak" onclick="aboutBlank()">Enable</button>
165+
<div class="divider mt-20">AD blocking behavior</div>
166+
<select class="dropdown" id="adbehavior" onchange="changeAds(this.value)">
167+
<option value="false">On</option>
168+
<option value="true">Off</option>
169+
</select>
165170
<div class="divider mt-20">Reset All Settings</div>
166171
<button class="button" id="cloak" onclick="resetAll()">Reset All</button>
167172
<div class="divider mt-20"></div>

0 commit comments

Comments
 (0)