chore: remove old code, minor changes

This commit is contained in:
00Fjongl 2025-02-06 19:42:14 -06:00
parent e9aa87d1e2
commit f139eb63c8
5 changed files with 9 additions and 319 deletions

View file

@ -1,135 +0,0 @@
import { paintSource, tryReadFile } from './randomization.mjs';
import loadTemplates from './templates.mjs';
import pkg from './routes.mjs';
import { readFile } from 'fs/promises';
import path from 'path';
import express from 'express';
import helmet from 'helmet';
import http from 'http';
import createRammerhead from 'rammerhead/src/server/index.js';
import wisp from 'wisp-server-node';
import { epoxyPath } from '@mercuryworkshop/epoxy-transport';
import { libcurlPath } from '@mercuryworkshop/libcurl-transport';
import { bareModulePath } from '@mercuryworkshop/bare-as-module3';
import { baremuxPath } from '@mercuryworkshop/bare-mux/node';
import { uvPath } from '@titaniumnetwork-dev/ultraviolet';
// import { createBareServer } from "@tomphttp/bare-server-node";
const config = JSON.parse(
await readFile(new URL('../config.json', import.meta.url))
),
{ pages, text404 } = pkg,
__dirname = path.resolve(),
port = process.env.PORT || config.port,
app = express(),
router = express.Router(),
// bare = createBareServer("/bare/"),
rh = createRammerhead();
const rammerheadScopes = [
'/rammerhead.js',
'/hammerhead.js',
'/transport-worker.js',
'/task.js',
'/iframe-task.js',
'/worker-hammerhead.js',
'/messaging',
'/sessionexists',
'/deletesession',
'/newsession',
'/editsession',
'/needpassword',
'/syncLocalStorage',
'/api/shuffleDict',
'/mainport',
];
const rammerheadSession = /^\/[a-z0-9]{32}/,
shouldRouteRh = (req) => {
const url = new URL(req.url, 'http://0.0.0.0');
return (
rammerheadScopes.includes(url.pathname) ||
rammerheadSession.test(url.pathname)
);
},
routeRhRequest = (req, res) => {
rh.emit('request', req, res);
},
routeRhUpgrade = (req, socket, head) => {
rh.emit('upgrade', req, socket, head);
},
server = http.createServer((req, res) => {
/*
if (bare.shouldRoute(req)) {
bare.routeRequest(req, res);
} else
*/
if (shouldRouteRh(req)) {
routeRhRequest(req, res);
} else {
app(req, res);
}
});
server.on('upgrade', (req, socket, head) => {
/*
if (bare.shouldRoute(req)) {
bare.routeUpgrade(req, socket, head);
} else
*/
if (shouldRouteRh(req)) {
routeRhUpgrade(req, socket, head);
} else if (req.url.endsWith('/wisp/')) {
wisp.routeRequest(req, socket, head);
}
});
// Apply Helmet middleware for security.
app.use(
helmet({
contentSecurityPolicy: false, // Disable CSP
})
);
/* All website files are stored in the /views directory.
* This takes one of those files and displays it for a site visitor.
* Query strings like /?j are converted into paths like /views/hidden.html
* back here. Which query string converts to what is defined in routes.mjs.
*/
router.get('/', async (req, res) =>
res.send(
paintSource(
loadTemplates(
tryReadFile(
path.join(
__dirname,
'views',
// Return the error page if the query is not found in
// routes.mjs. Also set index as the default page.
'/?'.indexOf(req.url)
? pages[Object.keys(req.query)[0]] || 'error.html'
: pages.index
)
)
)
)
)
);
app.use(router);
app.use(express.static(path.join(__dirname, 'views')));
app.use('/uv/', express.static(uvPath));
app.use('/epoxy/', express.static(epoxyPath));
app.use('/libcurl/', express.static(libcurlPath));
app.use('/bareasmodule/', express.static(bareModulePath));
app.use('/baremux/', express.static(baremuxPath));
app.disable('x-powered-by');
// Redundant code since 404 is handled elsewhere; left here as insurance.
app.use((req, res) => {
res.status(404).send(paintSource(loadTemplates(text404)));
});
server.listen(port);
console.log('Holy Unblocker is listening on port ' + port + '.');

