mirror of
https://github.com/QuiteAFancyEmerald/Holy-Unblocker.git
synced 2025-05-12 11:30:01 -04:00
Massive Cleanup
This commit is contained in:
parent
81a7ab1d96
commit
d2547cf7b2
33 changed files with 373 additions and 5048 deletions
26
Gruntfile.js
26
Gruntfile.js
|
@ -1,26 +0,0 @@
|
|||
module.exports = function(grunt) {
|
||||
grunt.initConfig({
|
||||
pkg: grunt.file.readJSON('package.json'),
|
||||
|
||||
concat: {
|
||||
dist: {
|
||||
src: ['src/**/*.js'],
|
||||
dest: 'dist/gameboy.js'
|
||||
}
|
||||
},
|
||||
|
||||
uglify: {
|
||||
dist: {
|
||||
files: {
|
||||
"dist/gameboy.min.js": ["dist/gameboy.js"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
grunt.loadNpmTasks('grunt-contrib-concat');
|
||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||
|
||||
grunt.registerTask('default', ['concat', 'uglify']);
|
||||
};
|
21
LICENSE
Normal file
21
LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2020 TheEmeraldStarr
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
591
app.js
591
app.js
|
@ -1,603 +1,28 @@
|
|||
const {
|
||||
checkServerIdentity
|
||||
} = require('tls');
|
||||
|
||||
const express = require('express'),
|
||||
const
|
||||
express = require('express'),
|
||||
app = express(),
|
||||
http = require('http'),
|
||||
https = require('https'),
|
||||
fs = require('fs'),
|
||||
querystring = require('querystring'),
|
||||
session = require('express-session'),
|
||||
sanitizer = require('sanitizer'),
|
||||
websocket = require('./ws-proxy.js'),
|
||||
fetch = require('node-fetch'),
|
||||
path = require("path");
|
||||
path = require('path'),
|
||||
char_insert = require('./charinsert.js');
|
||||
|
||||
const config = JSON.parse(fs.readFileSync('./config.json', {
|
||||
encoding: 'utf8'
|
||||
}));
|
||||
if (!config.prefix.startsWith('/')) {
|
||||
config.prefix = `/${config.prefix}`;
|
||||
}
|
||||
|
||||
if (!config.prefix.endsWith('/')) {
|
||||
config.prefix = `${config.prefix}/`;
|
||||
}
|
||||
|
||||
let server;
|
||||
let server_protocol;
|
||||
const server_options = {
|
||||
key: fs.readFileSync('./ssl/default.key'),
|
||||
cert: fs.readFileSync('./ssl/default.crt')
|
||||
}
|
||||
if (config.ssl == true) {
|
||||
server = https.createServer(server_options, app);
|
||||
server_protocol = 'https://';
|
||||
} else {
|
||||
server = http.createServer(app);
|
||||
server_protocol = 'http://';
|
||||
};
|
||||
|
||||
// WebSocket Proxying
|
||||
websocket(server);
|
||||
|
||||
console.log(`Alloy Proxy now running on ${server_protocol}0.0.0.0:${config.port}! Proxy prefix is "${config.prefix}"!`);
|
||||
server = http.createServer(app);
|
||||
server.listen(process.env.PORT || config.port);
|
||||
|
||||
btoa = (str) => {
|
||||
str = new Buffer.from(str).toString('base64');
|
||||
return str;
|
||||
};
|
||||
|
||||
atob = (str) => {
|
||||
str = new Buffer.from(str, 'base64').toString('utf-8');
|
||||
return str;
|
||||
};
|
||||
|
||||
rewrite_url = (dataURL, option) => {
|
||||
var websiteURL;
|
||||
var websitePath;
|
||||
if (option == 'decode') {
|
||||
websiteURL = atob(dataURL.split('/').splice(0, 1).join('/'));
|
||||
websitePath = '/' + dataURL.split('/').splice(1).join('/');
|
||||
} else {
|
||||
websiteURL = btoa(dataURL.split('/').splice(0, 3).join('/'));
|
||||
websitePath = '/' + dataURL.split('/').splice(3).join('/');
|
||||
}
|
||||
if (websitePath == '/') {
|
||||
return `${websiteURL}`;
|
||||
} else return `${websiteURL}${websitePath}`;
|
||||
};
|
||||
|
||||
app.use(session({
|
||||
secret: 'alloy',
|
||||
saveUninitialized: true,
|
||||
resave: true,
|
||||
/*cookieName: '__alloy_cookie_auth=yes',
|
||||
duration: 30 * 60 * 1000,
|
||||
activeDuration: 5 * 60 * 1000 */
|
||||
}));
|
||||
|
||||
// We made our own version of body-parser instead, due to issues.
|
||||
app.use((req, res, next) => {
|
||||
if (req.method == 'POST') {
|
||||
req.raw_body = '';
|
||||
req.on('data', chunk => {
|
||||
req.raw_body += chunk.toString(); // convert buffer to string
|
||||
});
|
||||
req.on('end', () => {
|
||||
req.str_body = req.raw_body;
|
||||
try {
|
||||
req.body = JSON.parse(req.raw_body);
|
||||
} catch (err) {
|
||||
req.body = {}
|
||||
}
|
||||
next();
|
||||
});
|
||||
} else return next();
|
||||
});
|
||||
|
||||
app.use(`${config.prefix}utils/`, async (req, res, next) => {
|
||||
if (req.url.startsWith('/assets/')) {
|
||||
res.sendFile(__dirname + '/utils' + req.url);
|
||||
}
|
||||
if (req.query.url) {
|
||||
let url = atob(req.query.url);
|
||||
if (url.startsWith('https://') || url.startsWith('http://')) {
|
||||
url = url;
|
||||
} else if (url.startsWith('//')) {
|
||||
url = 'http:' + url;
|
||||
} else {
|
||||
url = 'http://' + url;
|
||||
}
|
||||
return res.redirect(307, config.prefix + rewrite_url(url));
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
//Cookie Auth
|
||||
|
||||
app.use(checkAuth);
|
||||
|
||||
app.use(auth);
|
||||
|
||||
function auth(req, res, next) {
|
||||
|
||||
let user = new User({
|
||||
cookieName: '__alloy_cookie_auth=yes'
|
||||
});
|
||||
|
||||
if (!req.signedCookies.user) {
|
||||
var authHeader = req.headers.authorization;
|
||||
if (!authHeader) {
|
||||
var err = new Error('You are not authenticated!');
|
||||
err.status = 401;
|
||||
next(err);
|
||||
return;
|
||||
}
|
||||
var auth = new Buffer(authHeader.split(' ')[1], 'base64').toString().split(':');
|
||||
var pass = auth[1];
|
||||
if (user == '__alloy_cookie_auth=yes') {
|
||||
res.cookie('user', 'admin', {
|
||||
signed: true
|
||||
});
|
||||
next(); // authorized
|
||||
} else {
|
||||
var err = new Error('You are not authenticated!');
|
||||
err.status = 401;
|
||||
next(err);
|
||||
}
|
||||
} else {
|
||||
if (req.signedCookies.user === 'admin') {
|
||||
next();
|
||||
} else {
|
||||
var err = new Error('You are not authenticated!');
|
||||
err.status = 401;
|
||||
next(err);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Check the auth of the routes => middleware functions
|
||||
function checkAuth(req, res, next) {
|
||||
console.log('checkAuth ' + req.url);
|
||||
// don 't serve /secure to those not logged in => /secure if for those who are logged in
|
||||
// you should add to this list, for each and every secure url
|
||||
if (req.url.indexOf(`${config.prefix}session/`) === 0 && (!req.session || !req.session.authenticated)) {
|
||||
res.render(fs.readFileSync('./utils/error/error.html', 'utf8').toString().replace('%ERROR%', `Error 401: The website '${sanitizer.sanitize(proxy.url.hostname)}' is not permitted!`), {
|
||||
status: 403
|
||||
});
|
||||
return;
|
||||
}
|
||||
xt();
|
||||
} */
|
||||
|
||||
app.post(`${config.prefix}session/`, async (req, res, next) => {
|
||||
let url = querystring.parse(req.raw_body).url;
|
||||
if (url.startsWith('//')) {
|
||||
url = 'http:' + url;
|
||||
} else if (url.startsWith('https://') || url.startsWith('http://')) {
|
||||
url = url
|
||||
} else {
|
||||
url = 'http://' + url
|
||||
};
|
||||
|
||||
/* let cookies = {};
|
||||
if (request.headers.cookie !== undefined) {
|
||||
cookies = cookie.parse(request.headers.cookie);
|
||||
}
|
||||
|
||||
console.log(cookies);
|
||||
response.writeHead(200, {
|
||||
'SET-Cookie': ['__alloy_cookie_auth=yes',
|
||||
`Permanent=Cookies; Max-Age=${60*60*24*30}`,
|
||||
'Secure=Secure; Secure',
|
||||
'HttpOnly=HttpOnly; HttpOnly',
|
||||
'Path=Path; Path=/cookie'
|
||||
]
|
||||
})
|
||||
response.end('Coookie!!'); */
|
||||
|
||||
req.session.authenticated = true;
|
||||
});
|
||||
|
||||
app.use(config.prefix, async (req, res, next) => {
|
||||
var proxy = {};
|
||||
proxy.url = rewrite_url(req.url.slice(1), 'decode');
|
||||
proxy.url = {
|
||||
href: proxy.url,
|
||||
hostname: proxy.url.split('/').splice(2).splice(0, 1).join('/'),
|
||||
origin: proxy.url.split('/').splice(0, 3).join('/'),
|
||||
encoded_origin: btoa(proxy.url.split('/').splice(0, 3).join('/')),
|
||||
path: '/' + proxy.url.split('/').splice(3).join('/'),
|
||||
protocol: proxy.url.split('\:').splice(0, 1).join(''),
|
||||
}
|
||||
|
||||
proxy.url.encoded_origin = btoa(proxy.url.origin);
|
||||
|
||||
proxy.requestHeaders = req.headers;
|
||||
proxy.requestHeaders['host'] = proxy.url.hostname;
|
||||
if (proxy.requestHeaders['referer']) {
|
||||
let referer = '/' + String(proxy.requestHeaders['referer']).split('/').splice(3).join('/');
|
||||
|
||||
referer = rewrite_url(referer.replace(config.prefix, ''), 'decode');
|
||||
|
||||
if (referer.startsWith('https://') || referer.startsWith('http://')) {
|
||||
referer = referer;
|
||||
|
||||
} else referer = proxy.url.href;
|
||||
|
||||
proxy.requestHeaders['referer'] = referer;
|
||||
}
|
||||
|
||||
|
||||
if (proxy.requestHeaders['origin']) {
|
||||
let origin = '/' + String(proxy.requestHeaders['origin']).split('/').splice(3).join('/');
|
||||
|
||||
origin = rewrite_url(origin.replace(config.prefix, ''), 'decode');
|
||||
|
||||
if (origin.startsWith('https://') || origin.startsWith('http://')) {
|
||||
|
||||
origin = origin.split('/').splice(0, 3).join('/');
|
||||
|
||||
} else origin = proxy.url.origin;
|
||||
|
||||
proxy.requestHeaders['origin'] = origin;
|
||||
}
|
||||
if (proxy.requestHeaders.cookie) {
|
||||
delete proxy.requestHeaders.cookie;
|
||||
}
|
||||
const httpAgent = new http.Agent({
|
||||
keepAlive: true
|
||||
});
|
||||
const httpsAgent = new https.Agent({
|
||||
rejectUnauthorized: false,
|
||||
keepAlive: true
|
||||
});
|
||||
proxy.options = {
|
||||
method: req.method,
|
||||
headers: proxy.requestHeaders,
|
||||
redirect: 'manual',
|
||||
agent: function(_parsedURL) {
|
||||
if (_parsedURL.protocol == 'http:') {
|
||||
return httpAgent;
|
||||
} else {
|
||||
return httpsAgent;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (req.method == 'POST') {
|
||||
proxy.options.body = req.str_body;
|
||||
}
|
||||
if (proxy.url.hostname == 'discord.com' && proxy.url.path == '/') {
|
||||
return res.redirect(307, config.prefix + rewrite_url('https://discord.com/login'));
|
||||
};
|
||||
|
||||
if (proxy.url.hostname == 'www.reddit.com') {
|
||||
return res.redirect(307, config.prefix + rewrite_url('https://old.reddit.com'));
|
||||
};
|
||||
|
||||
if (!req.url.slice(1).startsWith(`${proxy.url.encoded_origin}/`)) {
|
||||
return res.redirect(307, config.prefix + proxy.url.encoded_origin + '/');
|
||||
};
|
||||
|
||||
const blocklist = JSON.parse(fs.readFileSync('./blocklist.json', {
|
||||
encoding: 'utf8'
|
||||
}));
|
||||
|
||||
let is_blocked = false;
|
||||
|
||||
Array.from(blocklist).forEach(blocked_hostname => {
|
||||
if (proxy.url.hostname == blocked_hostname) {
|
||||
is_blocked = true;
|
||||
}
|
||||
});
|
||||
|
||||
if (is_blocked == true) {
|
||||
return res.send(fs.readFileSync('./utils/error/error.html', 'utf8').toString().replace('%ERROR%', `Error 401: The website '${sanitizer.sanitize(proxy.url.hostname)}' is not permitted!`))
|
||||
}
|
||||
|
||||
proxy.response = await fetch(proxy.url.href, proxy.options).catch(err => res.send(fs.readFileSync('./utils/error/error.html', 'utf8').toString().replace('%ERROR%', `Error 400: Could not make request to '${sanitizer.sanitize(proxy.url.href)}'!`)));
|
||||
|
||||
if (typeof proxy.response.buffer != 'function') return;
|
||||
|
||||
proxy.buffer = await proxy.response.buffer();
|
||||
|
||||
proxy.content_type = 'text/plain';
|
||||
|
||||
proxy.response.headers.forEach((e, i, a) => {
|
||||
if (i == 'content-type') proxy.content_type = e;
|
||||
});
|
||||
if (proxy.content_type == null || typeof proxy.content_type == 'undefined') proxy.content_type = 'text/html';
|
||||
|
||||
proxy.sendResponse = proxy.buffer;
|
||||
|
||||
// Parsing the headers from the response to remove square brackets so we can set them as the response headers.
|
||||
proxy.headers = Object.fromEntries(
|
||||
Object.entries(JSON.parse(JSON.stringify(proxy.response.headers.raw())))
|
||||
.map(([key, val]) => [key, val[0]])
|
||||
);
|
||||
|
||||
// Parsing all the headers to remove all of the bad headers that could affect proxies performance.
|
||||
Object.entries(proxy.headers).forEach(([header_name, header_value]) => {
|
||||
if (header_name.startsWith('content-encoding') || header_name.startsWith('x-') || header_name.startsWith('cf-') || header_name.startsWith('strict-transport-security') || header_name.startsWith('content-security-policy')) {
|
||||
delete proxy.headers[header_name];
|
||||
}
|
||||
});
|
||||
|
||||
// If theres a location for a redirect in the response, then the proxy will get the response location then redirect you to the proxied version of the url.
|
||||
if (proxy.response.headers.get('location')) {
|
||||
return res.redirect(307, config.prefix + rewrite_url(String(proxy.response.headers.get('location'))));
|
||||
}
|
||||
|
||||
res.status(proxy.response.status);
|
||||
res.set(proxy.headers);
|
||||
res.contentType(proxy.content_type);
|
||||
if (proxy.content_type.startsWith('text/html')) {
|
||||
req.session.url = proxy.url.origin;
|
||||
proxy.sendResponse = proxy.sendResponse.toString()
|
||||
.replace(/integrity="(.*?)"/gi, '')
|
||||
.replace(/nonce="(.*?)"/gi, '')
|
||||
.replace(/(href|src|poster|data|action|srcset)="\/\/(.*?)"/gi, `$1` + `="http://` + `$2` + `"`)
|
||||
.replace(/(href|src|poster|data|action|srcset)='\/\/(.*?)'/gi, `$1` + `='http://` + `$2` + `'`)
|
||||
.replace(/(href|src|poster|data|action|srcset)="\/(.*?)"/gi, `$1` + `="${config.prefix}${proxy.url.encoded_origin}/` + `$2` + `"`)
|
||||
.replace(/(href|src|poster|data|action|srcset)='\/(.*?)'/gi, `$1` + `='${config.prefix}${proxy.url.encoded_origin}/` + `$2` + `'`)
|
||||
.replace(/'(https:\/\/|http:\/\/)(.*?)'/gi, function(str) {
|
||||
str = str.split(`'`).slice(1).slice(0, -1).join(``);
|
||||
return `'${config.prefix}${rewrite_url(str)}'`
|
||||
})
|
||||
.replace(/"(https:\/\/|http:\/\/)(.*?)"/gi, function(str) {
|
||||
str = str.split(`"`).slice(1).slice(0, -1).join(``);
|
||||
return `"${config.prefix}${rewrite_url(str)}"`
|
||||
})
|
||||
.replace(/(window|document).location.href/gi, `"${proxy.url.href}"`)
|
||||
.replace(/(window|document).location.hostname/gi, `"${proxy.url.hostname}"`)
|
||||
.replace(/(window|document).location.pathname/gi, `"${proxy.url.path}"`)
|
||||
.replace(/location.href/gi, `"${proxy.url.href}"`)
|
||||
.replace(/location.hostname/gi, `"${proxy.url.hostname}"`)
|
||||
.replace(/location.pathname/gi, `"${proxy.url.path}"`)
|
||||
.replace(/<html(.*?)>/gi, `<html` + '$1' + `><script src="${config.prefix}utils/assets/inject.js" id="_alloy_data" prefix="${config.prefix}" url="${btoa(proxy.url.href)}"></script>`);
|
||||
|
||||
// Temp hotfix for Youtube search bar until my script injection can fix it.
|
||||
|
||||
if (proxy.url.hostname == 'www.youtube.com') {
|
||||
proxy.sendResponse = proxy.sendResponse.replace(/\/results/gi, `${config.prefix}${proxy.url.encoded_origin}/results`);
|
||||
};
|
||||
} else if (proxy.content_type.startsWith('text/css')) {
|
||||
proxy.sendResponse = proxy.sendResponse.toString()
|
||||
.replace(/url\("\/\/(.*?)"\)/gi, `url("http://` + `$1` + `")`)
|
||||
.replace(/url\('\/\/(.*?)'\)/gi, `url('http://` + `$1` + `')`)
|
||||
.replace(/url\(\/\/(.*?)\)/gi, `url(http://` + `$1` + `)`)
|
||||
.replace(/url\("\/(.*?)"\)/gi, `url("${config.prefix}${proxy.url.encoded_origin}/` + `$1` + `")`)
|
||||
.replace(/url\('\/(.*?)'\)/gi, `url('${config.prefix}${proxy.url.encoded_origin}/` + `$1` + `')`)
|
||||
.replace(/url\(\/(.*?)\)/gi, `url(${config.prefix}${proxy.url.encoded_origin}/` + `$1` + `)`)
|
||||
.replace(/"(https:\/\/|http:\/\/)(.*?)"/gi, function(str) {
|
||||
str = str.split(`"`).slice(1).slice(0, -1).join(``);
|
||||
return `"${config.prefix}${rewrite_url(str)}"`
|
||||
})
|
||||
.replace(/'(https:\/\/|http:\/\/)(.*?)'/gi, function(str) {
|
||||
str = str.split(`'`).slice(1).slice(0, -1).join(``);
|
||||
return `'${config.prefix}${rewrite_url(str)}'`
|
||||
})
|
||||
.replace(/\((https:\/\/|http:\/\/)(.*?)\)/gi, function(str) {
|
||||
str = str.split(`(`).slice(1).join(``).split(')').slice(0, -1).join('');
|
||||
return `(${config.prefix}${rewrite_url(str)})`
|
||||
});
|
||||
|
||||
};
|
||||
// We send the response from the server rewritten.
|
||||
res.send(proxy.sendResponse);
|
||||
});
|
||||
|
||||
app.post('/', async (req, res) => {
|
||||
|
||||
app.post('/', async(req, res) => {
|
||||
switch (req.url) {
|
||||
case '/':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'index.html'), 'utf8'));
|
||||
}
|
||||
});
|
||||
|
||||
/* app.get('/'), async (req, res) => {
|
||||
charInsert = str => {
|
||||
var output = '';
|
||||
|
||||
str.split(' ').forEach((word, word_index) => (word.split('').forEach((chr, chr_index) => output += (!chr_index || chr_index == word.length) ? '<span style="white-space: nowrap">&#' + chr.charCodeAt() + '</span>' : '<span style="white-space: nowrap">​<span style="display:none;font-size:0px;">​...</span>&#' + chr.charCodeAt() + '​</span>'), output += word_index != str.split(' ').length - 1 ? ' ' : ''));
|
||||
|
||||
return output
|
||||
},
|
||||
result = fs.readFileSync(path.join(__dirname, 'public', 'index.html'), 'utf8').replace(/charinsert{([\s\S]*?)}/g, (match, str) => charInsert(str));
|
||||
|
||||
fs.writeFileSync(path.join(__dirname, 'public', 'page.html'), result);
|
||||
}
|
||||
|
||||
|
||||
app.get('/'), async (req, res) => {
|
||||
charInsert = str => {
|
||||
var output = '';
|
||||
|
||||
str.split(' ').forEach((word, word_index) => (word.split('').forEach((chr, chr_index) => output += (!chr_index || chr_index == word.length) ? '<span style="white-space: nowrap">&#' + chr.charCodeAt() + '</span>' : '<span style="white-space: nowrap">​<span style="display:none;font-size:0px;">​...</span>&#' + chr.charCodeAt() + '​</span>'), output += word_index != str.split(' ').length - 1 ? ' ' : ''));
|
||||
|
||||
return output
|
||||
},
|
||||
result = fs.readFileSync(path.join(__dirname, 'public', 'page.html'), 'utf8').replace(/charinsert{([\s\S]*?)}/g, (match, str) => charInsert(str));
|
||||
|
||||
fs.writeFileSync(path.join(__dirname, 'public', 'index.html'), result);
|
||||
} */
|
||||
|
||||
//Querystrings
|
||||
app.get('/', async (req, res, t) => res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages,index.html,info.html,archive,archive,hidden.html'.split(',')['/,/?in,/?fg,/?rr,/?j'.split(',').indexOf(req.url) + 1], ',surf.html,f.html,run.html,frames,redirects3,proxnav5,nav7'.replace(/,[^,]+/g, e => ([] + e.match(/\D+/)).repeat(+e.match(/\d+/) + 1)).split(',')[t = 'z,fg,rr,k,dd,n,yh,ym,a,b,y,e,d,p,c,f,g,h,i,m,t,x'.split(',').indexOf(req.url.slice(2)) + 1], (t = ',,,,krunker,discordprox,chatbox,ythub,ytmobile,alloy,node,youtube,pydodge,discordhub,pmprox,credits,flash,gtools,games5,icons,gba,terms,bookmarklets'.split(',')[t]) && t + '.html'), 'utf8')));
|
||||
//Querystrings Old
|
||||
/* app.get('/', async (req, res) => {
|
||||
app.get('/', async(req, res, t) => res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages,index.html,info.html,archive,archive,hidden.html'.split(',')['/,/?in,/?fg,/?rr,/?j'.split(',').indexOf(req.url) + 1], ',surf.html,f.html,run.html,frames,redirects3,proxnav5,nav7'.replace(/,[^,]+/g, e => ([] + e.match(/\D+/)).repeat(+e.match(/\d+/) + 1)).split(',')[t = 'z,fg,rr,k,dd,n,yh,ym,a,b,y,e,d,p,c,f,g,h,i,m,t,x'.split(',').indexOf(req.url.slice(2)) + 1], (t = ',,,,krunker,discordprox,chatbox,ythub,ytmobile,alloy,node,youtube,pydodge,discordhub,pmprox,credits,flash,gtools,games5,icons,gba,terms,bookmarklets'.split(',')[t]) && t + '.html'), 'utf8')));
|
||||
|
||||
|
||||
|
||||
const path = require("path"); //Use this for path.
|
||||
|
||||
fs.readFileSync( path, options );
|
||||
|
||||
Use this for improved navigation. Massive help from MikeLime and Duce.
|
||||
|
||||
if (req.url == '/?querystringhere') {
|
||||
return res.send(fs.readFileSync(path.resolve() + 'filepath', {
|
||||
encoding: 'utf8'
|
||||
}));
|
||||
}
|
||||
var hbsites = {};
|
||||
&& hostname == hbsites
|
||||
|
||||
|
||||
switch (req.url) {
|
||||
case '/':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'index.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?z':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'surf.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?a':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'proxnav', 'alloy.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?dd':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'redirects', 'discordprox.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?b':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'proxnav', 'node.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?y':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'proxnav', 'youtube.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?e':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'proxnav', 'pydodge.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?d':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'proxnav', 'discordhub.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?c':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'nav', 'credits.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?f':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'nav', 'flash.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?g':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'nav', 'gtools.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?h':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'nav', 'games5.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?i':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'nav', 'icons.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?in':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'info.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?k':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'frames', 'krunker.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?m':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'nav', 'gba.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?n':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'redirects', 'chatbox.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?p':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'proxnav', 'pmprox.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?t':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'nav', 'terms.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?x':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'nav', 'bookmarklets.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?yh':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'redirects', 'ythub.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?ym':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'pages', 'redirects', 'ytmobile.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?fg':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'archive', 'f.html'), 'utf8'));
|
||||
}
|
||||
|
||||
switch (req.url) {
|
||||
case '/?rr':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'archive', 'run.html'), 'utf8'));
|
||||
}
|
||||
|
||||
// Frames Page
|
||||
|
||||
switch (req.url) {
|
||||
case '/?j':
|
||||
return res.send(fs.readFileSync(path.join(__dirname, 'public', 'hidden.html'), 'utf8'))
|
||||
}
|
||||
|
||||
}); */
|
||||
|
||||
app.use('/', express.static('public'));
|
||||
|
||||
app.use(async (req, res, next) => {
|
||||
if (req.headers['referer']) {
|
||||
|
||||
let referer = '/' + String(req.headers['referer']).split('/').splice(3).join('/');
|
||||
|
||||
referer = rewrite_url(referer.replace(config.prefix, ''), 'decode').split('/').splice(0, 3).join('/');
|
||||
|
||||
if (referer.startsWith('https://') || referer.startsWith('http://')) {
|
||||
res.redirect(307, config.prefix + btoa(referer) + req.url)
|
||||
} else {
|
||||
if (req.session.url) {
|
||||
|
||||
res.redirect(307, config.prefix + btoa(req.session.url) + req.url)
|
||||
|
||||
} else return next();
|
||||
}
|
||||
} else if (req.session.url) {
|
||||
|
||||
res.redirect(307, config.prefix + btoa(req.session.url) + req.url)
|
||||
|
||||
} else return next();
|
||||
});
|
||||
app.use(char_insert.static(path.join(__dirname, 'public')));
|
|
@ -1,3 +0,0 @@
|
|||
[
|
||||
"add-your-website-url.blocked"
|
||||
]
|
48
charinsert.js
Normal file
48
charinsert.js
Normal file
|
@ -0,0 +1,48 @@
|
|||
var fs = require('fs'),
|
||||
path = require('path'),
|
||||
mime = require('mime-types'),
|
||||
char_insert = (str, hash) => {
|
||||
var output = '';
|
||||
|
||||
str.split(' ').forEach((word, word_index) => (word.split('').forEach((chr, chr_index) => output += (!chr_index || chr_index == word.length) ? '<span style="white-space: nowrap">&#' + chr.charCodeAt() + '</span>' : '<span style="white-space: nowrap">​<span style="display:none;font-size:0px;">​' + hash + '</span>&#' + chr.charCodeAt() + '​</span>'), output += word_index != str.split(' ').length - 1 ? ' ' : ''));
|
||||
|
||||
return output
|
||||
},
|
||||
hash = s => { for (var i = 0, h = 9; i < s.length;) h = Math.imul(h ^ s.charCodeAt(i++), 9 ** 9); return h ^ h >>> 9 },
|
||||
express_ip = req => {
|
||||
var ip = null,
|
||||
methods = [req.headers['cf-connecting-ip'], req.headers['x-real-ip'], req.headers['x-forwarded-for']];
|
||||
|
||||
methods.filter(method => method).forEach(method => {
|
||||
if (ip) return;
|
||||
|
||||
ip = method;
|
||||
|
||||
if (ip.includes(',')) {
|
||||
ip = ip.split(',')[ip.split(',').length - 1].replace(' ', '');
|
||||
if (ip.length > 15) ip = ip.split(',')[0].replace(' ', '');
|
||||
}
|
||||
});
|
||||
|
||||
return ip || '127.0.0.1';
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
static: public_path => (req, res, next) => {
|
||||
var pub_file = path.join(public_path, req.url);
|
||||
|
||||
if (fs.existsSync(pub_file)) {
|
||||
if (fs.statSync(pub_file).isDirectory()) pub_file = path.join(pub_file, 'index.html');
|
||||
if (!fs.existsSync(pub_file)) return next();
|
||||
|
||||
var mime_type = mime.lookup(pub_file),
|
||||
data = fs.readFileSync(pub_file),
|
||||
ext = path.extname(pub_file);
|
||||
|
||||
if (ext == '.html') data = data.toString('utf8').replace(/char_?insert{([\s\S]*?)}/gi, (match, str) => char_insert(str, hash(express_ip(req))));
|
||||
|
||||
res.contentType(mime_type).send(data);
|
||||
} else next();
|
||||
},
|
||||
parse: string => char_insert(string, '-1231'),
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
"port": "8081",
|
||||
"prefix": "/fetch/",
|
||||
"port": "8080",
|
||||
"ssl": false
|
||||
}
|
3038
dist/gameboy.js
vendored
3038
dist/gameboy.js
vendored
File diff suppressed because it is too large
Load diff
939
package-lock.json
generated
939
package-lock.json
generated
File diff suppressed because it is too large
Load diff
22
package.json
22
package.json
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"name": "alloy-proxy",
|
||||
"version": "2.3.0",
|
||||
"description": "A web proxy capable of proxying websites!",
|
||||
"name": "holyub",
|
||||
"version": "4.0.0",
|
||||
"description": "A pretty fancy website.",
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"test": "node app.js",
|
||||
"start": "node app.js ./node_modules/.bin/grunt"
|
||||
"start": "node app.js"
|
||||
},
|
||||
"keywords": [
|
||||
"proxy",
|
||||
|
@ -13,20 +13,12 @@
|
|||
"unblocker"
|
||||
],
|
||||
"author": "Titanium Network",
|
||||
"license": "ISC",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cookie-parser": "^1.4.5",
|
||||
"express": "^4.17.1",
|
||||
"express-session": "^1.17.1",
|
||||
"node-fetch": "^2.6.1",
|
||||
"sanitizer": "^0.1.3",
|
||||
"session": "^0.1.0",
|
||||
"cookies": "0.4",
|
||||
"ws": "^7.3.1",
|
||||
"javascript-obfuscator": "^0.11.2",
|
||||
"clean-css": "^4.1.9",
|
||||
"mime": "^2.2.0",
|
||||
"morgan": "^1.9.0",
|
||||
"axios": "^0.19.2"
|
||||
"mime-types": "^2.1.27",
|
||||
"xss": "^1.0.8"
|
||||
}
|
||||
}
|
||||
|
|
8
public/expr/ch.js
Normal file
8
public/expr/ch.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
window.onload = function() {
|
||||
var frame = document.getElementById("frame");
|
||||
var det = document.domain;
|
||||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
frame.src = "https://c." + domain + "/app";
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
|
@ -7,9 +7,9 @@ $('al').onclick = function() {
|
|||
var det = document.domain;
|
||||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
const origin = btoa(url)
|
||||
frame.src = "https://" + domain + "/fetch/utils/?url=" + origin;
|
||||
frame.src = "https://cdn." + domain + "/fetch/utils/?url=" + origin;
|
||||
frame.style['visibility'] = "visible";
|
||||
document.cookie = '__alloy_cookie_auth=yes; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
$('albp').onclick = function() {
|
||||
|
@ -18,8 +18,8 @@ $('albp').onclick = function() {
|
|||
var det = document.domain;
|
||||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
const origin = btoa(url)
|
||||
window.location.href = "https://" + domain + "/fetch/utils/?url=" + origin;
|
||||
document.cookie = '__alloy_cookie_auth=yes; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
window.location.href = "https://cdn." + domain + "/fetch/utils/?url=" + origin;
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
//CH
|
||||
|
@ -29,7 +29,7 @@ $('ch').onclick = function() {
|
|||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
frame.src = "https://c." + domain + "/app";
|
||||
frame.style['visibility'] = "visible";
|
||||
document.cookie = '__alloy_cookie_auth=yes; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
//NU
|
||||
|
@ -61,7 +61,7 @@ $('pdprox').onclick = function() {
|
|||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
frame.src = "https://cdn." + domain + "/" + url;
|
||||
frame.style['visibility'] = "visible";
|
||||
document.cookie = 'wowow; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
$('pdproxbp').onclick = function() {
|
||||
|
@ -70,7 +70,7 @@ $('pdproxbp').onclick = function() {
|
|||
var det = document.domain;
|
||||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
window.location.href = "https://cdn." + domain + "/" + url;
|
||||
document.cookie = 'wowo; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
//PM Load
|
||||
|
@ -102,9 +102,9 @@ $('ytbtn').onclick = function() {
|
|||
var det = document.domain;
|
||||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
const origin = btoa(yt)
|
||||
frame.src = "https://" + domain + "/fetch/utils/?url=" + origin;
|
||||
frame.src = "https://cdn." + domain + "/fetch/utils/?url=" + origin;
|
||||
frame.style['visibility'] = "visible";
|
||||
document.cookie = '__alloy_cookie_auth=yes; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
$('ytbtnm').onclick = function() {
|
||||
|
@ -113,9 +113,9 @@ $('ytbtnm').onclick = function() {
|
|||
var det = document.domain;
|
||||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
const origin = btoa(yt)
|
||||
frame.src = "https://" + domain + "/fetch/utils/?url=" + origin;
|
||||
frame.src = "https://cdn." + domain + "/fetch/utils/?url=" + origin;
|
||||
frame.style['visibility'] = "visible";
|
||||
document.cookie = '__alloy_cookie_auth=yes; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
$('ytbp').onclick = function() {
|
||||
|
@ -124,8 +124,17 @@ $('ytbp').onclick = function() {
|
|||
var det = document.domain;
|
||||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
const origin = btoa(yt)
|
||||
window.location.href = "https://" + domain + "/fetch/utils/?url=" + origin;
|
||||
document.cookie = '__alloy_cookie_auth=yes; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
window.location.href = "https://cdn." + domain + "/fetch/utils/?url=" + origin;
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
$('chat').onclick = function() {
|
||||
var frame = document.getElementById("frame");
|
||||
var det = document.domain;
|
||||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
frame.src = "https://c." + domain + "/app";
|
||||
frame.style['visibility'] = "visible";
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
//D
|
||||
|
@ -135,9 +144,9 @@ $('dbtn').onclick = function() {
|
|||
var det = document.domain;
|
||||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
const origin = btoa(d)
|
||||
frame.src = "https://" + domain + "/fetch/utils/?url=" + origin;
|
||||
frame.src = "https://cdn." + domain + "/fetch/utils/?url=" + origin;
|
||||
frame.style['visibility'] = "visible";
|
||||
document.cookie = '__alloy_cookie_auth=yes; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
$('dbp').onclick = function() {
|
||||
|
@ -146,8 +155,8 @@ $('dbp').onclick = function() {
|
|||
var det = document.domain;
|
||||
var domain = det.replace('www.', '').split(/[/?#]/)[0];
|
||||
const origin = btoa(d)
|
||||
window.location.href = "https://" + domain + "/fetch/utils/?url=" + origin;
|
||||
document.cookie = '__alloy_cookie_auth=yes; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
window.location.href = "https://cdn." + domain + "/fetch/utils/?url=" + origin;
|
||||
document.cookie = 'oldsmobile=badcar; expires=' + (Date.now() + 259200) + '; SameSite=Lax; domain=.' + auth + '; path=/; Secure;';
|
||||
return false;
|
||||
};
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<!-- Important: Use ​ to mess with keywords. -->
|
||||
<title>H​oly Unb​loc​ke​r</title>
|
||||
<meta name="description" content="G​et p​ast in​te​r​net ce​n​s​or​sh​ip tod​a​y!
|
||||
|
||||
:D">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="assets/img/i.png">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic">
|
||||
|
@ -27,10 +28,12 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<iframe id="frame" style="display:block; visibility: hidden;"></iframe>
|
||||
<!--
|
||||
Important: Use <wbr> and ​ to mess with keywords.
|
||||
|
||||
PClo<wbr>ak. The script for this is im-runtime:
|
||||
|
||||
<iframe id="page-holder" src="/?j" style="display: block;"></iframe>
|
||||
<noscript>You must enable javascript in your browser to view this webpage.</noscript>
|
||||
-->
|
||||
|
@ -61,7 +64,8 @@
|
|||
</div>
|
||||
</div> -->
|
||||
<nav class="navbar navbar-dark navbar-expand-lg navigation-clean-search" style="height: 100px;">
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler" data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler"
|
||||
data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navcol-1">
|
||||
<ul class="nav navbar-nav ml-auto">
|
||||
<!--Nav-->
|
||||
|
@ -72,7 +76,8 @@
|
|||
<li class="nav-item" role="presentation"><a class="nav-link" href="/?d" style="font-family: 'Montserrat Alternates', sans-serif;">D​isc​ord</a></li>
|
||||
<li id="ch" class="nav-item" role="presentation"><a class="nav-link" href="/?n" style="font-family: 'Montserrat Alternates', sans-serif;">Cha​tbox</a></li>
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;color: rgb(255,255,255);font-family: 'Montserrat Alternates', sans-serif;">More</a>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50" role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50"
|
||||
role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
</li>
|
||||
<!--Options Menu-->
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link text-white" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;font-family: 'Montserrat Alternates', sans-serif;">Options</a>
|
||||
|
@ -107,7 +112,7 @@
|
|||
<div id="particles-js" class="in-bg">
|
||||
<div class="d-popupbg" id="popup">
|
||||
<center>
|
||||
<p class="d-popupbg-text">(Updated 11/8/20): Now hid<wbr>es your history (St<wbr>ealth Mode)! - Most of the pr<wbr>oxi<wbr>es are back up.</p>
|
||||
<p class="d-popupbg-text">(Updated 11/8/20): Now hi<wbr>des your history (Stealth Mode)! - Most of the pro<wbr>xies are back up.</p>
|
||||
</center>
|
||||
</div>
|
||||
<div class="d-flex justify-content-center align-items-center in-flex">
|
||||
|
@ -179,6 +184,7 @@
|
|||
</footer>
|
||||
</div>
|
||||
<script src="assets/js/links.js"></script>
|
||||
<script src="expr/surf.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
File diff suppressed because one or more lines are too long
|
@ -26,11 +26,13 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<iframe id="frame" style="display:block; visibility: hidden;"></iframe>
|
||||
<!-- Important: Use <wbr> to mess with keywords. -->
|
||||
<div>
|
||||
<div class="header-dark" style="background-color: rgb(0,0,0);background-image: url("assets/img/black.jpg");">
|
||||
<nav class="navbar navbar-dark navbar-expand-lg navigation-clean-search" style="height: 100px; z-index: 1;">
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler" data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler"
|
||||
data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navcol-1">
|
||||
<ul class="nav navbar-nav ml-auto">
|
||||
<!--Nav-->
|
||||
|
@ -40,7 +42,8 @@
|
|||
<li class="nav-item" role="presentation"><a class="nav-link" href="/?d" style="font-family: 'Montserrat Alternates', sans-serif;">D​isc​ord</a></li>
|
||||
<li id="ch" class="nav-item" role="presentation"><a class="nav-link" href="/?n" style="font-family: 'Montserrat Alternates', sans-serif;">Cha​tbox</a></li>
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;color: rgb(255,255,255);font-family: 'Montserrat Alternates', sans-serif;">More</a>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50" role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50"
|
||||
role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
</li>
|
||||
<!--Options Menu-->
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link text-white" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;font-family: 'Montserrat Alternates', sans-serif;">Options</a>
|
||||
|
@ -155,6 +158,7 @@
|
|||
<script src="assets/js/jquery.min.js"></script>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/bs-init.js "></script>
|
||||
<script src="expr/surf.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -27,11 +27,13 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<iframe id="frame" style="display:block; visibility: hidden;"></iframe>
|
||||
<!-- Important: Use <wbr> to mess with keywords. -->
|
||||
<div>
|
||||
<div class="header-dark" style="background-color: rgb(0,0,0);background-image: url("assets/img/black.jpg");">
|
||||
<nav class="navbar navbar-dark navbar-expand-lg navigation-clean-search" style="height: 100px;">
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler" data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler"
|
||||
data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navcol-1">
|
||||
<ul class="nav navbar-nav ml-auto">
|
||||
<!--Nav-->
|
||||
|
@ -41,7 +43,8 @@
|
|||
<li class="nav-item" role="presentation"><a class="nav-link" href="/?d" style="font-family: 'Montserrat Alternates', sans-serif;">D​isc​ord</a></li>
|
||||
<li id="ch" class="nav-item" role="presentation"><a class="nav-link" href="/?n" style="font-family: 'Montserrat Alternates', sans-serif;">Cha​tbox</a></li>
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;color: rgb(255,255,255);font-family: 'Montserrat Alternates', sans-serif;">More</a>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50" role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50"
|
||||
role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
</li>
|
||||
<!--Options Menu-->
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link text-white" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;font-family: 'Montserrat Alternates', sans-serif;">Options</a>
|
||||
|
@ -100,12 +103,13 @@
|
|||
<h1 class="text-center d-md-flex flex-grow-1 justify-content-md-center align-items-md-center" style="color: rgb(242,245,248);font-size: 46px;font-weight: normal;font-family: 'Montserrat Alternates', sans-serif;margin: 7px;padding: 34px;width: 100%;filter: blur(0px);height: 100%;">Credits<br></h1>
|
||||
<p><br> Quite A Fa​ncy Em​erald (Crea​tor and Ow​ner, Disco​rd: Quite A Fan​cy Emer​ald#0001)<br><br><strong>−−</strong><br>Contributors:<br>− Kin​glalu (Gam​es Page,
|
||||
Developer)
|
||||
<br><strong>− O​lyB (Tab Cl​oak, Web Developer)</strong><br><strong>− YOCTDON​ALD'S (Obfusc​ation God, T​N Bugh​unter)</strong><br><strong>− SexyDuceDuce (Pr​oxy and Web Dev​eloper)</strong><br><strong>−−</strong><br>Notable Mentions:
|
||||
<br><strong>− O​lyB (Tab Cl​oak, Web Developer)</strong><br><strong>− YOCTDON​ALD'S (Obfusc​ation God, T​N Bugh​unter)</strong><br><strong>− SexyDuceDuce (Pr​oxy and Web Dev​eloper)</strong><br><strong>−−</strong><br>Notable
|
||||
Mentions:
|
||||
<br>− LQ16 (Creator of TN, Retired)</strong><br>−Shirt (Owner of TN)<br>− Mik<wbr>eLime (<strong>Co-Owner of Tit<wbr>anium<wbr>Ne<wbr>twork & Mass Pr<wbr>o<wbr>xy Site Maker, Web Deve​loper, and Software Developer</strong>)
|
||||
:D
|
||||
<br>− Sou​p (Cat La​dy) hehe<br>
|
||||
<br><strong>− Na<wbr>vvy</strong><br><strong>- Divi​de (Chatb​ox, Pro​xy/W​eb Deve​loper)<br><strong>− B<wbr>3A<wbr>TDR<wbr>O<wbr>P3R</strong><br>− Nautica<br><strong><br><strong>−−</strong><br>And
|
||||
everyone else on TN and to the various testers. :D<br><br>And of course a certain Michael (irl friend)<br><br></p>div>
|
||||
everyone else on TN and to the various testers. :D<br><br>And of course a certain Michael (irl friend)<br><br></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -152,6 +156,7 @@
|
|||
<script src="assets/js/links.js"></script>
|
||||
<script src="assets/js/jquery.min.js"></script>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="expr/surf.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -28,11 +28,13 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<iframe id="frame" style="display:block; visibility: hidden;"></iframe>
|
||||
<!-- Important: Use <wbr> to mess with keywords. -->
|
||||
<div>
|
||||
<div class="header-dark" style="background-color: rgb(0,0,0);background-image: url("assets/img/black.jpg");">
|
||||
<nav class="navbar navbar-dark navbar-expand-lg navigation-clean-search" style="height: 100px;">
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler" data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler"
|
||||
data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navcol-1">
|
||||
<ul class="nav navbar-nav ml-auto">
|
||||
<!--Nav-->
|
||||
|
@ -42,7 +44,8 @@
|
|||
<li class="nav-item" role="presentation"><a class="nav-link" href="/?d" style="font-family: 'Montserrat Alternates', sans-serif;">D​isc​ord</a></li>
|
||||
<li id="ch" class="nav-item" role="presentation"><a class="nav-link" href="/?n" style="font-family: 'Montserrat Alternates', sans-serif;">Cha​tbox</a></li>
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;color: rgb(255,255,255);font-family: 'Montserrat Alternates', sans-serif;">More</a>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50" role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50"
|
||||
role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
</li>
|
||||
<!--Options Menu-->
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link text-white" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;font-family: 'Montserrat Alternates', sans-serif;">Options</a>
|
||||
|
@ -276,6 +279,7 @@
|
|||
<script src="assets/js/links.js"></script>
|
||||
<script src="assets/js/jquery.min.js"></script>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="expr/surf.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -28,9 +28,11 @@
|
|||
<!--Games Old CSS -->
|
||||
|
||||
<body>
|
||||
<iframe id="frame" style="display:block; visibility: hidden;"></iframe>
|
||||
<div class="header-dark" style="background-color: rgb(0,0,0);background-image: url("assets/img/black.jpg");">
|
||||
<nav class="navbar navbar-dark navbar-expand-lg navigation-clean-search" style="height: 100px;">
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler" data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler"
|
||||
data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navcol-1">
|
||||
<ul class="nav navbar-nav ml-auto">
|
||||
<!--Nav-->
|
||||
|
@ -54,7 +56,8 @@
|
|||
<li class="nav-item" role="presentation"><a class="nav-link" href="/?d" style="font-family: 'Montserrat Alternates', sans-serif;">D​isc​ord</a></li>
|
||||
<li id="ch" class="nav-item" role="presentation"><a class="nav-link" href="/?n" style="font-family: 'Montserrat Alternates', sans-serif;">Cha​tbox</a></li>
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;color: rgb(255,255,255);font-family: 'Montserrat Alternates', sans-serif;">More</a>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50" role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50"
|
||||
role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
</li>
|
||||
<!--Options Menu-->
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link text-white" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;font-family: 'Montserrat Alternates', sans-serif;">Options</a>
|
||||
|
@ -467,6 +470,7 @@
|
|||
<script src="assets/js/links.js"></script>
|
||||
<script src="assets/js/jquery.min.js"></script>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="expr/surf.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -28,11 +28,13 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<iframe id="frame" style="display:block; visibility: hidden;"></iframe>
|
||||
<!--New-->
|
||||
<div>
|
||||
<div class="header-dark" style="background-color: rgb(0,0,0);background-image: url("assets/img/black.jpg");">
|
||||
<nav class="navbar navbar-dark navbar-expand-lg navigation-clean-search" style="height: 100px;">
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler" data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler"
|
||||
data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navcol-1">
|
||||
<ul class="nav navbar-nav ml-auto">
|
||||
<!--Nav-->
|
||||
|
@ -42,7 +44,8 @@
|
|||
<li class="nav-item" role="presentation"><a class="nav-link" href="/?d" style="font-family: 'Montserrat Alternates', sans-serif;">D​isc​ord</a></li>
|
||||
<li id="ch" class="nav-item" role="presentation"><a class="nav-link" href="/?n" style="font-family: 'Montserrat Alternates', sans-serif;">Cha​tbox</a></li>
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;color: rgb(255,255,255);font-family: 'Montserrat Alternates', sans-serif;">More</a>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50" role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50"
|
||||
role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
</li>
|
||||
<!--Options Menu-->
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link text-white" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;font-family: 'Montserrat Alternates', sans-serif;">Options</a>
|
||||
|
@ -100,12 +103,13 @@
|
|||
<div class="container text-center border rounded justify-content-center align-items-center button" style="color: rgb(255,255,255); filter: blur(0px); opacity: 0.95; padding-left: 50px; padding-right: 50px;">
|
||||
<form class="hb-form-padding" id="unblocker-form" action="b" method="get">
|
||||
<p class="s-text-header" style="font-size: 46px;">GTo​ols Directory</p>
|
||||
<p style="font-family: 'Montserrat Alternates', sans-serif;">Choose where you would like to go. Below is some information.</p>
|
||||
<p style="font-family: 'Montserrat Alternates', sans-serif;">Choose where you would like to go. Below is some information.<br>P​lease no​te that thi​s pa​ge and its library is a WI​P.</p>
|
||||
<p class="text-white" style="font-size: 20px;font-family: Lato, sans-serif;">Information:<br></p>
|
||||
<p class="text-hb-light" style="font-family: Lato, sans-serif;">Here you can find cool stuff like emula​tors and gam​es!</p>
|
||||
<p class="text-hb-light" style="font-family: Lato, sans-serif;">Emu​lat​ors Featured: G​B, G​BA, N​ES, SN​ES (N​64 soon)</p>
|
||||
<p class="text-hb-light" style="font-family: Lato, sans-serif;">T​ools Featured: Javascript Ter​minals, Virt​ual Mach​ines and more.</p>
|
||||
<p class="text-hb-light" style="font-family: Lato, sans-serif;">Ga​mes Featured: Self explanatory. Fla​sh will soon be unsupported.</p>
|
||||
<p class="text-white" style="font-family: Lato, sans-serif;">Most of the ga​mes here should hopefully be updated.</p>
|
||||
<div style="margin-top: 2%;">
|
||||
<a class="btn btn-group text-hb hb-border-color glow-on-hover" role="button" data-bs-hover-animate="pulse" style="background-color: rgb(24,26,28);font-family: 'Montserrat Alternates', sans-serif;" href="/?h">Em​ulat​ors</a>
|
||||
<a class="btn btn-group text-hb hb-border-color glow-on-hover" role="button" data-bs-hover-animate="pulse" style="background-color: rgb(24,26,28);font-family: 'Montserrat Alternates', sans-serif;" href="/?h">To​ols</a>
|
||||
|
@ -113,7 +117,6 @@
|
|||
<a class="btn btn-group text-hb hb-border-color glow-on-hover" role="button" data-bs-hover-animate="pulse" style="background-color: rgb(24,26,28);font-family: 'Montserrat Alternates', sans-serif;" href="/?h">.​I​O Gam​es</a>
|
||||
<a class="btn btn-group text-hb hb-border-color glow-on-hover" role="button" data-bs-hover-animate="pulse" style="background-color: rgb(24,26,28);font-family: 'Montserrat Alternates', sans-serif;" href="/?f">F​la​sh G​am​es</a>
|
||||
</div>
|
||||
<p class="text-white" style="font-family: Lato, sans-serif;">Most of the ga​mes here should hopefully be updated.</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -164,6 +167,7 @@
|
|||
<script src="assets/js/jquery.min.js"></script>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/bs-init.js"></script>
|
||||
<script src="expr/surf.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -27,11 +27,13 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<iframe id="frame" style="display:block; visibility: hidden;"></iframe>
|
||||
<!-- Important: Use <wbr> to mess with keywords. -->
|
||||
<div>
|
||||
<div class="header-dark" style="background-color: rgb(0,0,0);background-image: url("assets/img/black.jpg");">
|
||||
<nav class="navbar navbar-dark navbar-expand-lg navigation-clean-search" style="height: 100px;">
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler" data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler"
|
||||
data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navcol-1">
|
||||
<ul class="nav navbar-nav ml-auto">
|
||||
<!--Nav-->
|
||||
|
@ -41,7 +43,8 @@
|
|||
<li class="nav-item" role="presentation"><a class="nav-link" href="/?d" style="font-family: 'Montserrat Alternates', sans-serif;">D​isc​ord</a></li>
|
||||
<li id="ch" class="nav-item" role="presentation"><a class="nav-link" href="/?n" style="font-family: 'Montserrat Alternates', sans-serif;">Cha​tbox</a></li>
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;color: rgb(255,255,255);font-family: 'Montserrat Alternates', sans-serif;">More</a>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50" role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50"
|
||||
role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
</li>
|
||||
<!--Options Menu-->
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link text-white" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;font-family: 'Montserrat Alternates', sans-serif;">Options</a>
|
||||
|
@ -157,6 +160,7 @@
|
|||
<script src="assets/js/links.js"></script>
|
||||
<script src="assets/js/jquery.min.js"></script>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="expr/surf.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -29,11 +29,13 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<iframe id="frame" style="display:block; visibility: hidden;"></iframe>
|
||||
<!-- Important: Use <wbr> to mess with keywords. -->
|
||||
<div>
|
||||
<div class="header-dark" style="background-color: rgb(0,0,0);background-image: url("assets/img/black.jpg");">
|
||||
<nav class="navbar navbar-dark navbar-expand-lg navigation-clean-search" style="height: 100px;">
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler" data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler"
|
||||
data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navcol-1">
|
||||
<ul class="nav navbar-nav ml-auto">
|
||||
<!--Nav-->
|
||||
|
@ -43,7 +45,8 @@
|
|||
<li class="nav-item" role="presentation"><a class="nav-link" href="/?d" style="font-family: 'Montserrat Alternates', sans-serif;">D​isc​ord</a></li>
|
||||
<li id="ch" class="nav-item" role="presentation"><a class="nav-link" href="/?n" style="font-family: 'Montserrat Alternates', sans-serif;">Cha​tbox</a></li>
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;color: rgb(255,255,255);font-family: 'Montserrat Alternates', sans-serif;">More</a>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50" role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50"
|
||||
role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
</li>
|
||||
<!--Options Menu-->
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link text-white" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;font-family: 'Montserrat Alternates', sans-serif;">Options</a>
|
||||
|
@ -75,7 +78,8 @@
|
|||
|
||||
<!-- Particles.js background -->
|
||||
|
||||
<script id="particles-js" style="background-image: url("assets/img/black.jpg");height: 100%;background-position: center;background-size: cover;background-repeat: no-repeat;background-color: #000000;font-family: 'Montserrat Alternates', sans-serif;font-weight: bold;" /> document.write(`
|
||||
<script id="particles-js" style="background-image: url("assets/img/black.jpg");height: 100%;background-position: center;background-size: cover;background-repeat: no-repeat;background-color: #000000;font-family: 'Montserrat Alternates', sans-serif;font-weight: bold;"
|
||||
/> document.write(`
|
||||
<div>
|
||||
<h1>Privacy Policy for Holy Unblocker</h1>
|
||||
|
||||
|
@ -341,6 +345,7 @@
|
|||
<script src="assets/js/links.js"></script>
|
||||
<script src="assets/js/jquery.min.js"></script>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="expr/surf.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -94,7 +94,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<p class="text-white" style="font-size: 20px; padding-top: 5px; font-family: 'Montserrat Alternates', sans-serif;">More Inf<wbr>ormation:<br></p>
|
||||
<p class="text-hb s-text-p2" style="font-family: Lato, sans-serif;">Works on Di<wbr>scord (QR Code Only), Yout<wbr>ube (Might need to rel<wbr>oad), etc.<br><br>Many si<wbr>tes work with this. Ex<wbr>plore!</p>
|
||||
<p class="text-hb s-text-p2" style="font-family: Lato, sans-serif;">Works on Di<wbr>scord (QR Code Only), Yout<wbr>ube (Might need to rel<wbr>oad), etc.<br><br>Many si<wbr>tes work with this.<br>This is curre<wbr>ntly one of the be<wbr>st proxi<wbr>es. Ex<wbr>plore!</p>
|
||||
<p class="text-hb s-text-p2" style="font-family: Lato, sans-serif;">Git<wbr>Hub: <a class="text-hb" id="allink"><strong> https://github​.com/ti​taniumnetwork-​dev/alloypro​xy</strong></a><br></p>
|
||||
<p class="text-white s-text-p2"><br>All<wbr>oy Pr<wbr>ox<wbr>y created by S<wbr>exyDu<wbr>ceD<wbr>uce
|
||||
(a very epic person) :D<br>All<wbr>oy v2.3</p>
|
||||
|
|
|
@ -84,10 +84,10 @@
|
|||
<div class="container border rounded text-center justify-content-center align-items-center button" style="color: rgb(255,255,255);filter: blur(0px); opacity: 0.95; padding-left: 50px; padding-right: 50px;">
|
||||
<!--PD-->
|
||||
<form id="pd">
|
||||
<p class="s-text-header" style=" font-size: 46px; ">P<wbr>yDo<wbr>dge</p>
|
||||
<p class="s-text-p1" style="font-family: 'Montserrat Alternates', sans-serif; ">An alterna<wbr>tive pr<wbr>oxy of a modi<wbr>fied V<wbr>ia Pro<wbr>xy.</p>
|
||||
<p class="s-text-header" style=" font-size: 46px; ">V<wbr>ia Unb<wbr>lock<wbr>er</p>
|
||||
<p class="s-text-p1" style="font-family: 'Montserrat Alternates', sans-serif; ">A hi<wbr>ghly flex<wbr>ible pro<wbr>xy which su<wbr>cce<wbr>sses N<wbr>ode U<wbr>nblock<wbr>er.</p>
|
||||
<div class="input-group ">
|
||||
<div class="input-group-prepend"></div><input id="url" class="bg-dark hb-border-color rounded-0 border-info shadow-sm form-control form-control-lg " type="text" name="url" autocomplete="off" style="width: 270px;font-family:
|
||||
<div class="input-group-prepend"></div><input id="url" class="bg-dark rounded-0 hb-border-color shadow-sm form-control form-control-lg" type="text" name="url" autocomplete="off" style="width: 270px;font-family:
|
||||
'Montserrat Alternates', sans-serif;opacity: 0.80; color:rgb(255,255,255); " placeholder="Insert URL ">
|
||||
<div class="input-group-append ">
|
||||
<button id="pdproxbp" class="glow-on-hover btn-dark btn-lg bg-dark text-hb rounded-0 hb-border-color shadow-lg select" data-bs-hover-animate="pulse" name="button" type="submit" style="width: 85px;padding: 2px; margin: 0px;height: 46.126px;font-family: 'Montserrat Alternates', sans-serif;font-size: 16px;">Classic</button>
|
||||
|
@ -109,7 +109,7 @@
|
|||
In conclusion, cooking has evolved as technology has developed. But in the grand scheme of things we still have the same methods. Cooking helped the advancement of the human brain and the advancement of human teeth and our digestive tracts. Today we have restaurants, grocery stores, microwaves, and ovens. And all we started off with was a fire and a piece of meat with a stick stuck through it. Cooking was, is, and will be a vital part of the human life.
|
||||
</span>
|
||||
<p class="text-white" style="padding-top: 5px; font-size: 20px;font-family: 'Montserrat Alternates', sans-serif; ">More Information:<br></p>
|
||||
<p class="text-hb-light s-text-p2" style="font-family: Lato, sans-serif; ">Works on vari<wbr>ous sites.<br><br>Explore!</p>
|
||||
<p class="text-hb-light s-text-p2" style="font-family: Lato, sans-serif; ">Works on vari<wbr>ous sites and game sites.<br>(CoolMathGames, etc.)<br><br>Explore!</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -158,7 +158,7 @@
|
|||
<script src="assets/js/jquery.min.js "></script>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js "></script>
|
||||
<script src="assets/js/bs-init.js "></script>
|
||||
<script src="expr/pdbp.js "></script>
|
||||
<script src="expr/surf.js "></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -11,21 +11,13 @@
|
|||
:D">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="assets/img/i.png">
|
||||
<link rel="stylesheet" href="assets/css/styles.css">
|
||||
<style type="text/css">
|
||||
body,
|
||||
html {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
<!-- AL YT -->
|
||||
<script src="/expr/ch.js"></script>
|
||||
<script async src="https://arc.io/widget.js#2BzvQ1em"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<iframe id="frame" style="visibility: visible;"></iframe>
|
||||
<span style=display:none data-cooking=cooks>Cooking started 1.9 million years ago. Therefore, cooking is not something new to humans. Cooking started over a fire with no pots and pans or cooking utensils and now we have microwaves and stoves and special brushes to wipe on a marinade which was not even able to be comprehended 1.9 years ago. In between that time was the middle ages which had many advancements. Life was very different before cooking and has been very different since the beginning of cooking.
|
||||
|
||||
1.9 million years ago, given humans average sizes, had to spend forty eight percent of their life time in the “feeding process.” The feeding process does not include cooking. Cooking narrowed the time that humans had to spend in the feeding process to five percent. This change made it to where humans could spend less time in the feeding process and could do more valuable things with their time such as go out and hunt to grow bigger societies and other pursuits which ultimately lead to the beginning to the path of our modern brain. Cooking made food a lot easier to chew and digest. As a result of that we got more calorie benefit and a smaller digestive tract. All of this made cooking a vital part of human adaptation. The changes in human teeth happened so much faster than anything in the human body that scientists have come to the conclusion that this means that cooking was and has been passed down from generations and generations. Also, the oppressed women theory has been going on since the beginning of cooking when men went out and hunted and sought new things. Women at this time had to cook and do the gathering because of their lack of physically strength. So ever since cooking, even 1.9 million years ago, the roles of men and women have been a natural thing of life...
|
||||
|
|
|
@ -27,11 +27,12 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<!--New-->
|
||||
<iframe id="frame" style="display:block; visibility: hidden;"></iframe>
|
||||
<div>
|
||||
<div class="header-dark" style="background-color: rgb(0,0,0);background-image: url("assets/img/black.jpg");">
|
||||
<nav class="navbar navbar-dark navbar-expand-lg navigation-clean-search" style="height: 100px;">
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler" data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="container"><a class="navbar-brand" style="font-family: 'Montserrat Alternates', sans-serif;font-size: 21px;margin: 10px;font-style: normal;font-weight: bold;" href="/">Ho​ly Unb​lock​er</a><button data-toggle="collapse" class="navbar-toggler"
|
||||
data-target="#navcol-1"><span class="sr-only">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navcol-1">
|
||||
<ul class="nav navbar-nav ml-auto">
|
||||
<!--Nav-->
|
||||
|
@ -41,7 +42,8 @@
|
|||
<li class="nav-item" role="presentation"><a class="nav-link" href="/?d" style="font-family: 'Montserrat Alternates', sans-serif;">D​isc​ord</a></li>
|
||||
<li id="ch" class="nav-item" role="presentation"><a class="nav-link" href="/?n" style="font-family: 'Montserrat Alternates', sans-serif;">Cha​tbox</a></li>
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;color: rgb(255,255,255);font-family: 'Montserrat Alternates', sans-serif;">More</a>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50" role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
<div class="dropdown-menu" role="menu" style="background-color: rgb(33,30,30);font-family: 'Titillium Web', sans-serif;padding: 17%;padding-top: 10%;padding-bottom: 10%;"><a class="dropdown-item text-left text-white-50" role="presentation" href="/?k" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Kru​nk​er</a><a class="dropdown-item text-left text-white-50"
|
||||
role="presentation" href="/?in" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Docs</a><a class="dropdown-item text-white-50" role="presentation" href="/?c" style="color: rgb(255,255,255);padding: 0%;font-family: Lato, sans-serif;">Cre​dits</a></div>
|
||||
</li>
|
||||
<!--Options Menu-->
|
||||
<li class="nav-item dropdown"><a class="dropdown-toggle nav-link text-white" data-toggle="dropdown" aria-expanded="false" href="#" style="opacity: 0.80;font-family: 'Montserrat Alternates', sans-serif;">Options</a>
|
||||
|
@ -87,17 +89,18 @@
|
|||
<p class="s-text-header" style="font-size: 46px;">Su<wbr>rf Free<wbr>ly</p>
|
||||
<p class="s-text-p1" style="font-family: 'Montserrat Alternates', sans-serif;">Choose which proxy you would like to use. Below is some information.</p>
|
||||
<p class="text-white" style="font-size: 20px;font-family: Lato, sans-serif;">More Information:<br></p>
|
||||
<p class="text-hb-light s-text-p2" style="font-family: Lato, sans-serif;">A​llo​y: Di​sco​rd (Mostly Full), Yo​uTu​be (Full), etc.<br><br>Nod​e: Co​olMa​thGa​mes, secondary pr​oxy compared to Al​loy, PM and PD.<br><br>P<wbr>M Pro<wbr>xy: Disc<wbr>ord, Yout<wbr>ube
|
||||
(limited), etc.<br><br>V<wbr>ia: Alternative pro<wbr>xy with sup​port for vari​ous ga​mes sites.<br>
|
||||
<p class="text-hb-light s-text-p2" style="font-family: Lato, sans-serif;">A​llo​y: Di​sco​rd (Mostly Full), Yo​uTu​be (Full), etc.<br><br>Vi<wbr>a: Alter<wbr>native pro<wbr>xy which suppo<wbr>rts many ga<wbr>me si<wbr>tes, etc.<br><br>Nod​e: Secondary
|
||||
pr​oxy compared to Al​loy, PM and PD.<br><br>P<wbr>M Pro<wbr>xy: Disc<wbr>ord, Yout<wbr>ube (limited), etc.<br>
|
||||
</p>
|
||||
<p class="text-white s-text-p2">Many sites work with this. Join the T<wbr>N disc<wbr>ord for updated H<wbr>B sites and more. Explore!</strong><br>T<wbr>N D<wbr>isco<wbr>rd:</p>
|
||||
<a class="text-hb s-text-p2" id="tnlink">https://di<wbr>sco<wbr>rd.com/invi<wbr>te/Dw<wbr>6C<wbr>7p5</a><br>
|
||||
<a class="text-hb s-text-p2" id="tnlink">https://dis​cord.c​om/invite/Dw​6C7p​5</a><br>
|
||||
<div style="margin: 2%;padding: 1px;">
|
||||
<a class="btn btn-group text-hb hb-border-color glow-on-hover rounded-1" role="button" data-bs-hover-animate="pulse" style="background-color: rgb(24,26,28);font-family: 'Montserrat Alternates', sans-serif;" href="/?a">Al​loy Pro​xy</a>
|
||||
<a class="btn btn-group text-hb hb-border-color glow-on-hover rounded-1" role="button" data-bs-hover-animate="pulse" style="background-color: rgb(24,26,28);font-family: 'Montserrat Alternates', sans-serif; margin-left: 5px;" href="/?e">V<wbr>ia Un<wbr>blo<wbr>ck<wbr>er</a>
|
||||
<a class="btn btn-group text-hb hb-border-color glow-on-hover rounded-1" role="button" data-bs-hover-animate="pulse" style="background-color: rgb(24,26,28);font-family: 'Montserrat Alternates', sans-serif;" href="/?a">Al<wbr>loy Pro<wbr>xy</a>
|
||||
<a class="btn btn-group text-hb hb-border-color glow-on-hover rounded-1" role="button" data-bs-hover-animate="pulse" style="background-color: rgb(24,26,28);font-family: 'Montserrat Alternates', sans-serif; margin-left: 5px;" href="/?e">V<wbr>ia Un<wbr>blo<wbr>cker</a>
|
||||
<a class="btn btn-group text-hb hb-border-color glow-on-hover rounded-1" role="button" data-bs-hover-animate="pulse" style="background-color: rgb(24,26,28);font-family: 'Montserrat Alternates', sans-serif; margin-left: 5px;" href="/?b">No<wbr>de Un<wbr>bloc<wbr>ker</a>
|
||||
<a class="btn btn-group text-hb hb-border-color glow-on-hover rounded-1 " role="button" data-bs-hover-animate="pulse" style="background-color: rgb(24,26,28);font-family: 'Montserrat Alternates', sans-serif; margin-left: 5px; " href="/?p">PM Pro<wbr>xy</a>
|
||||
</div>
|
||||
|
||||
<span style=display:none data-cooking=cooks>Cooking started 1.9 million years ago. Therefore, cooking is not something new to humans. Cooking started over a fire with no pots and pans or cooking utensils and now we have microwaves and stoves and special brushes to wipe on a marinade which was not even able to be comprehended 1.9 years ago. In between that time was the middle ages which had many advancements. Life was very different before cooking and has been very different since the beginning of cooking.
|
||||
|
||||
1.9 million years ago, given humans average sizes, had to spend forty eight percent of their life time in the “feeding process.” The feeding process does not include cooking. Cooking narrowed the time that humans had to spend in the feeding process to five percent. This change made it to where humans could spend less time in the feeding process and could do more valuable things with their time such as go out and hunt to grow bigger societies and other pursuits which ultimately lead to the beginning to the path of our modern brain. Cooking made food a lot easier to chew and digest. As a result of that we got more calorie benefit and a smaller digestive tract. All of this made cooking a vital part of human adaptation. The changes in human teeth happened so much faster than anything in the human body that scientists have come to the conclusion that this means that cooking was and has been passed down from generations and generations. Also, the oppressed women theory has been going on since the beginning of cooking when men went out and hunted and sought new things. Women at this time had to cook and do the gathering because of their lack of physically strength. So ever since cooking, even 1.9 million years ago, the roles of men and women have been a natural thing of life...
|
||||
|
|
|
@ -1,19 +1,32 @@
|
|||
User-agent: *
|
||||
Allow: /index.html
|
||||
Allow: /z.html
|
||||
Allow: /c.html
|
||||
Disallow: /
|
||||
Allow: /
|
||||
Sitemap: https://quiteafancyemerald.com
|
||||
Sitemap: https://holyubofficial.net
|
||||
|
||||
User-agent: Googlebot
|
||||
Allow: /index.html
|
||||
Allow: /z.html
|
||||
Allow: /c.html
|
||||
Disallow: /
|
||||
Allow: /
|
||||
Sitemap: https://quiteafancyemerald.com
|
||||
Sitemap: https://holyubofficial.net
|
||||
|
||||
User-agent: DuckDuckBot
|
||||
Allow: /
|
||||
Sitemap: https://quiteafancyemerald.com
|
||||
Sitemap: https://holyubofficial.net
|
||||
|
||||
User-agent: Bingbot
|
||||
Allow: /
|
||||
Sitemap: https://quiteafancyemerald.com
|
||||
Sitemap: https://holyubofficial.net
|
||||
|
||||
User-agent: Slurp
|
||||
Allow: /
|
||||
Sitemap: https://quiteafancyemerald.com
|
||||
Sitemap: https://holyubofficial.net
|
||||
|
||||
User-agent: Baiduspider
|
||||
Allow: /
|
||||
Sitemap: https://quiteafancyemerald.com
|
||||
Sitemap: https://holyubofficial.net
|
||||
|
||||
|
||||
User-agent: AdsBot-Google
|
||||
Allow: /index.html
|
||||
Allow: /z.html
|
||||
Allow: /c.html
|
||||
Disallow: /
|
||||
|
||||
|
|
123
public/sitemap.xml
Normal file
123
public/sitemap.xml
Normal file
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
||||
<url>
|
||||
<loc>https://quiteafancyemerald.com/?a</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://quiteafancyemerald.com/?b</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://quiteafancyemerald.com/?z</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
<priority>0.9<priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://quiteafancyemerald.com/?y</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://quiteafancyemerald.com/?d</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://quiteafancyemerald.com/</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
<priority>0.9<priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://quiteafancyemerald.com/?k</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://quiteafancyemerald.com/?g</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://quiteafancyemerald.com/?e</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://quiteafancyemerald.com/?in</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://holyubofficial.net/?a</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://holyubofficial.net/?b</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://holyubofficial.net/?z</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://holyubofficial.net/?y</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://holyubofficial.net/?d</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://holyubofficial.net/</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://holyubofficial.net/?k</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://holyubofficial.net/?g</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://holyubofficial.net/?e</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://holyubofficial.net/?in</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9<priority>
|
||||
<lastmod>2020-11-11</lastmod>
|
||||
</url>
|
||||
</urlset>
|
|
@ -1,22 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDqzCCApOgAwIBAgIJAJnCkScWtmL0MA0GCSqGSIb3DQEBCwUAMGwxCzAJBgNV
|
||||
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMRgwFgYDVQQKDA9UaXRhbml1bU5l
|
||||
dHdvcmsxDjAMBgNVBAsMBWdhbWVyMR4wHAYDVQQDDBUqLnRpdGFuaXVtbmV0d29y
|
||||
ay5vcmcwHhcNMjAwNjEzMTg0OTU2WhcNMjEwNjEzMTg0OTU2WjBsMQswCQYDVQQG
|
||||
EwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEYMBYGA1UECgwPVGl0YW5pdW1OZXR3
|
||||
b3JrMQ4wDAYDVQQLDAVnYW1lcjEeMBwGA1UEAwwVKi50aXRhbml1bW5ldHdvcmsu
|
||||
b3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwPL69+RE6r8RrFh4
|
||||
njzC8ZRnLB+yNtuGw14C0dvNb5JwgdLl5g9/wK/s0V5NGlqwxlQlxQ/gUSuYEcUR
|
||||
6MYjcnaUmZZe/gaKVV0fkfkuigOWhLnI5AQxx7rhkzx1ujuyJ9D2pkDtZpSvv0yn
|
||||
2yrvWhJMtjuxGYip8jaLuRpbXoafvR7nrlDaNcE/GwIjnCCxsRnY2bGbxYK840mN
|
||||
fuMfF2nz+fXKPuQ/9PT48e3wOo9vM5s7yKhiHYwrogqzGN4cH4sSr1FE8C7flFyT
|
||||
Yw101u7fUaopfeGCo9Pg6IrfzyzE5Qb7OlqlVk2IkvXx7pPqVc6lZCJEhOX/qF9o
|
||||
n3mFqwIDAQABo1AwTjAdBgNVHQ4EFgQUC561ob2kGtFQ4az6y64b98+Fy+IwHwYD
|
||||
VR0jBBgwFoAUC561ob2kGtFQ4az6y64b98+Fy+IwDAYDVR0TBAUwAwEB/zANBgkq
|
||||
hkiG9w0BAQsFAAOCAQEAotvUsSLSzFyxQz329tEPyH6Tmi19FQoA5ZbLg6EqeTI9
|
||||
08qOByDGkSYJi0npaIlPO1I557NxRzdO0PxK3ybol6lnzuSlqCJP5nb1dr0z2Eax
|
||||
wgKht9P+ap/yozU5ye05ah2nkpcaeDPnwnnWFmfsnYNfgu62EshOS+5FETWEKVUb
|
||||
LXQhGInOdJq8KZvhoLZWJoUhyAqxBfW4oVvaqs+Ff96A2NNKrvbiAVYX30rVa+x0
|
||||
KIl0/DoVvDx2Q6TiL396cAXdKUW7edRQcSsGFcxwIrU5lePm0V05aN+oCoEBvXBG
|
||||
ArPN+a5kpGjJwfcpcBVf9cJ6IsvptGS9de3eTHoTyw==
|
||||
-----END CERTIFICATE-----
|
|
@ -1,28 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDA8vr35ETqvxGs
|
||||
WHiePMLxlGcsH7I224bDXgLR281vknCB0uXmD3/Ar+zRXk0aWrDGVCXFD+BRK5gR
|
||||
xRHoxiNydpSZll7+BopVXR+R+S6KA5aEucjkBDHHuuGTPHW6O7In0PamQO1mlK+/
|
||||
TKfbKu9aEky2O7EZiKnyNou5Gltehp+9HueuUNo1wT8bAiOcILGxGdjZsZvFgrzj
|
||||
SY1+4x8XafP59co+5D/09Pjx7fA6j28zmzvIqGIdjCuiCrMY3hwfixKvUUTwLt+U
|
||||
XJNjDXTW7t9Rqil94YKj0+Doit/PLMTlBvs6WqVWTYiS9fHuk+pVzqVkIkSE5f+o
|
||||
X2ifeYWrAgMBAAECggEAbihK8Ev6rKr5RBQeiPjXs2SuoppV/MvIXLHHmliLKS/J
|
||||
29S0PGyM202VPtM/4dP1KMXR6nft8WmaIEsKtoKoqijZHfajtRO21pWb+JLy5wi1
|
||||
XoFTGBrs8MLZFl5mODTsuZ6rsq9O2kn5LJZvHsmcbSgVc9UQfytvG0HY840ArS3g
|
||||
kSDtUFb1xRui6wtCBKzHVvCT+FXhSBbwkHalmbqP6BefhJ3lW2VonkOcHDrdXPfW
|
||||
CEN18IJ2v8QYgXqZP6VUlAweNXLJ33ZOl+jXGdygcOG24MFqdw0VtP0XFGk0jnSS
|
||||
W6dX67BZKeZ71EKaTy02jw5LpQNXA70ismPJHQ2uQQKBgQDuROawnBIW1fC3xOle
|
||||
m+JmP0eMe0eIQycxRsMXsXhYAA0wV3qYZSLZrNK2eRhmSNt+ODSmZ2Vt11dwOv5u
|
||||
bo8WONrRlM097SmitS2S+8o7ASem2VKQzyRE72Y9517Q+aNBdLRVtjrRNSw/hfSu
|
||||
ayLuG36+yukSH7wq7mfoUX34ZwKBgQDPTrgyyw8n5XhZT/qTTRnQJ2GTvPxDzNoJ
|
||||
IAGhGJGFAb6wgLoSpGx6BC122vuRxcTjkjAiMDci5N2zNW+YZVni+F0KTVvNFfU2
|
||||
pOTJUg3luRTygCra6O02PxwpbP/9KCBAKq/kYw/eBW+gxhPwP3ZrbAirvBjgBh0I
|
||||
kIrFijNOHQKBgGUUAbFGZD4fwCCVflLOWnr5uUaVPcFGi6fR1w2EEgNy8iVh1vYz
|
||||
YVdqg3E5aepqWgLvoRY+or64LbXEsQ70A+tvbxSdxXvR0mnd5lmGS0JAuSuE4gvg
|
||||
dAhybrMwJf8NB/7KnX4G8mix3/WKxEQB2y2bqGcT+U/g+phTzuy1NXVdAoGBAIrl
|
||||
jVjK4J60iswcYCEteWwT1rbr2oF60WNnxG+xTF63apJLzWAMNnoSLnwCAKgMv/xR
|
||||
yFo/v9FrUnduCBUtYupFyeDLMATa/27bUEbq6VDPjw9jfFMr2TONWUsQMvvlVKZp
|
||||
c2wsS0dQkRhBXr6LZsZWngCiiHAg6HcCkVgFXpapAoGBAJ/8oLGt0Ar+0MTl+gyk
|
||||
xSqgHnsc5jgqhix3nIoI5oEAbfibdGmRD1S3rtWD9YsnPxMIl+6E5bOAHrmd+Zr8
|
||||
O7EP+CLvbz4JXidaaa85h9ThXSG5xk1A1UTtSFrp+KolLE1Vvmjjd+R844XsM2wZ
|
||||
OAHbihzk0iPPphjEWR4lU4Av
|
||||
-----END PRIVATE KEY-----
|
|
@ -1,17 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIICwzCCAaugAwIBAgIJAMN1fA0fbQDSMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
|
||||
BAMTCWxvY2FsaG9zdDAeFw0yMDA2MDcyMDIyMDRaFw0zMDA2MDUyMDIyMDRaMBQx
|
||||
EjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
||||
ggEBAPVHYq820Hi8Vy4ZAgmH/0Cl51TxWIWeoEgyQZEErgm1Vv49KuM0I1Ejk23+
|
||||
+tbKxY489dc7Gj/PqPv5F7SASNcxcKi5zbJPC6eEJBh2lHh6ldzF1aMfaYnuh25a
|
||||
3uhzoLpZPRsoTBysXkQZqC/6ZP6kBcwJnMZd12Uj4JIbdJwpyUorOYOv4GO6f7SA
|
||||
dUPUhSJpfUMZ4EFnkgrGJ18iqml/afhKj0g6KDxDGc1l2ioVMxiSjEfP06mbfkZ4
|
||||
zG16CmfITgyBFv8J9eF7exHCzqhbzgqWSfUNKazEKMbfCoegeZI196xtGIUbPYcf
|
||||
U8a5M+/pSmojMvdqsppqro0qwa0CAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxo
|
||||
b3N0MA0GCSqGSIb3DQEBBQUAA4IBAQBazEct+iiNe7/TY7c+l8wQBaCIhLtWxmfA
|
||||
JLGBu5Jt+HPAMskU5+rK0nWPMIW5le+xhHXXRnmjqH1pm157hR1LvanLoHpWsPTc
|
||||
eNx7utePC49t77UID1L2NHnmm9SAG/OhPJr3hh0AWG4GjJlWpK+9xeq7b9BoUsl7
|
||||
umU/X/02ZJmXWSwrqhspxtz3dSNaozAVVZs4Bokf7WiU27ACgffa7pCh9E8WTgyV
|
||||
jkvG5ZbmOeje7n+Fa0PEbTrm8SBtF/Rn96VkoZGJBC4+wia/0T5Gmjk8Ds9VhjVK
|
||||
bCyEsgPbkjwRdT/eRO4gEOgJI36CrheluWLnqjiidregyKYHQhwA
|
||||
-----END CERTIFICATE-----
|
|
@ -1,27 +0,0 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpQIBAAKCAQEA9UdirzbQeLxXLhkCCYf/QKXnVPFYhZ6gSDJBkQSuCbVW/j0q
|
||||
4zQjUSOTbf761srFjjz11zsaP8+o+/kXtIBI1zFwqLnNsk8Lp4QkGHaUeHqV3MXV
|
||||
ox9pie6Hblre6HOgulk9GyhMHKxeRBmoL/pk/qQFzAmcxl3XZSPgkht0nCnJSis5
|
||||
g6/gY7p/tIB1Q9SFIml9QxngQWeSCsYnXyKqaX9p+EqPSDooPEMZzWXaKhUzGJKM
|
||||
R8/TqZt+RnjMbXoKZ8hODIEW/wn14Xt7EcLOqFvOCpZJ9Q0prMQoxt8Kh6B5kjX3
|
||||
rG0YhRs9hx9Txrkz7+lKaiMy92qymmqujSrBrQIDAQABAoIBAQCQ6tFqlmdLvnN/
|
||||
3/StLvXn+12XeVUE9Xjbzx2gEfTF9adlZTxuqwJm0S8tISaRO5LHfEsAFIJoy0eb
|
||||
QEv6MIVY53QZrFXVERDgs5kj/wOvvzXGD/kufMO9Y/oOgJANJSwEje8lmYSGuGyl
|
||||
rccKOdXsAXsPV2qSZSV7M1xe1uvpyzpoUaX5aEfl44Kz1U6pURCpjqCj3OwVoaXa
|
||||
vlnDSI7LArhvVTR2Xifl9/MSz1qGlnlKTJTUJi5z+XEnIEqZmhYQOUnp2Wi4KWOR
|
||||
SqKnLOgfSJKb3yrdHukpLBsakF7U1urLB2wUjweZdn7zI9qbzIt9GIy1mRjYXTXL
|
||||
YwPDFOfBAoGBAP5Pi3+E8HV2L+6XOl9MYtKxn2KRvHQdR13IepmF+umhOxjfc6uC
|
||||
NhVeutfwuYfTXWmiEOHPKhH6NLloPbKkpfl6YxaKsAPfeEUI8PEA9J9TiNvGIP6m
|
||||
MZVsp5VS4Q/O2UTT9SG5dc3zOMmys1CJMIDZkzvub9HY1EiAiqRY/y+RAoGBAPbo
|
||||
e1yl/O2Z4L/ILaqo0QpIOgOdpWGZUIshUp5LEUzcYcflnCzdh1CYXWOAnPlvhh3H
|
||||
k4rTBMWJ4DaFWdNhYcOLowu0pk1Cm9q0akarmCr0DhKj98qubU/0QdzJ9q80eqYA
|
||||
3/pfFNs+baIGqcqOeD+da4ZrbLoefO7eBE1qJdpdAoGAFJjkt4NQ5nKYFz7wX1+U
|
||||
cXQpcJZVKSJl8VaXd2++jsWcP7t5Zt64+qodf/fjTvjzi+awb1mUEritJIco2Bs1
|
||||
xir/c4fwEaA74XuD6EEnju/5GbPGYFmdknimahW4XMtoFYcFR6H5xKB6bPuoQlGa
|
||||
OBVnM2dwbxKcvvKKSB1dLcECgYEAhQ4xdHMKwyv6Xr9MRLxmsijMAqjQt7C8I83Y
|
||||
TO9dKlNU6jlFGTRkOD1zjix/6zd7Sc8EJnqjBqTPS/I+vteqrIsyWRuHxvjPLmOt
|
||||
JdpQzUzpzIfJ/9JRnBWf7JB1vGMGeTDdgnn8rk2NHRSEKWDvUjDOAgkf9Yh6gOrp
|
||||
3KIINg0CgYEA5VURroq8FtoLUeiyueKwJ8pBeWVa1IOy9OyG7MaebYVcs5XqDyMk
|
||||
t/5dRHEbzjeM94qsi15BnwYtAy53RlIpA6VCsTxjgP53oj6emucoyj0eW4BRtTq1
|
||||
Er5OUU3Sl6JrILXmefjGTKha97boBWpUZQrJ/zgiqR4KvyGIBq4lqLo=
|
||||
-----END RSA PRIVATE KEY-----
|
|
@ -1,109 +0,0 @@
|
|||
var alloy_data = document.querySelector('#_alloy_data');
|
||||
|
||||
var url = alloy_data.getAttribute('url');
|
||||
|
||||
var prefix = alloy_data.getAttribute('prefix');
|
||||
|
||||
url = new URL(atob(url))
|
||||
|
||||
rewrite_url = (str) => {
|
||||
proxied_url = '';
|
||||
if (str.startsWith(window.location.origin + '/') && !str.startsWith(window.location.origin + prefix)) {
|
||||
str = '/' + str.split('/').splice(3).join('/');
|
||||
}
|
||||
if (str.startsWith('//')) {
|
||||
str = 'http:' + str;
|
||||
} else if (str.startsWith('/') && !str.startsWith(prefix)) {
|
||||
str = url.origin + str
|
||||
}
|
||||
if (str.startsWith('https://') || str.startsWith('http://')) {
|
||||
path = "/" + str.split('/').splice(3).join('/');
|
||||
origin = btoa(str.split('/').splice(0, 3).join('/'));
|
||||
return proxied_url = prefix + origin + path
|
||||
} else {
|
||||
proxied_url = str;
|
||||
}
|
||||
return proxied_url;
|
||||
}
|
||||
|
||||
|
||||
let fetch_rewrite = window.fetch; window.fetch = function(url, options) {
|
||||
url = rewrite_url(url);
|
||||
return fetch_rewrite.apply(this, arguments);
|
||||
}
|
||||
|
||||
let xml_rewrite = window.XMLHttpRequest.prototype.open;window.XMLHttpRequest.prototype.open = function(method, url, async, user, password) {
|
||||
url = rewrite_url(url);
|
||||
return xml_rewrite.apply(this, arguments);
|
||||
}
|
||||
|
||||
let createelement_rewrite = document.createElement; document.createElement = function(tag) {
|
||||
var element = createelement_rewrite.call(document, tag);
|
||||
if (tag.toLowerCase() === 'script' || tag.toLowerCase() === 'iframe' || tag.toLowerCase() === 'embed') {
|
||||
Object.defineProperty(element.__proto__, 'src', {
|
||||
set: function(value) {
|
||||
value = rewrite_url(value)
|
||||
element.setAttribute('src', value)
|
||||
}
|
||||
});
|
||||
} else if (tag.toLowerCase() === 'link') {
|
||||
Object.defineProperty(element.__proto__, 'href', {
|
||||
set: function(value) {
|
||||
value = rewrite_url(value)
|
||||
element.setAttribute('href', value)
|
||||
}
|
||||
});
|
||||
} else if (tag.toLowerCase() === 'form') {
|
||||
Object.defineProperty(element.__proto__, 'action', {
|
||||
set: function(value) {
|
||||
value = rewrite_url(value)
|
||||
element.setAttribute('action', value)
|
||||
}
|
||||
});
|
||||
}
|
||||
return element;
|
||||
}
|
||||
|
||||
let setattribute_rewrite = window.Element.prototype.setAttribute; window.Element.prototype.setAttribute = function(attribute, href) {
|
||||
if (attribute == ('src') || attribute == ('href') || attribute == ('action')) {
|
||||
href = rewrite_url(href)
|
||||
} else href = href;
|
||||
return setattribute_rewrite.apply(this, arguments)
|
||||
}
|
||||
|
||||
// Rewriting all incoming websocket request.
|
||||
|
||||
WebSocket = new Proxy(WebSocket, {
|
||||
|
||||
construct(target, args_array) {
|
||||
|
||||
var protocol;
|
||||
|
||||
if (location.protocol == 'https:') { protocol = 'wss://' } else { protocol = 'ws://' }
|
||||
|
||||
args_array[0] = protocol + location.origin.split('/').splice(2).join('/') + prefix + 'ws/' + btoa(args_array[0]);
|
||||
|
||||
return new target(args_array);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// Rewriting incoming pushstate.
|
||||
|
||||
history.pushState = new Proxy(history.pushState, {
|
||||
|
||||
apply: (target, thisArg, args_array) => {
|
||||
|
||||
args_array[2] = rewrite_url(args_array[2])
|
||||
|
||||
return target.apply(thisArg, args_array)
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var previousState = window.history.state;
|
||||
setInterval(function() {
|
||||
if (!window.location.pathname.startsWith(`${prefix}${btoa(url.origin)}/`)) {
|
||||
history.replaceState('', '', `${prefix}${btoa(url.origin)}/${window.location.href.split('/').splice(3).join('/')}`);
|
||||
}
|
||||
}, 0.1);
|
|
@ -1,89 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
body {
|
||||
background-color: #222;
|
||||
font-family: "Roboto";
|
||||
color: #FFF;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
input {
|
||||
background-color: #111;
|
||||
color :#FFF;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
width: 300px;
|
||||
font-size: 19px;
|
||||
height: 45px;
|
||||
margin-bottom: 5px;
|
||||
font-family: 'Roboto';
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
button {
|
||||
background-color: #3333cc;
|
||||
color :#FFF;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
width: 300px;
|
||||
font-size: 19px;
|
||||
height: 45px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
button:hover{
|
||||
cursor: pointer;
|
||||
background-color: #4d4dff;
|
||||
}
|
||||
|
||||
.container p {
|
||||
margin-bottom: 10px;
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
|
||||
.top {
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
border-bottom: #FFF solid 1px;
|
||||
}
|
||||
.top p {
|
||||
font-family: "Noto Sans JP";
|
||||
font-size: 30px;
|
||||
margin: 22px 22px;
|
||||
display: block
|
||||
}
|
||||
|
||||
#error {
|
||||
padding: 0px 5px;
|
||||
font-size: 22px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="top">
|
||||
<p>Alloy Proxy</p>
|
||||
</div>
|
||||
<p id="error">%ERROR%</p>
|
||||
</body>
|
||||
</html>
|
87
ws-proxy.js
87
ws-proxy.js
|
@ -1,87 +0,0 @@
|
|||
const WebSocket = require('ws'),
|
||||
fs = require('fs');
|
||||
|
||||
const config = JSON.parse(fs.readFileSync('./config.json', {encoding:'utf8'}));
|
||||
|
||||
if (!config.prefix.startsWith('/')) {
|
||||
|
||||
config.prefix = `/${config.prefix}`;
|
||||
|
||||
}
|
||||
|
||||
if (!config.prefix.endsWith('/')) {
|
||||
|
||||
config.prefix = `${config.prefix}/`;
|
||||
|
||||
}
|
||||
|
||||
btoa = (str) => {
|
||||
|
||||
str = new Buffer.from(str).toString('base64');
|
||||
|
||||
return str;
|
||||
|
||||
};
|
||||
|
||||
atob = (str) => {
|
||||
|
||||
str = new Buffer.from(str, 'base64').toString('utf-8');
|
||||
|
||||
return str;
|
||||
|
||||
};
|
||||
|
||||
module.exports = (server) => {
|
||||
|
||||
const wss = new WebSocket.Server({ server: server });
|
||||
|
||||
wss.on('connection', (cli, req) => {
|
||||
|
||||
try {
|
||||
|
||||
const svr = new WebSocket(atob(req.url.toString().replace(`${config.prefix}ws/`, '')));
|
||||
|
||||
svr.on('message', (data) => {
|
||||
|
||||
try { cli.send(data) } catch(err){}
|
||||
|
||||
});
|
||||
|
||||
svr.on('open', () => {
|
||||
|
||||
cli.on('message', (data) => {
|
||||
|
||||
svr.send(data)
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
cli.on('close', (code) => {
|
||||
|
||||
try { svr.close(code); } catch(err) { svr.close(1006) };
|
||||
|
||||
});
|
||||
|
||||
svr.on('close', (code) => {
|
||||
|
||||
try { cli.close(code); } catch(err) { cli.close(1006) };
|
||||
|
||||
});
|
||||
|
||||
cli.on('error', (err) => {
|
||||
|
||||
try { svr.close(1001); } catch(err) { svr.close(1006) };
|
||||
|
||||
});
|
||||
|
||||
svr.on('error', (err) => {
|
||||
|
||||
try { cli.close(1001); } catch(err) { cli.close(1006) };
|
||||
|
||||
});
|
||||
|
||||
} catch(err) { cli.close(1001); }
|
||||
});
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue