Replace Cobalt branding with random element names

This commit is contained in:
Lawrence Millard 2025-02-06 17:49:57 +00:00
parent c48c64240b
commit 131cc2eb3c
9 changed files with 47 additions and 37 deletions

View File

@ -9,12 +9,14 @@ import { fileURLToPath } from "url";
import { env, isCluster } from "./config.js" import { env, isCluster } from "./config.js"
import { Red } from "./misc/console-text.js"; import { Red } from "./misc/console-text.js";
import { initCluster } from "./misc/cluster.js"; import { initCluster } from "./misc/cluster.js";
import { randomizeName } from "./misc/randomize-name.js";
const app = express(); const app = express();
const __filename = fileURLToPath(import.meta.url); const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename).slice(0, -4); const __dirname = path.dirname(__filename).slice(0, -4);
randomizeName();
app.disable("x-powered-by"); app.disable("x-powered-by");
if (env.apiURL) { if (env.apiURL) {

View File

@ -55,7 +55,7 @@ const env = {
} }
const genericUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"; const genericUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36";
const cobaltUserAgent = `cobalt/${version} (+https://github.com/imputnet/cobalt)`; const nickelZincGalliumUserAgent = `nickelZincGallium/${version} (+https://github.com/imputnet/nickelZincGallium)`;
export const setTunnelPort = (port) => env.tunnelPort = port; export const setTunnelPort = (port) => env.tunnelPort = port;
export const isCluster = env.instanceCount > 1; export const isCluster = env.instanceCount > 1;
@ -77,5 +77,5 @@ if (env.instanceCount > 1 && !env.redisURL) {
export { export {
env, env,
genericUserAgent, genericUserAgent,
cobaltUserAgent, nickelZincGalliumUserAgent,
} }

View File

@ -20,6 +20,7 @@ import { verifyStream, getInternalStream } from "../stream/manage.js";
import { createResponse, normalizeRequest, getIP } from "../processing/request.js"; import { createResponse, normalizeRequest, getIP } from "../processing/request.js";
import * as APIKeys from "../security/api-keys.js"; import * as APIKeys from "../security/api-keys.js";
import * as Cookies from "../processing/cookie/manager.js"; import * as Cookies from "../processing/cookie/manager.js";
import { randomizeName } from "../misc/randomize-name.js";
const git = { const git = {
branch: await getBranch(), branch: await getBranch(),
@ -45,8 +46,9 @@ export const runAPI = async (express, app, __dirname, isPrimary = true) => {
const startTime = new Date(); const startTime = new Date();
const startTimestamp = startTime.getTime(); const startTimestamp = startTime.getTime();
randomizeName();
const serverInfo = JSON.stringify({ const serverInfo = JSON.stringify({
cobalt: { nickelZincGallium: {
version: version, version: version,
url: env.apiURL, url: env.apiURL,
startTime: `${startTimestamp}`, startTime: `${startTimestamp}`,
@ -354,7 +356,7 @@ export const runAPI = async (express, app, __dirname, isPrimary = true) => {
}, () => { }, () => {
if (isPrimary) { if (isPrimary) {
console.log(`\n` + console.log(`\n` +
Bright(Cyan("cobalt ")) + Bright("API ^ω⁠^") + "\n" + Bright(Cyan("nickelZincGallium ")) + Bright("API ^ω⁠^") + "\n" +
"~~~~~~\n" + "~~~~~~\n" +
Bright("version: ") + version + "\n" + Bright("version: ") + version + "\n" +
@ -387,7 +389,7 @@ export const runAPI = async (express, app, __dirname, isPrimary = true) => {
exclusive: true exclusive: true
}, () => { }, () => {
const { port } = server.address(); const { port } = server.address();
console.log(`${Green('[✓]')} cobalt sub-instance running on 127.0.0.1:${port}`); console.log(`${Green('[✓]')} nickelZincGallium sub-instance running on 127.0.0.1:${port}`);
setTunnelPort(port); setTunnelPort(port);
}); });
} }

View File

@ -0,0 +1,6 @@
const names = ['nickel', 'zinc', 'gallium', 'silicon', 'copper', 'aluminium', 'calcium', 'magnesium', 'titanium'];
export function randomizeName() {
const randomIndex = Math.floor(Math.random() * names.length);
return names[randomIndex];
}

View File

@ -10,7 +10,7 @@ import cachedInfo from "$lib/state/server-info";
import { getServerInfo } from "$lib/api/server-info"; import { getServerInfo } from "$lib/api/server-info";
import type { Optional } from "$lib/types/generic"; import type { Optional } from "$lib/types/generic";
import type { CobaltAPIResponse, CobaltErrorResponse } from "$lib/types/api"; import type { NickelZincGalliumAPIResponse, NickelZincGalliumErrorResponse } from "$lib/types/api";
const getAuthorization = async () => { const getAuthorization = async () => {
const processing = get(settings).processing; const processing = get(settings).processing;
@ -22,7 +22,7 @@ const getAuthorization = async () => {
error: { error: {
code: "error.captcha_ongoing" code: "error.captcha_ongoing"
} }
} as CobaltErrorResponse; } as NickelZincGalliumErrorResponse;
} }
const session = await getSession(); const session = await getSession();
@ -78,7 +78,7 @@ const request = async (url: string) => {
error: { error: {
code: "error.api.unreachable" code: "error.api.unreachable"
} }
} as CobaltErrorResponse; } as NickelZincGalliumErrorResponse;
} }
const api = currentApiURL(); const api = currentApiURL();
@ -96,7 +96,7 @@ const request = async (url: string) => {
} }
} }
const response: Optional<CobaltAPIResponse> = await fetch(api, { const response: Optional<NickelZincGalliumAPIResponse> = await fetch(api, {
method: "POST", method: "POST",
redirect: "manual", redirect: "manual",
signal: AbortSignal.timeout(20000), signal: AbortSignal.timeout(20000),
@ -115,14 +115,14 @@ const request = async (url: string) => {
error: { error: {
code: "error.api.timed_out" code: "error.api.timed_out"
} }
} as CobaltErrorResponse; } as NickelZincGalliumErrorResponse;
} }
}); });
return response; return response;
} }
const probeCobaltTunnel = async (url: string) => { const probeNickelZincGalliumTunnel = async (url: string) => {
const request = await fetch(`${url}&p=1`).catch(() => {}); const request = await fetch(`${url}&p=1`).catch(() => {});
if (request?.status === 200) { if (request?.status === 200) {
return request?.status; return request?.status;
@ -132,5 +132,5 @@ const probeCobaltTunnel = async (url: string) => {
export default { export default {
request, request,
probeCobaltTunnel, probeNickelZincGalliumTunnel,
} }

View File

@ -4,17 +4,17 @@ import { get } from "svelte/store";
import { currentApiURL } from "$lib/api/api-url"; import { currentApiURL } from "$lib/api/api-url";
import { turnstileCreated, turnstileEnabled, turnstileSolved } from "$lib/state/turnstile"; import { turnstileCreated, turnstileEnabled, turnstileSolved } from "$lib/state/turnstile";
import cachedInfo from "$lib/state/server-info"; import cachedInfo from "$lib/state/server-info";
import type { CobaltServerInfoResponse, CobaltErrorResponse, CobaltServerInfo } from "$lib/types/api"; import type { NickelZincGalliumServerInfoResponse, NickelZincGalliumErrorResponse, NickelZincGalliumServerInfo } from "$lib/types/api";
export type CobaltServerInfoCache = { export type NickelZincGalliumServerInfoCache = {
info: CobaltServerInfo, info: NickelZincGalliumServerInfo,
origin: string, origin: string,
} }
const request = async () => { const request = async () => {
const apiEndpoint = `${currentApiURL()}/`; const apiEndpoint = `${currentApiURL()}/`;
const response: CobaltServerInfoResponse = await fetch(apiEndpoint, { const response: NickelZincGalliumServerInfoResponse = await fetch(apiEndpoint, {
redirect: "manual", redirect: "manual",
signal: AbortSignal.timeout(10000), signal: AbortSignal.timeout(10000),
}) })
@ -26,7 +26,7 @@ const request = async () => {
error: { error: {
code: "error.api.timed_out" code: "error.api.timed_out"
} }
} as CobaltErrorResponse } as NickelZincGalliumErrorResponse
} }
}); });
@ -50,7 +50,7 @@ export const getServerInfo = async () => {
const freshInfo = await request(); const freshInfo = await request();
if (!freshInfo || !("cobalt" in freshInfo)) { if (!freshInfo || !("nickelZincGallium" in freshInfo)) {
return false; return false;
} }
@ -61,7 +61,7 @@ export const getServerInfo = async () => {
}); });
// reload the page if turnstile sitekey changed // reload the page if turnstile sitekey changed
if (browser && get(turnstileEnabled) && cache && cache?.info?.cobalt?.turnstileSitekey !== freshInfo?.cobalt?.turnstileSitekey) { if (browser && get(turnstileEnabled) && cache && cache?.info?.nickelZincGallium?.turnstileSitekey !== freshInfo?.nickelZincGallium?.turnstileSitekey) {
window.location.reload(); window.location.reload();
} }