View file

@ -79,7 +79,7 @@ const config = Object.freeze(
insertCharset(hutaoInsert(versionInsert(insertCooking(cacheBusting(str))))), insertCharset(hutaoInsert(versionInsert(insertCooking(cacheBusting(str))))),
// Use this instead of text404 for a preloaded error page. // Use this instead of text404 for a preloaded error page.
preloaded404 = paintSource(text404), preloaded404 = paintSource(text404),
// Grab the text content of a file. Uses the root directory if no base is supplied. // Grab the text content of a file. Use the root directory if no base is supplied.
tryReadFile = (file, baseUrl = new URL('../', import.meta.url)) => { tryReadFile = (file, baseUrl = new URL('../', import.meta.url)) => {
file = new URL(file, baseUrl); file = new URL(file, baseUrl);
return existsSync(file) return existsSync(file)
@ -89,41 +89,3 @@ const config = Object.freeze(
) )
: preloaded404; : preloaded404;
}; };
/*
All of this is now old code.
The newer versions of these functions are directly above.
function randomListItem(lis) {
return lis[Math.floor(Math.random() * lis.length)];
}
function insertCharset(str) {
return str.replace(/&#173;|&#8203;|&shy;|<wbr>/g, function() { return randomListItem(charRandom); });
}
function hutaoInsert(str) {
return str.replace(/<!--HUTAOWOA-->/g, function() { return randomListItem(splashRandom); });
}
function insertCooking(str) {
return str.replace(/<!-- IMPORTANT-HUCOOKINGINSERT-DONOTDELETE -->/g, function() { return '<span style="display: none;" data-fact="' + randomListItem(vegetables) + '" data-type="' + randomListItem(vegetables) + '">' + randomListItem(cookingInserts) + '</span>'; }); // this needs to be inside a function, so that not every string is the same
}
function cacheBusting(str) {
for (var item of Object.entries(cacheBustList)) {
str = str.replace(new RegExp(item[0], "g"), item[1]);
}
return str;
}
export function paintSource(str) {
return insertCharset(hutaoInsert(insertCooking(cacheBusting(str))));
}
export function tryReadFile(file) {
return existsSync(file) ? readFileSync(file, 'utf8') : text404;
}
*/

View file

