diff --git a/.gitignore b/.gitignore index 93650145b..e01ce4d2e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ database.db tsconfig.tsbuildinfo files/ assets/cache -.env config.json assets/cacheMisses @@ -17,6 +16,5 @@ build *.log *.log.ansi *.tmp -#tmp/ dump/ package-lock.json diff --git a/scripts/rights.js b/scripts/rights.js index 473d48505..29452eb10 100644 --- a/scripts/rights.js +++ b/scripts/rights.js @@ -44,3 +44,13 @@ discordLike -= Rights.FLAGS.EDIT_FLAGS; discordLike -= Rights.FLAGS.SELF_EDIT_FLAGS; discordLike -= Rights.FLAGS.MANAGE_GROUPS; console.log(`Discord.com-like rights:`, discordLike); + +//start 1760002018 +discordLike -= Rights.FLAGS.SELF_ADD_DISCOVERABLE; +discordLike -= Rights.FLAGS.SELF_DELETE_DISABLE; +discordLike -= Rights.FLAGS.DEBTABLE; +discordLike -= Rights.FLAGS.POGGERS; +discordLike -= Rights.FLAGS.SELF_EDIT_NAME; +//end 1760002018 + +console.log(`1760002018-like rights: ${discordRights}`); diff --git a/src/api/start.ts b/src/api/start.ts index 7975d0856..79b9df142 100644 --- a/src/api/start.ts +++ b/src/api/start.ts @@ -26,13 +26,14 @@ config(); import { FosscordServer } from "./Server"; import cluster from "cluster"; import os from "os"; -let cores = 1; +const cores = 1; +/* try { cores = Number(process.env.THREADS) || os.cpus().length; } catch { console.log("[API] Failed to get thread count! Using 1..."); } - +*/ if (cluster.isPrimary && process.env.NODE_ENV == "production") { console.log(`Primary ${process.pid} is running`); diff --git a/src/cdn/start.ts b/src/cdn/start.ts index c36a6b73a..9880eeef1 100644 --- a/src/cdn/start.ts +++ b/src/cdn/start.ts @@ -20,7 +20,7 @@ require("module-alias/register"); import "dotenv/config"; import { CDNServer } from "./Server"; -const server = new CDNServer({ port: Number(process.env.PORT) || 3003 }); +const server = new CDNServer({ port: Number(process.env.PORT) || 3001 }); server .start() .then(() => { diff --git a/src/gateway/start.ts b/src/gateway/start.ts index 79448f91b..df05029f9 100644 --- a/src/gateway/start.ts +++ b/src/gateway/start.ts @@ -25,7 +25,7 @@ import { config } from "dotenv"; config(); let port = Number(process.env.PORT); -if (isNaN(port)) port = 3002; +if (isNaN(port)) port = 3001; const server = new Server({ port, diff --git a/src/util/config/types/ApiConfiguration.ts b/src/util/config/types/ApiConfiguration.ts index 3ed8c860a..b8f113613 100644 --- a/src/util/config/types/ApiConfiguration.ts +++ b/src/util/config/types/ApiConfiguration.ts @@ -15,10 +15,14 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ - +import fs from "fs"; export class ApiConfiguration { defaultVersion: string = "9"; activeVersions: string[] = ["6", "7", "8", "9"]; - useFosscordEnhancements: boolean = true; - endpointPublic: string = ""; + useFosscordEnhancements: boolean = false; + endpointPublic: string = + fs.readFileSync("./tmp/PROT", { encoding: "utf8" }) + + "://" + + fs.readFileSync("./tmp/HOST", { encoding: "utf8" }) || + "http://localhost:3001"; } diff --git a/src/util/config/types/EndpointConfiguration.ts b/src/util/config/types/EndpointConfiguration.ts index e7afe4947..2d8c686c2 100644 --- a/src/util/config/types/EndpointConfiguration.ts +++ b/src/util/config/types/EndpointConfiguration.ts @@ -15,9 +15,21 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ - +import fs from "fs"; export class EndpointConfiguration { - endpointClient: string | null = null; - endpointPrivate: string | null = null; - endpointPublic: string | null = null; + endpointClient: string | null = + fs.readFileSync("./tmp/PROT", { encoding: "utf8" }) + + "://" + + fs.readFileSync("./tmp/HOST", { encoding: "utf8" }) || + "http://localhost:3001"; + endpointPrivate: string | null = + fs.readFileSync("./tmp/PROT", { encoding: "utf8" }) + + "://" + + fs.readFileSync("./tmp/HOST", { encoding: "utf8" }) || + "http://localhost:3001"; + endpointPublic: string | null = + fs.readFileSync("./tmp/PROT", { encoding: "utf8" }) + + "://" + + fs.readFileSync("./tmp/HOST", { encoding: "utf8" }) || + "http://localhost:3001"; } diff --git a/src/util/config/types/GeneralConfiguration.ts b/src/util/config/types/GeneralConfiguration.ts index ba7503b75..dd6604001 100644 --- a/src/util/config/types/GeneralConfiguration.ts +++ b/src/util/config/types/GeneralConfiguration.ts @@ -17,15 +17,22 @@ */ import { Snowflake } from "@fosscord/util"; - +import fs from "fs"; export class GeneralConfiguration { - instanceName: string = "Fosscord Instance"; - instanceDescription: string | null = - "This is a Fosscord instance made in the pre-release days"; - frontPage: string | null = null; - tosPage: string | null = null; - correspondenceEmail: string | null = null; - correspondenceUserID: string | null = null; + instanceName: string = "CE1CECL"; + instanceDescription: string | null = "ChrisEric1 CECL"; + frontPage: string | null = + fs.readFileSync("./tmp/PROT", { encoding: "utf8" }) + + "://" + + fs.readFileSync("./tmp/HOST", { encoding: "utf8" }) || + "http://localhost:3001"; + tosPage: string | null = + fs.readFileSync("./tmp/PROT", { encoding: "utf8" }) + + "://" + + fs.readFileSync("./tmp/HOST", { encoding: "utf8" }) || + "http://localhost:3001"; + correspondenceEmail: string | null = "christopherericlentocha@gmail.com"; + correspondenceUserID: string | null = "christopherericlentocha@gmail.com"; image: string | null = null; instanceId: string = Snowflake.generate(); } diff --git a/src/util/config/types/GifConfiguration.ts b/src/util/config/types/GifConfiguration.ts index 0e5583faf..690635280 100644 --- a/src/util/config/types/GifConfiguration.ts +++ b/src/util/config/types/GifConfiguration.ts @@ -17,7 +17,7 @@ */ export class GifConfiguration { - enabled: boolean = true; + enabled: boolean = false; provider = "tenor" as const; // more coming soon - apiKey?: string = "LIVDSRZULELA"; + apiKey?: string = ""; } diff --git a/src/util/config/types/RegionConfiguration.ts b/src/util/config/types/RegionConfiguration.ts index ac7760d10..e23a2d7dd 100644 --- a/src/util/config/types/RegionConfiguration.ts +++ b/src/util/config/types/RegionConfiguration.ts @@ -20,17 +20,17 @@ import fs from "fs"; import { Region } from "."; export class RegionConfiguration { - default: string = "fosscord"; + default: string = "cecl"; useDefaultAsOptimal: boolean = true; available: Region[] = [ { - id: "fosscord", - name: "Fosscord", + id: "cecl", + name: "CECL", endpoint: fs.readFileSync("./tmp/HOST", { encoding: "utf8" }) || - "localhost:3004", - vip: false, - custom: false, + "localhost:3001", + vip: true, + custom: true, deprecated: false, }, ]; diff --git a/src/util/config/types/RegisterConfiguration.ts b/src/util/config/types/RegisterConfiguration.ts index b8db00779..fe2c7a995 100644 --- a/src/util/config/types/RegisterConfiguration.ts +++ b/src/util/config/types/RegisterConfiguration.ts @@ -28,12 +28,12 @@ export class RegisterConfiguration { dateOfBirth: DateOfBirthConfiguration = new DateOfBirthConfiguration(); password: PasswordConfiguration = new PasswordConfiguration(); disabled: boolean = false; - requireCaptcha: boolean = true; + requireCaptcha: boolean = false; requireInvite: boolean = false; guestsRequireInvite: boolean = true; - allowNewRegistration: boolean = true; + allowNewRegistration: boolean = false; allowMultipleAccounts: boolean = true; - blockProxies: boolean = true; - incrementingDiscriminators: boolean = false; // random otherwise - defaultRights: string = "875069521787904"; // See `npm run generate:rights` + blockProxies: boolean = false; + incrementingDiscriminators: boolean = true; // random otherwise + defaultRights: string = "30297756269806"; // See `npm run generate:rights` } diff --git a/src/util/config/types/SecurityConfiguration.ts b/src/util/config/types/SecurityConfiguration.ts index 7ae311e4b..2bc5b18a0 100644 --- a/src/util/config/types/SecurityConfiguration.ts +++ b/src/util/config/types/SecurityConfiguration.ts @@ -22,7 +22,7 @@ import { CaptchaConfiguration, TwoFactorConfiguration } from "."; export class SecurityConfiguration { captcha: CaptchaConfiguration = new CaptchaConfiguration(); twoFactor: TwoFactorConfiguration = new TwoFactorConfiguration(); - autoUpdate: boolean | number = true; + autoUpdate: boolean | number = false; requestSignature: string = crypto.randomBytes(32).toString("base64"); jwtSecret: string = crypto.randomBytes(256).toString("base64"); // header to get the real user ip address diff --git a/src/util/config/types/SentryConfiguration.ts b/src/util/config/types/SentryConfiguration.ts index ea8899054..ac686ebf6 100644 --- a/src/util/config/types/SentryConfiguration.ts +++ b/src/util/config/types/SentryConfiguration.ts @@ -17,11 +17,14 @@ */ import { hostname } from "os"; - +import fs from "fs"; export class SentryConfiguration { enabled: boolean = false; endpoint: string = - "https://05e8e3d005f34b7d97e920ae5870a5e5@sentry.thearcanebrony.net/6"; + fs.readFileSync("./tmp/PROT", { encoding: "utf8" }) + + "://" + + fs.readFileSync("./tmp/HOST", { encoding: "utf8" }) || + "http://localhost:3001"; traceSampleRate: number = 1.0; environment: string = hostname(); } diff --git a/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts b/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts index 797ef4eea..2b7a4bb80 100644 --- a/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts +++ b/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts @@ -18,5 +18,5 @@ export class ClientReleaseConfiguration { useLocalRelease: boolean = true; //TODO - upstreamVersion: string = "0.0.264"; + upstreamVersion: string = "0.0.0"; } diff --git a/src/util/config/types/subconfigurations/guild/AutoJoin.ts b/src/util/config/types/subconfigurations/guild/AutoJoin.ts index aabead63b..4a12a006f 100644 --- a/src/util/config/types/subconfigurations/guild/AutoJoin.ts +++ b/src/util/config/types/subconfigurations/guild/AutoJoin.ts @@ -19,5 +19,5 @@ export class AutoJoinConfiguration { enabled: boolean = true; guilds: string[] = []; - canLeave: boolean = true; + canLeave: boolean = false; } diff --git a/src/util/config/types/subconfigurations/guild/Discovery.ts b/src/util/config/types/subconfigurations/guild/Discovery.ts index 25a0cb4b7..00ca979e9 100644 --- a/src/util/config/types/subconfigurations/guild/Discovery.ts +++ b/src/util/config/types/subconfigurations/guild/Discovery.ts @@ -20,5 +20,5 @@ export class DiscoveryConfiguration { showAllGuilds: boolean = false; useRecommendation: boolean = false; // TODO: Recommendation, privacy concern? offset: number = 0; - limit: number = 24; + limit: number = 100; } diff --git a/src/util/config/types/subconfigurations/register/DateOfBirth.ts b/src/util/config/types/subconfigurations/register/DateOfBirth.ts index debe8c446..6be9313f1 100644 --- a/src/util/config/types/subconfigurations/register/DateOfBirth.ts +++ b/src/util/config/types/subconfigurations/register/DateOfBirth.ts @@ -17,6 +17,6 @@ */ export class DateOfBirthConfiguration { - required: boolean = true; - minimum: number = 13; // in years + required: boolean = false; + minimum: number = 0; // in years } diff --git a/src/util/config/types/subconfigurations/register/Email.ts b/src/util/config/types/subconfigurations/register/Email.ts index 4f95caf1d..0ef81bc62 100644 --- a/src/util/config/types/subconfigurations/register/Email.ts +++ b/src/util/config/types/subconfigurations/register/Email.ts @@ -17,9 +17,9 @@ */ export class RegistrationEmailConfiguration { - required: boolean = false; + required: boolean = true; allowlist: boolean = false; - blocklist: boolean = true; + blocklist: boolean = false; domains: string[] = []; // TODO: efficiently save domain blocklist in database // domains: fs.readFileSync(__dirname + "/blockedEmailDomains.txt", { encoding: "utf8" }).split("\n"), } diff --git a/src/util/config/types/subconfigurations/register/Password.ts b/src/util/config/types/subconfigurations/register/Password.ts index ca04e9e42..409faa8a2 100644 --- a/src/util/config/types/subconfigurations/register/Password.ts +++ b/src/util/config/types/subconfigurations/register/Password.ts @@ -17,9 +17,9 @@ */ export class PasswordConfiguration { - required: boolean = false; - minLength: number = 8; - minNumbers: number = 2; - minUpperCase: number = 2; + required: boolean = true; + minLength: number = 1; + minNumbers: number = 0; + minUpperCase: number = 0; minSymbols: number = 0; } diff --git a/src/util/entities/UserSettings.ts b/src/util/entities/UserSettings.ts index 4c273591b..c81d31520 100644 --- a/src/util/entities/UserSettings.ts +++ b/src/util/entities/UserSettings.ts @@ -34,10 +34,10 @@ export class UserSettings extends BaseClassWithoutId { animate_emoji: boolean = true; @Column({ nullable: true }) - animate_stickers: number = 0; + animate_stickers: number = 1; @Column({ nullable: true }) - contact_sync_enabled: boolean = false; + contact_sync_enabled: boolean = true; @Column({ nullable: true }) convert_emoticons: boolean = false; @@ -49,16 +49,16 @@ export class UserSettings extends BaseClassWithoutId { default_guilds_restricted: boolean = false; @Column({ nullable: true }) - detect_platform_accounts: boolean = false; + detect_platform_accounts: boolean = true; @Column({ nullable: true }) developer_mode: boolean = true; @Column({ nullable: true }) - disable_games_tab: boolean = true; + disable_games_tab: boolean = false; @Column({ nullable: true }) - enable_tts_command: boolean = false; + enable_tts_command: boolean = true; @Column({ nullable: true }) explicit_content_filter: number = 0; @@ -67,10 +67,10 @@ export class UserSettings extends BaseClassWithoutId { friend_source_flags: FriendSourceFlags = { all: true }; @Column({ nullable: true }) - gateway_connected: boolean = false; + gateway_connected: boolean = true; @Column({ nullable: true }) - gif_auto_play: boolean = false; + gif_auto_play: boolean = true; @Column({ nullable: true, type: "simple-json" }) guild_folders: GuildFolder[] = []; // every top guild is displayed as a "folder" @@ -106,10 +106,10 @@ export class UserSettings extends BaseClassWithoutId { show_current_game: boolean = true; @Column({ nullable: true }) - status: "online" | "offline" | "dnd" | "idle" | "invisible" = "online"; + status: "online" | "offline" | "dnd" | "idle" | "invisible" = "dnd"; @Column({ nullable: true }) - stream_notifications_enabled: boolean = false; + stream_notifications_enabled: boolean = true; @Column({ nullable: true }) theme: "dark" | "light" = "dark"; // dark diff --git a/src/util/entities/VoiceState.ts b/src/util/entities/VoiceState.ts index 734ec3f1b..fec0ac1ed 100644 --- a/src/util/entities/VoiceState.ts +++ b/src/util/entities/VoiceState.ts @@ -85,7 +85,7 @@ export class VoiceState extends BaseClass { self_stream?: boolean; @Column({ nullable: true }) - self_video: boolean; + self_video?: boolean; @Column() suppress: boolean; // whether this user is muted by the current user diff --git a/src/webrtc/start.ts b/src/webrtc/start.ts index cceb399bc..3fc3b9367 100644 --- a/src/webrtc/start.ts +++ b/src/webrtc/start.ts @@ -23,7 +23,7 @@ import { config } from "dotenv"; import { Server } from "./Server"; config(); -const port = Number(process.env.PORT) || 3004; +const port = Number(process.env.PORT) || 3001; const server = new Server({ port, diff --git a/tmp/HOST b/tmp/HOST index 527a63837..a654047d8 100644 --- a/tmp/HOST +++ b/tmp/HOST @@ -1 +1 @@ -localhost:3001 +localhost:3001/spacebar \ No newline at end of file diff --git a/tmp/IPv4 b/tmp/IPv4 index 7b9ad531d..e56ea71e3 100644 --- a/tmp/IPv4 +++ b/tmp/IPv4 @@ -1 +1 @@ -127.0.0.1 +127.0.0.1 \ No newline at end of file diff --git a/tmp/NAME b/tmp/NAME index 2fbb50c4a..d18580b3c 100644 --- a/tmp/NAME +++ b/tmp/NAME @@ -1 +1 @@ -localhost +localhost \ No newline at end of file diff --git a/tmp/PORT b/tmp/PORT index be10e3b71..6fc99cfbb 100644 --- a/tmp/PORT +++ b/tmp/PORT @@ -1 +1 @@ -3001 +3001 \ No newline at end of file