diff --git a/README.md b/README.md index 8ec423ed..2133865d 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,6 @@ This repository contains: - [HTTP CDN Server](/src/cdn) - [Utility and Database Models](/src/util) -## [Resources](https://docs.fosscord.com/resources/) +## [Contributing](https://docs.fosscord.com/contributing/) -- [Contributing](https://docs.fosscord.com/contributing/server/) - -## [Setup](https://docs.fosscord.com/server/setup/) +## [Setup](https://docs.fosscord.com/setup/server/) diff --git a/scripts/client.js b/scripts/client.js index 3cdd3719..606430be 100644 --- a/scripts/client.js +++ b/scripts/client.js @@ -65,6 +65,12 @@ const doPatch = (content) => { //content = content.replaceAll(/DiscordTag/g, "FosscordTag"); content = content.replaceAll(/\*Discord\*/g, `*${INSTANCE_NAME}*`); + // Replace window title + content = content.replaceAll( + ":c.base;", + `:(c.base == 'Discord' ? '${INSTANCE_NAME}' : c.base);`, + ); + //server -> guild const serverVariations = [ ['"Server"', '"Guild"'], @@ -186,6 +192,12 @@ const processFile = async (name) => { ); }; +const print = (x) => { + process.stdout.write( + `${x}${" ".repeat(process.stdout.columns - x.length)}\r`, + ); +}; + (async () => { const start = Date.now(); @@ -198,9 +210,7 @@ const processFile = async (name) => { while (INDEX_SCRIPTS.length > 0) { const asset = INDEX_SCRIPTS.shift(); - process.stdout.write( - `Scraping asset ${asset}. Remaining: ${INDEX_SCRIPTS.length} \r`, - ); + print(`Scraping asset ${asset}. Remaining: ${INDEX_SCRIPTS.length}`); const newAssets = await processFile(asset); assets.push(...newAssets); @@ -218,8 +228,8 @@ const processFile = async (name) => { while (CACHE_MISSES.length > 0) { const asset = CACHE_MISSES.shift(); - process.stdout.write( - `Scraping cache misses ${asset}. Remaining: ${CACHE_MISSES.length} \r`, + print( + `Scraping cache misses ${asset}. Remaining: ${CACHE_MISSES.length}`, ); if (existsSync(path.join(CACHE_PATH, `${asset}`))) { @@ -236,9 +246,7 @@ const processFile = async (name) => { while (existing.length > 0) { var file = existing.shift(); - process.stdout.write( - `Patching existing ${file}. Remaining: ${existing.length}. \r`, - ); + print(`Patching existing ${file}. Remaining: ${existing.length}.`); var text = await fs.readFile(path.join(CACHE_PATH, file)); if (file.includes(".js") || file.includes(".css")) { @@ -273,7 +281,7 @@ const processFile = async (name) => { : 1; const finishTime = averageRate * (assets.length - i); - process.stdout.write( + print( `Caching asset ${asset}. ` + `${i}/${assets.length - 1} = ${Math.floor( (i / (assets.length - 1)) * 100, @@ -282,8 +290,6 @@ const processFile = async (name) => { // Date.now() + finishTime, // ).toLocaleTimeString()}`, ); - //not adding to the previous mess, incase the finish time is added back or something - process.stdout.write(" \r"); promises.push(processFile(asset)); // await processFile(asset); diff --git a/src/api/util/handlers/Message.ts b/src/api/util/handlers/Message.ts index 93dc3bf4..d6fe48bd 100644 --- a/src/api/util/handlers/Message.ts +++ b/src/api/util/handlers/Message.ts @@ -223,6 +223,7 @@ export async function postHandleMessage(message: Message) { data.embeds.push(embed); } } catch (e) { + console.error(`[Embeds] Error while generating embed`, e); Sentry.captureException(e, (scope) => { scope.clear(); scope.setContext("request", { url }); diff --git a/src/api/util/utility/EmbedHandlers.ts b/src/api/util/utility/EmbedHandlers.ts index 2549937e..6ec4cac0 100644 --- a/src/api/util/utility/EmbedHandlers.ts +++ b/src/api/util/utility/EmbedHandlers.ts @@ -3,6 +3,7 @@ import fetch, { Response } from "node-fetch"; import * as cheerio from "cheerio"; import probe from "probe-image-size"; import crypto from "crypto"; +import { yellow } from "picocolors"; export const DEFAULT_FETCH_OPTIONS: any = { redirect: "follow", @@ -16,6 +17,8 @@ export const DEFAULT_FETCH_OPTIONS: any = { method: "GET", }; +let hasWarnedAboutImagor = false; + export const getProxyUrl = ( url: URL, width: number, @@ -41,11 +44,17 @@ export const getProxyUrl = ( return `${imagorServerUrl}/${hash}/${path}`; } - // TODO: Imagor documentation - console.log( - "Imagor has not been set up correctly. docs.fosscord.com/set/up/a/page/about/this", - ); - return ""; + if (!hasWarnedAboutImagor) { + hasWarnedAboutImagor = true; + console.log( + "[Embeds]", + yellow( + "Imagor has not been set up correctly. https://docs.fosscord.com/setup/server/configuration/imagor/", + ), + ); + } + + return url.toString(); }; const getMeta = ($: cheerio.CheerioAPI, name: string): string | undefined => {