@ -1,4 +1,4 @@
import { readFileSync } from 'fs'; import { readFileSync } from 'node:fs';
const pages = { const pages = {
// If you are trying to add pages or assets in the root folder and // If you are trying to add pages or assets in the root folder and

View file

@ -61,7 +61,7 @@ const setAuthCookie = (s, lax) => {
/* OMNIBOX */ /* OMNIBOX */
// Search engine is set to Bing. Intended to work just like the usual // Search engine is set to DuckDuckGo. Intended to work just like the usual
// bar at the top of a browser. // bar at the top of a browser.
const sx = 'duckduckgo.com/?q=', const sx = 'duckduckgo.com/?q=',
/* /*
@ -75,11 +75,11 @@ const sx = 'duckduckgo.com/?q=',
// Another omnibox function. Unsure if the version above is needed. // Another omnibox function. Unsure if the version above is needed.
search = (input, template = `https://${sx}%s`) => { search = (input, template = `https://${sx}%s`) => {
try { try {
// Return the input if it is already a valid URL. // Return the input if it is already a valid URL.
// eg: https://example.com, https://example.com/test?q=param // eg: https://example.com, https://example.com/test?q=param
return new URL(input) + ''; return new URL(input) + '';
} catch (e) { } catch (e) {
// Continue if it is invalid. // Continue if it is invalid.
} }
try { try {
@ -241,9 +241,9 @@ const RammerheadEncode = async (baseUrl) => {
}); });
}, },
}, },
/* Organize Rammerhead sessions via the browser's local storage. /* Organize Rammerhead sessions via the browser's local storage.
* Local data consists of session creation timestamps and session IDs. * Local data consists of session creation timestamps and session IDs.
* The rest of the data is stored on the server. * The rest of the data is stored on the server.
*/ */
localStorageKey = 'rammerhead_sessionids', localStorageKey = 'rammerhead_sessionids',
localStorageKeyDefault = 'rammerhead_default_sessionid', localStorageKeyDefault = 'rammerhead_default_sessionid',

View file

@ -240,140 +240,3 @@ if (document.getElementById('csel')) {
}); });
} }
})(); })();
/* -----------------------------------------------
/* Original code written by OlyB
/* -----------------------------------------------
(function() {
let date = new Date();
date.setFullYear(date.getFullYear() + 100);
date = date.toUTCString();
let csel = document.getElementById("csel");
function setCookie(name, value) {
document.cookie = name + "=" + encodeURIComponent(value) + "; expires=" + date + "; ";
}
function removeCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:01 GMT; ";
}
async function readCookie(name) {
let cookie = document.cookie.split("; ");
let cookies = {};
for (let i = 0; i < cookie.length; i++) {
let p = cookie[i].split("=");
cookies[p[0]] = p[1];
}
return decodeURIComponent(cookies[name]);
}
function pageTitle(value) {
let tag = document.getElementsByTagName("title")[0] || document.createElement("title");
tag.innerHTML = value;
document.head.appendChild(tag);
}
function pageIcon(value) {
let tag = document.querySelector("link[rel*='icon']") || document.createElement("link");
tag.rel = "icon";
tag.href = value;
document.head.appendChild(tag);
}
function setTitle(value) {
pageTitle(value);
setCookie("HBTitle", value);
}
function setIcon(value) {
pageIcon(value);
setCookie("HBIcon", value);
}
function pageHideAds() {
document.querySelectorAll(".ad").forEach(n => n.style.display = "none");
}
function pageShowAds() {
document.querySelectorAll(".ad").forEach(n => n.style.display = "block");
}
function hideAds() {
pageHideAds();
setCookie("HBHideAds", "true");
}
// Ghetto Default Disable Ads
setCookie("HBHideAds", "true");
function showAds() {
pageShowAds();
removeCookie("HBHideAds");
}
readCookie("HBTitle").then(s => (s != "undefined") && pageTitle(s));
readCookie("HBIcon").then(s => (s != "undefined") && pageIcon(s));
readCookie("HBHideAds").then(s => (s != "undefined") && (function() { pageHideAds(); (document.getElementById("hideads") || {}).checked = "true"; })());
if (csel) {
csel.innerHTML =
decodeURIComponent(atob("JTNDcCUyMGNsYXNzJTNEJTIyY3NlbHRpdGxlJTIyJTNFVGFiJTIwQ2xvYWslM0MlMkZwJTNFJTBBJTNDcCUyMGNsYXNzJTNEJTIyY3NlbGxhYmVsJTIyJTNFQ2hhbmdlJTIwdGhlJTIwdGl0bGUlM0ElM0MlMkZwJTNFJTBBJTNDZm9ybSUyMGNsYXNzJTNEJTIyY3NlbGZvcm0lMjIlMjBpZCUzRCUyMnRpdGxlZm9ybSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2lucHV0JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBwbGFjZWhvbGRlciUzRCUyMlRhYiUyMFRpdGxlJTIyJTIwc3BlbGxjaGVjayUzRCUyMmZhbHNlJTIyJTNFJTNDaW5wdXQlMjBjbGFzcyUzRCUyMmNzZWxidXR0b24lMjIlMjB0eXBlJTNEJTIyc3VibWl0JTIyJTIwdmFsdWUlM0QlMjJBcHBseSUyMiUzRSUwQSUzQyUyRmZvcm0lM0UlMEElM0NwJTIwY2xhc3MlM0QlMjJjc2VsbGFiZWwlMjIlM0VDaGFuZ2UlMjB0aGUlMjAlM0NhJTIwaHJlZiUzRCUyMiUyRiUzRmklMjIlM0VpY29uJTNDJTJGYSUzRSUzQSUzQyUyRnAlM0UlMEElM0Nmb3JtJTIwY2xhc3MlM0QlMjJjc2VsZm9ybSUyMiUyMGlkJTNEJTIyaWNvbmZvcm0lMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NpbnB1dCUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwcGxhY2Vob2xkZXIlM0QlMjJJY29uJTIwVVJMJTIyJTIwc3BlbGxjaGVjayUzRCUyMmZhbHNlJTIyJTNFJTNDaW5wdXQlMjBjbGFzcyUzRCUyMmNzZWxidXR0b24lMjIlMjB0eXBlJTNEJTIyc3VibWl0JTIyJTIwdmFsdWUlM0QlMjJBcHBseSUyMiUzRSUwQSUzQyUyRmZvcm0lM0UlMEElM0NpbnB1dCUyMGlkJTNEJTIyY3NlbHJlc2V0JTIyJTIwY2xhc3MlM0QlMjJjc2VsYnV0dG9uJTIyJTIwdHlwZSUzRCUyMmJ1dHRvbiUyMiUyMHZhbHVlJTNEJTIyUmVzZXQlMjIlM0UlMEElM0NpbnB1dCUyMGlkJTNEJTIyY3NlbGFiJTIyJTIwY2xhc3MlM0QlMjJjc2VsYnV0dG9uJTIyJTIwdHlwZSUzRCUyMmJ1dHRvbiUyMiUyMHZhbHVlJTNEJTIyYWJvdXQlM0FibGFuayUyMiUzRSUwQSUzQ3AlMjBjbGFzcyUzRCUyMmNzZWxsYWJlbCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2lucHV0JTIwaWQlM0QlMjJoaWRlYWRzJTIyJTIwdHlwZSUzRCUyMmNoZWNrYm94JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDc3BhbiUzRUhpZGUlMjBBZHMlM0MlMkZzcGFuJTNFJTBBJTNDJTJGcCUzRSUwQSUzQ3AlM0VBZHMlMjBoZWxwJTIwc3VwcG9ydCUyMEglMjYlMjMxNzMlM0JvJTI2JTIzMTczJTNCbHklMjBVJTI2JTIzMTczJTNCbmIlMjYlMjMxNzMlM0Jsb2NrJTI2JTIzMTczJTNCZXIhJTNDJTJGcCUzRQ=="));
document.getElementById("titleform").addEventListener("submit", function(e) {
e.preventDefault();
if (this.firstElementChild.value) {
setTitle(this.firstElementChild.value);
this.firstElementChild.value = "";
} else {
alert("Please provide a title.");
}
}, false);
document.getElementById("iconform").addEventListener("submit", function(e) {
e.preventDefault();
if (this.firstElementChild.value) {
setIcon(this.firstElementChild.value);
this.firstElementChild.value = "";
} else {
alert("Please provide an icon URL.");
}
}, false);
document.getElementById("cselreset").addEventListener("click", function() {
if (confirm("Reset the title and icon to default?")) {
removeCookie("HBTitle");
removeCookie("HBIcon");
pageTitle("H&shy;o&shy;ly Un&shy;blo&shy;ck&shy;er");
pageIcon("assets/img/icon.png");
}
}, false);
document.getElementById("cselab").addEventListener("click", function () {
var win = window.open()
var url = `${window.location.href}`
var iframe = win.document.createElement('iframe')
iframe.style.width = "100%";
iframe.style.height = "100%";
iframe.style.border = "none";
iframe.style.overflow = "hidden";
iframe.style.margin = "0";
iframe.style.padding = "0";
iframe.style.position = "fixed";
iframe.style.top = "0";
iframe.style.bottom = "0";
iframe.style.left = "0";
iframe.style.right = "0";
iframe.src = url;
win.document.body.appendChild(iframe)
});
document.getElementById("hideads").addEventListener("change", function(e) {
e.target.checked ? hideAds() : showAds();
}, false);
}
})();
*/