2023-04-10 05:49:50 +09:00
|
|
|
/*
|
|
|
|
* SPDX-License-Identifier: GPL-3.0
|
2023-07-14 02:03:13 +09:00
|
|
|
* Vesktop, a desktop app aiming to give you a snappier Discord Experience
|
2023-04-10 05:49:50 +09:00
|
|
|
* Copyright (c) 2023 Vendicated and Vencord contributors
|
|
|
|
*/
|
|
|
|
|
2023-04-04 07:41:52 +09:00
|
|
|
import { app } from "electron";
|
2024-01-07 10:44:14 +09:00
|
|
|
import { existsSync, readdirSync, renameSync, rmdirSync } from "fs";
|
2023-04-04 07:41:52 +09:00
|
|
|
import { join } from "path";
|
|
|
|
|
2024-01-07 10:44:14 +09:00
|
|
|
const LEGACY_DATA_DIR = join(app.getPath("appData"), "VencordDesktop", "VencordDesktop");
|
|
|
|
export const DATA_DIR = process.env.VENCORD_USER_DATA_DIR || join(app.getPath("userData"));
|
|
|
|
// TODO: remove eventually
|
|
|
|
if (existsSync(LEGACY_DATA_DIR)) {
|
|
|
|
try {
|
|
|
|
console.warn("Detected legacy settings dir", LEGACY_DATA_DIR + ".", "migrating to", DATA_DIR);
|
|
|
|
for (const file of readdirSync(LEGACY_DATA_DIR)) {
|
|
|
|
renameSync(join(LEGACY_DATA_DIR, file), join(DATA_DIR, file));
|
|
|
|
}
|
|
|
|
rmdirSync(LEGACY_DATA_DIR);
|
2024-01-16 03:09:09 +09:00
|
|
|
renameSync(
|
|
|
|
join(app.getPath("appData"), "VencordDesktop", "IndexedDB"),
|
|
|
|
join(DATA_DIR, "sessionData", "IndexedDB")
|
|
|
|
);
|
2024-01-07 10:44:14 +09:00
|
|
|
} catch (e) {
|
|
|
|
console.error("Migration failed", e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
app.setPath("sessionData", join(DATA_DIR, "sessionData"));
|
|
|
|
|
2023-04-06 03:01:31 +09:00
|
|
|
export const VENCORD_SETTINGS_DIR = join(DATA_DIR, "settings");
|
|
|
|
export const VENCORD_QUICKCSS_FILE = join(VENCORD_SETTINGS_DIR, "quickCss.css");
|
|
|
|
export const VENCORD_SETTINGS_FILE = join(VENCORD_SETTINGS_DIR, "settings.json");
|
2023-08-05 02:39:33 +09:00
|
|
|
export const VENCORD_THEMES_DIR = join(DATA_DIR, "themes");
|
2023-04-04 07:41:52 +09:00
|
|
|
|
2023-04-09 12:26:50 +09:00
|
|
|
// needs to be inline require because of circular dependency
|
|
|
|
// as otherwise "DATA_DIR" (which is used by ./settings) will be uninitialised
|
2023-04-11 02:26:52 +09:00
|
|
|
export const VENCORD_FILES_DIR =
|
|
|
|
(require("./settings") as typeof import("./settings")).Settings.store.vencordDir || join(DATA_DIR, "vencordDist");
|
2023-04-09 12:25:45 +09:00
|
|
|
|
2023-07-14 02:03:13 +09:00
|
|
|
export const USER_AGENT = `Vesktop/${app.getVersion()} (https://github.com/Vencord/Vesktop)`;
|
2023-04-09 12:04:49 +09:00
|
|
|
|
|
|
|
// dimensions shamelessly stolen from Discord Desktop :3
|
|
|
|
export const MIN_WIDTH = 940;
|
|
|
|
export const MIN_HEIGHT = 500;
|
|
|
|
export const DEFAULT_WIDTH = 1280;
|
|
|
|
export const DEFAULT_HEIGHT = 720;
|
2023-10-27 04:39:21 +09:00
|
|
|
|
2024-01-16 02:52:46 +09:00
|
|
|
export const DISCORD_HOSTNAMES = ["discord.com", "canary.discord.com", "ptb.discord.com"];
|
|
|
|
|
2023-10-27 04:39:21 +09:00
|
|
|
const UserAgents = {
|
2023-12-28 11:27:38 +09:00
|
|
|
darwin: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
|
|
|
linux: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
2023-10-27 04:39:21 +09:00
|
|
|
windows:
|
2023-12-28 11:27:38 +09:00
|
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
2023-10-27 04:39:21 +09:00
|
|
|
};
|
|
|
|
|
|
|
|
export const UserAgent = UserAgents[process.platform] || UserAgents.windows;
|
2023-11-01 06:14:30 +09:00
|
|
|
|
|
|
|
export const enum MessageBoxChoice {
|
|
|
|
Default,
|
|
|
|
Cancel
|
|
|
|
}
|