View File

@ -18,14 +18,14 @@ const variables = {
const contacts = { const contacts = {
discord: "https://discord.gg/pQPt8HBUPu", discord: "https://discord.gg/pQPt8HBUPu",
twitter: "https://x.com/justusecobalt", twitter: "https://x.com/justusenickelZincGallium",
github: "https://github.com/imputnet/cobalt", github: "https://github.com/imputnet/nickelZincGallium",
bluesky: "https://bsky.app/profile/cobalt.tools", bluesky: "https://bsky.app/profile/nickelZincGallium.tools",
telegram_ru: "https://t.me/justusecobalt_ru", telegram_ru: "https://t.me/justusenickelZincGallium_ru",
} }
const partners = { const partners = {
royalehosting: "https://royalehosting.net/?partner=cobalt", royalehosting: "https://royalehosting.net/?partner=nickelZincGallium",
} }
const donate = { const donate = {
@ -50,12 +50,12 @@ const siriShortcuts = {
}; };
const docs = { const docs = {
instanceHosting: "https://github.com/imputnet/cobalt/blob/main/docs/run-an-instance.md", instanceHosting: "https://github.com/imputnet/nickelZincGallium/blob/main/docs/run-an-instance.md",
webLicense: "https://github.com/imputnet/cobalt/blob/main/web/LICENSE", webLicense: "https://github.com/imputnet/nickelZincGallium/blob/main/web/LICENSE",
apiLicense: "https://github.com/imputnet/cobalt/blob/main/api/LICENSE", apiLicense: "https://github.com/imputnet/nickelZincGallium/blob/main/api/LICENSE",
}; };
const defaultApiURL = "https://api.cobalt.tools"; const defaultApiURL = "https://api.nickelZincGallium.tools";
export { donate, defaultApiURL, contacts, partners, siriShortcuts, docs }; export { donate, defaultApiURL, contacts, partners, siriShortcuts, docs };
export default variables; export default variables;

View File

@ -1,7 +1,7 @@
import { defaultLocale } from "$lib/i18n/translations"; import { defaultLocale } from "$lib/i18n/translations";
import type { CobaltSettings } from "$lib/types/settings"; import type { NickelZincGalliumSettings } from "$lib/types/settings";
const defaultSettings: CobaltSettings = { const defaultSettings: NickelZincGalliumSettings = {
schemaVersion: 4, schemaVersion: 4,
advanced: { advanced: {
debug: false, debug: false,

View File

@ -7,14 +7,14 @@
</script> </script>
<svelte:head> <svelte:head>
<title>{$t("general.cobalt")}</title> <title>{$t("general.nickelZincGallium")}</title>
<meta property="og:title" content={$t("general.cobalt")} /> <meta property="og:title" content={$t("general.nickelZincGallium")} />
</svelte:head> </svelte:head>
<div id="cobalt-save-container" class="center-column-container"> <div id="nickelZincGallium-save-container" class="center-column-container">
<SupportedServices /> <SupportedServices />
<main <main
id="cobalt-save" id="nickelZincGallium-save"
tabindex="-1" tabindex="-1"
data-first-focus data-first-focus
data-focus-ring-hidden data-focus-ring-hidden
@ -29,12 +29,12 @@
</div> </div>
<style> <style>
#cobalt-save-container { #nickelZincGallium-save-container {
padding: var(--padding); padding: var(--padding);
overflow: hidden; overflow: hidden;
} }
#cobalt-save { #nickelZincGallium-save {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
@ -54,7 +54,7 @@
} }
@media screen and (max-width: 535px) { @media screen and (max-width: 535px) {
#cobalt-save-container { #nickelZincGallium-save-container {
padding-top: calc(var(--padding) / 2); padding-top: calc(var(--padding) / 2);
} }