commit
7be231fa31
12 changed files with 2371 additions and 2542 deletions
|
|
@ -11,10 +11,10 @@ const site = prodBuild ? "https://aluu.xyz" : "http://localhost:3000";
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
site: site,
|
site: site,
|
||||||
integrations: [
|
integrations: [
|
||||||
sitemap({
|
sitemap({
|
||||||
includeByDefault: true,
|
includeByDefault: true,
|
||||||
lastmod: new Date(),
|
lastmod: new Date(),
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
output: "server",
|
output: "server",
|
||||||
adapter: node({
|
adapter: node({
|
||||||
|
|
|
||||||
6
index.js
6
index.js
|
|
@ -12,7 +12,7 @@ import dotenv from "dotenv-flow";
|
||||||
import wisp from "wisp-server-node";
|
import wisp from "wisp-server-node";
|
||||||
import router from "./middleware/ProxyExt/index.js";
|
import router from "./middleware/ProxyExt/index.js";
|
||||||
import { handler as astroSSR } from "./dist/server/entry.mjs";
|
import { handler as astroSSR } from "./dist/server/entry.mjs";
|
||||||
import cookies from "cookie-parser"
|
import cookies from "cookie-parser";
|
||||||
|
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
|
|
||||||
|
|
@ -33,7 +33,7 @@ const rh = rammerhead.createRammerhead({
|
||||||
const app = express();
|
const app = express();
|
||||||
app.use(astroSSR);
|
app.use(astroSSR);
|
||||||
|
|
||||||
app.use(cookies())
|
app.use(cookies());
|
||||||
|
|
||||||
// Set process.env.MASQR_ENABLED to "true" to enable masqr protection.
|
// Set process.env.MASQR_ENABLED to "true" to enable masqr protection.
|
||||||
if (MASQR_ENABLED == "true") {
|
if (MASQR_ENABLED == "true") {
|
||||||
|
|
@ -112,7 +112,7 @@ app.get("/search", async (req, res) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
app.get("*", (req, res) => {
|
app.get("*", (req, res) => {
|
||||||
res.sendFile(path.join(process.cwd(), "dist/client/404.html"));
|
res.redirect(302, "/404");
|
||||||
});
|
});
|
||||||
|
|
||||||
const server = createServer();
|
const server = createServer();
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ export async function masqrCheck(config, htmlFile) {
|
||||||
|
|
||||||
if (!req.cookies) {
|
if (!req.cookies) {
|
||||||
// Send an error
|
// Send an error
|
||||||
res.send("Request failed!")
|
res.send("Request failed!");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (req.cookies.authcheck) {
|
if (req.cookies.authcheck) {
|
||||||
|
|
|
||||||
18
package.json
18
package.json
|
|
@ -13,30 +13,30 @@
|
||||||
"lint:fix": "eslint --fix ."
|
"lint:fix": "eslint --fix ."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/node": "^8.3.2",
|
"@astrojs/node": "^8.3.4",
|
||||||
"@inox-tools/sitemap-ext": "^0.3.3",
|
"@inox-tools/sitemap-ext": "^0.3.3",
|
||||||
"@mercuryworkshop/bare-as-module3": "^2.2.2",
|
"@mercuryworkshop/bare-as-module3": "^2.2.2",
|
||||||
"@mercuryworkshop/bare-mux": "^2.0.9",
|
"@mercuryworkshop/bare-mux": "^2.0.9",
|
||||||
"@mercuryworkshop/epoxy-transport": "^2.1.11",
|
"@mercuryworkshop/epoxy-transport": "^2.1.11",
|
||||||
"@mercuryworkshop/libcurl-transport": "^1.3.10",
|
"@mercuryworkshop/libcurl-transport": "^1.3.10",
|
||||||
"@rubynetwork/rammerhead": "^1.3.2",
|
"@rubynetwork/rammerhead": "^1.3.2",
|
||||||
"@titaniumnetwork-dev/ultraviolet": "^3.2.6",
|
"@titaniumnetwork-dev/ultraviolet": "^3.2.7",
|
||||||
"@tomphttp/bare-server-node": "^2.0.4",
|
"@tomphttp/bare-server-node": "^2.0.4",
|
||||||
"@types/node": "^20.14.12",
|
"@types/node": "^20.16.9",
|
||||||
"astro": "^4.12.2",
|
"astro": "^4.15.9",
|
||||||
"chalk": "^5.3.0",
|
"chalk": "^5.3.0",
|
||||||
"cookie-parser": "^1.4.6",
|
"cookie-parser": "^1.4.6",
|
||||||
"dotenv-flow": "^4.1.0",
|
"dotenv-flow": "^4.1.0",
|
||||||
"express": "^4.19.2",
|
"express": "^4.21.0",
|
||||||
"notyf": "^3.10.0",
|
"notyf": "^3.10.0",
|
||||||
"sequelize": "^6.37.3",
|
"sequelize": "^6.37.3",
|
||||||
"sqlite3": "^5.1.7",
|
"sqlite3": "^5.1.7",
|
||||||
"wisp-server-node": "^1.1.4"
|
"wisp-server-node": "^1.1.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@typescript-eslint/eslint-plugin": "^7.17.0",
|
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
||||||
"@typescript-eslint/parser": "^7.17.0",
|
"@typescript-eslint/parser": "^7.18.0",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.1",
|
||||||
"eslint-plugin-astro": "^0.31.4",
|
"eslint-plugin-astro": "^0.31.4",
|
||||||
"prettier": "3.2.5",
|
"prettier": "3.2.5",
|
||||||
"prettier-plugin-astro": "^0.13.0"
|
"prettier-plugin-astro": "^0.13.0"
|
||||||
|
|
|
||||||
4754
pnpm-lock.yaml
generated
4754
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
|
|
@ -7,7 +7,6 @@ const { large } = Astro.props;
|
||||||
const classlist = "faq-card" + (large ? " faq-large" : "");
|
const classlist = "faq-card" + (large ? " faq-large" : "");
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
<div class={classlist}>
|
<div class={classlist}>
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -28,4 +27,4 @@ const classlist = "faq-card" + (large ? " faq-large" : "");
|
||||||
.faq-large {
|
.faq-large {
|
||||||
grid-column: span 2;
|
grid-column: span 2;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,4 @@
|
||||||
"description": "Alu is a sleek web proxy supporting multiple standards of communication, and wide levels of customization. Similar to other proxies such as Holy Unblocker, Alu allows you to access blocked content while maintaining your privacy.",
|
"description": "Alu is a sleek web proxy supporting multiple standards of communication, and wide levels of customization. Similar to other proxies such as Holy Unblocker, Alu allows you to access blocked content while maintaining your privacy.",
|
||||||
"keywords": "web proxy, unblocker, alu, alu proxy, privacy, customization, wisp protocol, holy unblocker, titanium network, definitely science, kazwire, radon games, nebula, nebula proxy, censorship, bypass censorship, anura"
|
"keywords": "web proxy, unblocker, alu, alu proxy, privacy, customization, wisp protocol, holy unblocker, titanium network, definitely science, kazwire, radon games, nebula, nebula proxy, censorship, bypass censorship, anura"
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
1
src/env.d.ts
vendored
1
src/env.d.ts
vendored
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference path="../.astro/types.d.ts" />
|
||||||
/// <reference types="astro/client" />
|
/// <reference types="astro/client" />
|
||||||
|
|
||||||
// ###> astro-i18n/type-generation ###
|
// ###> astro-i18n/type-generation ###
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,8 @@ interface Props {
|
||||||
|
|
||||||
const { title, optionalStylesheets } = Astro.props;
|
const { title, optionalStylesheets } = Astro.props;
|
||||||
|
|
||||||
const DESCRIPTION = "Alu is a sleek web proxy supporting multiple standards of communication, and wide levels of customization. Similar to other proxies such as Holy Unblocker, Alu allows you to access blocked content while maintaining your privacy.";
|
const DESCRIPTION =
|
||||||
|
"Alu is a sleek web proxy supporting multiple standards of communication, and wide levels of customization. Similar to other proxies such as Holy Unblocker, Alu allows you to access blocked content while maintaining your privacy.";
|
||||||
---
|
---
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
|
|
@ -25,8 +26,8 @@ const DESCRIPTION = "Alu is a sleek web proxy supporting multiple standards of c
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width" />
|
<meta name="viewport" content="width=device-width" />
|
||||||
<meta name="title" content="Alu" />
|
<meta name="title" content="Alu" />
|
||||||
<meta name="author" content="Titanium Network">
|
<meta name="author" content="Titanium Network" />
|
||||||
<meta name="description" content={DESCRIPTION}/>
|
<meta name="description" content={DESCRIPTION} />
|
||||||
<meta property="og:type" content="website" />
|
<meta property="og:type" content="website" />
|
||||||
<meta property="og:url" content="https://aluu.xyz" />
|
<meta property="og:url" content="https://aluu.xyz" />
|
||||||
<meta property="og:title" content="Alu" />
|
<meta property="og:title" content="Alu" />
|
||||||
|
|
@ -59,7 +60,7 @@ const DESCRIPTION = "Alu is a sleek web proxy supporting multiple standards of c
|
||||||
import IDBManager from "@components/ts/IDBManager";
|
import IDBManager from "@components/ts/IDBManager";
|
||||||
|
|
||||||
instantiateAlu();
|
instantiateAlu();
|
||||||
|
|
||||||
if (!window.idb) {
|
if (!window.idb) {
|
||||||
const db = IDBManager.loadIDB("AluDB", 1);
|
const db = IDBManager.loadIDB("AluDB", 1);
|
||||||
db.onupgradeneeded = () => {
|
db.onupgradeneeded = () => {
|
||||||
|
|
@ -87,67 +88,63 @@ const DESCRIPTION = "Alu is a sleek web proxy supporting multiple standards of c
|
||||||
<WelcomeLogging />
|
<WelcomeLogging />
|
||||||
<Footer />
|
<Footer />
|
||||||
<style is:global>
|
<style is:global>
|
||||||
:root {
|
:root {
|
||||||
--background-color: #191724;
|
--background-color: #191724;
|
||||||
--background-highlight: #1f1d2e;
|
--background-highlight: #1f1d2e;
|
||||||
--accent-color: #26233a;
|
--accent-color: #26233a;
|
||||||
--accent-color-brighter: #2e2b4a;
|
--accent-color-brighter: #2e2b4a;
|
||||||
--text-color: #e0def4;
|
--text-color: #e0def4;
|
||||||
--text-color-accent: #c7c5e0;
|
--text-color-accent: #c7c5e0;
|
||||||
--dropdown-background-color: #1f1d2e;
|
--dropdown-background-color: #1f1d2e;
|
||||||
}
|
}
|
||||||
[data-theme="alu"] {
|
[data-theme="alu"] {
|
||||||
--background-color: #191724;
|
--background-color: #191724;
|
||||||
--background-highlight: #1f1d2e;
|
--background-highlight: #1f1d2e;
|
||||||
--accent-color: #26233a;
|
--accent-color: #26233a;
|
||||||
--accent-color-brighter: #2e2b4a;
|
--accent-color-brighter: #2e2b4a;
|
||||||
--text-color: #e0def4;
|
--text-color: #e0def4;
|
||||||
--text-color-accent: #c7c5e0;
|
--text-color-accent: #c7c5e0;
|
||||||
--dropdown-background-color: #1f1d2e;
|
--dropdown-background-color: #1f1d2e;
|
||||||
}
|
}
|
||||||
[data-theme="mocha"] {
|
[data-theme="mocha"] {
|
||||||
/* Catppucin Mocha theme */
|
/* Catppucin Mocha theme */
|
||||||
--background-color: #1e1e2e;
|
--background-color: #1e1e2e;
|
||||||
--background-highlight: #45475a;
|
--background-highlight: #45475a;
|
||||||
--accent-color: #32324e;
|
--accent-color: #32324e;
|
||||||
--accent-color-brighter: #242539;
|
--accent-color-brighter: #242539;
|
||||||
--text-color: #cdd6f4;
|
--text-color: #cdd6f4;
|
||||||
--text-color-accent: #bac2de;
|
--text-color-accent: #bac2de;
|
||||||
--dropdown-background-color: #181825;
|
--dropdown-background-color: #181825;
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-theme="macchiato"] {
|
[data-theme="macchiato"] {
|
||||||
/* Catppuccin Macchiato Theme */
|
/* Catppuccin Macchiato Theme */
|
||||||
--background-color: #24273a;
|
--background-color: #24273a;
|
||||||
--background-highlight: #494d64;
|
--background-highlight: #494d64;
|
||||||
--accent-color: #323550;
|
--accent-color: #323550;
|
||||||
--accent-color-brighter: #2a2d42;
|
--accent-color-brighter: #2a2d42;
|
||||||
--text-color: #cad3f5;
|
--text-color: #cad3f5;
|
||||||
--text-color-accent: #b8c0e0;
|
--text-color-accent: #b8c0e0;
|
||||||
--dropdown-background-color: #1e2030;
|
--dropdown-background-color: #1e2030;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style is:global lang="scss">
|
<style is:global lang="scss">
|
||||||
* {
|
* {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
--s: 50px; /* control the size*/
|
--s: 50px; /* control the size*/
|
||||||
--darken: 30%;
|
--darken: 30%;
|
||||||
--c1: color-mix(in srgb, var(--background-color), black var(--darken));
|
--c1: color-mix(in srgb, var(--background-color), black var(--darken));
|
||||||
--c2: color-mix(in srgb, var(--accent-color), black var(--darken));
|
--c2: color-mix(in srgb, var(--accent-color), black var(--darken));
|
||||||
--c3: color-mix(in srgb, var(--dropdown-background-color), black var(--darken));
|
--c3: color-mix(in srgb, var(--dropdown-background-color), black var(--darken));
|
||||||
|
|
||||||
--_g: var(--c3) 0 120deg,#0000 0;
|
--_g: var(--c3) 0 120deg, #0000 0;
|
||||||
background:
|
background: conic-gradient(from -60deg at 50% calc(100% / 3), var(--_g)), conic-gradient(from 120deg at 50% calc(200% / 3), var(--_g)),
|
||||||
conic-gradient(from -60deg at 50% calc(100%/3),var(--_g)),
|
conic-gradient(from 60deg at calc(200% / 3), var(--c3) 60deg, var(--c2) 0 120deg, #0000 0), conic-gradient(from 180deg at calc(100% / 3), var(--c1) 60deg, var(--_g)),
|
||||||
conic-gradient(from 120deg at 50% calc(200%/3),var(--_g)),
|
linear-gradient(90deg, var(--c1) calc(100% / 6), var(--c2) 0 50%, var(--c1) 0 calc(500% / 6), var(--c2) 0);
|
||||||
conic-gradient(from 60deg at calc(200%/3),var(--c3) 60deg,var(--c2) 0 120deg,#0000 0),
|
background-size: calc(1.732 * var(--s)) var(--s);
|
||||||
conic-gradient(from 180deg at calc(100%/3),var(--c1) 60deg,var(--_g)),
|
|
||||||
linear-gradient(90deg,var(--c1) calc(100%/6),var(--c2) 0 50%, var(--c1) 0 calc(500%/6),var(--c2) 0);
|
|
||||||
background-size: calc(1.732*var(--s)) var(--s);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
|
|
@ -162,7 +159,7 @@ const DESCRIPTION = "Alu is a sleek web proxy supporting multiple standards of c
|
||||||
color: var(--text-color);
|
color: var(--text-color);
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// button, input {
|
// button, input {
|
||||||
// font-family: "Varela Round", sans-serif;
|
// font-family: "Varela Round", sans-serif;
|
||||||
// }
|
// }
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
import Layout from "../layouts/Layout.astro";
|
import Layout from "src/layouts/Layout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="404 | Alu">
|
<Layout title="404 | Alu">
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ export function getStaticPaths() {
|
||||||
</main>
|
</main>
|
||||||
<script src="@components/ts/settings.ts"></script>
|
<script src="@components/ts/settings.ts"></script>
|
||||||
<style is:global lang="scss">
|
<style is:global lang="scss">
|
||||||
.content-hidden{
|
.content-hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
#current-content {
|
#current-content {
|
||||||
|
|
|
||||||
|
|
@ -3,23 +3,21 @@ export const prerender = false;
|
||||||
import Layout from "../../layouts/Layout.astro";
|
import Layout from "../../layouts/Layout.astro";
|
||||||
import games from "../../json/games.json";
|
import games from "../../json/games.json";
|
||||||
|
|
||||||
import sitemap from 'sitemap-ext:config';
|
import sitemap from "sitemap-ext:config";
|
||||||
|
|
||||||
const gamesList = games as GameList;
|
const gamesList = games as GameList;
|
||||||
|
|
||||||
|
sitemap(async ({ setSitemap }) => {
|
||||||
sitemap(async ({ setSitemap}) => {
|
|
||||||
const gamesList = games as GameList;
|
const gamesList = games as GameList;
|
||||||
const urls = Object.keys(gamesList);
|
const urls = Object.keys(gamesList);
|
||||||
setSitemap(
|
setSitemap(
|
||||||
urls.map((game) => ({
|
urls.map((game) => ({
|
||||||
sitemap: true,
|
sitemap: true,
|
||||||
params: {
|
params: {
|
||||||
game: game,
|
game: game,
|
||||||
},
|
},
|
||||||
}),
|
}))
|
||||||
)
|
);
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// get the current game based on the information in the url
|
// get the current game based on the information in the url
|
||||||
|
|
@ -63,7 +61,7 @@ classList = classList.trim();
|
||||||
<div class="game-info">
|
<div class="game-info">
|
||||||
<div class="game-info-top">
|
<div class="game-info-top">
|
||||||
<div class="game-info-left">
|
<div class="game-info-left">
|
||||||
<img class="game-img" src={gameData.image} alt="">
|
<img class="game-img" src={gameData.image} alt="" />
|
||||||
<p class="game-title">{gameData.name}</p>
|
<p class="game-title">{gameData.name}</p>
|
||||||
</div>
|
</div>
|
||||||
<img src="/img/games/fullscreen.svg" alt="Fullscreen" id="game-fullscreen" class="icn" />
|
<img src="/img/games/fullscreen.svg" alt="Fullscreen" id="game-fullscreen" class="icn" />
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue