Merge pull request '1.19.1' (#7) from macdev/mac:main into main
Reviewed-on: https://git.nightcord.ru/nightcord/mac/pulls/7
This commit was merged in pull request #7.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<div align="center">
|
||||
<img src="https://nightcord.su/image.png" width="96" height="96" alt="Nightcord Logo">
|
||||
<img src="https://nightcord.ru/image.png" width="96" height="96" alt="Nightcord Logo">
|
||||
|
||||
# Nightcord
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
|
||||
[](https://discord.gg/nightcord)
|
||||
[](./LICENSE)
|
||||
[](https://git.nightcord.su/nightcord/nightcord)
|
||||
[](https://nightcord.su)
|
||||
[](https://git.nightcord.ru/nightcord/nightcord)
|
||||
[](https://nightcord.ru)
|
||||
|
||||
---
|
||||
|
||||
@@ -40,7 +40,7 @@ Then try reopening the file again
|
||||
### Clone & Build
|
||||
|
||||
```bash
|
||||
git clone https://git.nightcord.su/nightcord/mac.git
|
||||
git clone https://git.nightcord.ru/nightcord/mac.git
|
||||
cd nightcord
|
||||
pnpm install -r
|
||||
pnpm add -D react react-dom
|
||||
@@ -52,7 +52,7 @@ pnpm run package:dir
|
||||
|
||||
Source code:
|
||||
|
||||
https://git.nightcord.su/nightcord/mac
|
||||
https://git.nightcord.ru/nightcord/mac
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -565,7 +565,7 @@
|
||||
<div class="titlebar">
|
||||
<div class="titlebar-left">
|
||||
<img src="{{ICON_BASE64}}" class="logo-mark" />
|
||||
<span class="titlebar-title" style="cursor: pointer;" onclick="window.nightcord.openUrl('https://nightcord.su/')">Nightcord Installer</span>
|
||||
<span class="titlebar-title" style="cursor: pointer;" onclick="window.nightcord.openUrl('https://nightcord.ru/')">Nightcord Installer</span>
|
||||
<span class="titlebar-version" id="titlebar-version">...</span>
|
||||
</div>
|
||||
<div class="titlebar-right">
|
||||
@@ -649,7 +649,7 @@
|
||||
</svg>
|
||||
<span>Join Discord Server</span>
|
||||
</button>
|
||||
<button class="btn-setting-link btn-website" onclick="window.nightcord.openUrl('https://nightcord.su')">
|
||||
<button class="btn-setting-link btn-website" onclick="window.nightcord.openUrl('https://nightcord.ru')">
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="btn-link-icon">
|
||||
<circle cx="12" cy="12" r="10"></circle>
|
||||
<line x1="2" y1="12" x2="22" y2="12"></line>
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "nightcord",
|
||||
"private": "true",
|
||||
"version": "1.18.9",
|
||||
"version": "1.19.1",
|
||||
"description": "Everything Discord doesn't build, we create",
|
||||
"main": "dist/js/main.js",
|
||||
"homepage": "https://github.com/nightcordoff/nightcord",
|
||||
|
||||
@@ -728,7 +728,7 @@ function ThemesTab() {
|
||||
/>
|
||||
|
||||
<Notice.Info className={Margins.bottom16} style={{ width: "100%" }}>
|
||||
Looking for themes? Check out <Link href="https://nightcord.su/themes">NightCord Themes</Link> or search on <Link href="https://github.com/search?q=discord+theme">GitHub</Link>. When downloading from BetterDiscord, click "Download" and place the .theme.css file into your themes folder.
|
||||
Looking for themes? Check out <Link href="https://nightcord.ru/themes">NightCord Themes</Link> or search on <Link href="https://github.com/search?q=discord+theme">GitHub</Link>. When downloading from BetterDiscord, click "Download" and place the .theme.css file into your themes folder.
|
||||
</Notice.Info>
|
||||
|
||||
<div className={cl("link-row")}>
|
||||
|
||||
@@ -37,7 +37,7 @@ const KNOWN_SETTINGS_KEY = "EquicordChangelog_KnownSettings";
|
||||
const LAST_REPO_CHECK_KEY = "EquicordChangelog_LastRepoCheck";
|
||||
const GITHUB_COMPARE_ENDPOINT = "https://api.github.com/repos";
|
||||
const NIGHTCORD_RELEASES_REPO = "nightcord/mac";
|
||||
const NIGHTCORD_REPO_URL = "https://git.nightcord.su/nightcord/mac";
|
||||
const NIGHTCORD_REPO_URL = "https://git.nightcord.ru/nightcord/mac";
|
||||
|
||||
type KnownPluginSettingsMap = Map<string, Set<string>>;
|
||||
|
||||
|
||||
@@ -110,8 +110,8 @@ function UpdaterTab() {
|
||||
<div>
|
||||
<Span size="sm" color="text-subtle">Website</Span>
|
||||
<div>
|
||||
<Link href="https://nightcord.su" style={{ fontSize: 13 }}>
|
||||
nightcord.su
|
||||
<Link href="https://nightcord.ru" style={{ fontSize: 13 }}>
|
||||
nightcord.ru
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -34,51 +34,57 @@ import { openNotificationSettingsModal } from "./NotificationSettings";
|
||||
|
||||
const cl = classNameFactory("vc-vencord-tab-");
|
||||
|
||||
const DEV_TEAM = [
|
||||
{
|
||||
id: "ahki",
|
||||
name: "ahki__",
|
||||
role: "Owner",
|
||||
pfp: "https://i.imgur.com/gHucHbN.jpeg",
|
||||
description: "Founder and owner of Nightcord."
|
||||
},
|
||||
{
|
||||
id: "kza",
|
||||
name: "Kza",
|
||||
role: "Co-Owner",
|
||||
pfp: "https://i.imgur.com/wqKfGyK.jpeg",
|
||||
description: "Co-owner of Nightcord."
|
||||
},
|
||||
{
|
||||
id: "attachante",
|
||||
name: "attachante",
|
||||
role: "Developer",
|
||||
pfp: "https://i.imgur.com/R8s7Jz9.png",
|
||||
description: "Developer within the Nightcord team."
|
||||
},
|
||||
{
|
||||
id: "Fancy",
|
||||
name: "Fancy",
|
||||
role: "Developer",
|
||||
pfp: "https://i.imgur.com/RVJ2bUG.png",
|
||||
description: "Developer within the Nightcord team."
|
||||
},
|
||||
{
|
||||
id: "Xeen",
|
||||
name: "Xeen",
|
||||
role: "BOT Developer",
|
||||
pfp: "https://i.imgur.com/mXKUR8I.png",
|
||||
description: "Bot developer for Nightcord."
|
||||
},
|
||||
{
|
||||
id: "biemal",
|
||||
name: "Biemal",
|
||||
role: "WebApp Developer",
|
||||
pfp: "https://i.imgur.com/8PISMQu.png",
|
||||
description: "WebApp developer within the Nightcord team."
|
||||
}
|
||||
const DEV_TEAM_IDS = [
|
||||
{ id: "1086802921984893038", role: "Owner" },
|
||||
{ id: "171356978310938624", role: "Co-Owner" }
|
||||
];
|
||||
|
||||
function useDiscordUser(userId: string) {
|
||||
const [user, setUser] = React.useState<{ name: string; pfp: string; } | null>(null);
|
||||
React.useEffect(() => {
|
||||
const cached = UserStore?.getUser(userId);
|
||||
if (cached) {
|
||||
setUser({
|
||||
name: cached.globalName ?? cached.username,
|
||||
pfp: cached.avatar
|
||||
? `https://cdn.discordapp.com/avatars/${userId}/${cached.avatar}.webp?size=128`
|
||||
: `https://cdn.discordapp.com/embed/avatars/${Number(BigInt(userId) >> 22n) % 6}.png`
|
||||
});
|
||||
return;
|
||||
}
|
||||
fetch(`https://discord.com/api/v9/users/${userId}`, {
|
||||
headers: { Authorization: (window as any).token ?? "" }
|
||||
})
|
||||
.then(r => r.json())
|
||||
.then(u => setUser({
|
||||
name: u.global_name ?? u.username ?? userId,
|
||||
pfp: u.avatar
|
||||
? `https://cdn.discordapp.com/avatars/${userId}/${u.avatar}.webp?size=128`
|
||||
: `https://cdn.discordapp.com/embed/avatars/${Number(BigInt(userId) >> 22n) % 6}.png`
|
||||
}))
|
||||
.catch(() => setUser({ name: userId, pfp: `https://cdn.discordapp.com/embed/avatars/0.png` }));
|
||||
}, [userId]);
|
||||
return user;
|
||||
}
|
||||
|
||||
function DevCard({ id, role }: { id: string; role: string; }) {
|
||||
const user = useDiscordUser(id);
|
||||
return (
|
||||
<Card variant="primary" outline style={{ padding: "10px" }}>
|
||||
<Flex align={Flex.Align.CENTER} gap="10px">
|
||||
<Avatar
|
||||
src={user?.pfp ?? `https://cdn.discordapp.com/embed/avatars/0.png`}
|
||||
size="SIZE_48"
|
||||
/>
|
||||
<Flex direction={Flex.Direction.VERTICAL} style={{ flex: 1, gap: "0px" }}>
|
||||
<Heading tag="h3" style={{ marginBottom: "-2px" }}>{user?.name ?? "..."}</Heading>
|
||||
<Heading tag="h4" style={{ opacity: 0.6 }}>{role}</Heading>
|
||||
</Flex>
|
||||
</Flex>
|
||||
</Card>
|
||||
);
|
||||
}
|
||||
|
||||
function DevTeamSection() {
|
||||
const [showDevs, setShowDevs] = React.useState(false);
|
||||
|
||||
@@ -127,23 +133,9 @@ function DevTeamSection() {
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
`}</style>
|
||||
{DEV_TEAM.map(dev => {
|
||||
return (
|
||||
<Card key={dev.id} variant="primary" outline style={{ padding: "10px" }}>
|
||||
<Flex align={Flex.Align.CENTER} gap="10px">
|
||||
<Avatar
|
||||
src={dev.pfp}
|
||||
size="SIZE_48"
|
||||
/>
|
||||
<Flex direction={Flex.Direction.VERTICAL} style={{ flex: 1, gap: "0px" }}>
|
||||
<Heading tag="h3" style={{ marginBottom: "-2px" }}>{dev.name}</Heading>
|
||||
<Heading tag="h4" style={{ opacity: 0.6, marginBottom: "2px" }}>{dev.role}</Heading>
|
||||
<Paragraph size="xs" style={{ lineHeight: "1.2" }}>{dev.description}</Paragraph>
|
||||
</Flex>
|
||||
</Flex>
|
||||
</Card>
|
||||
);
|
||||
})}
|
||||
{DEV_TEAM_IDS.map(dev => (
|
||||
<DevCard key={dev.id} id={dev.id} role={dev.role} />
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
|
||||
@@ -14,9 +14,9 @@ import { join } from "path";
|
||||
|
||||
import { serializeErrors } from "./common";
|
||||
|
||||
const RELEASES_REPO = "nightcord/nightcord";
|
||||
const API_BASE = `https://git.nightcord.su/api/v1/repos/${RELEASES_REPO}`;
|
||||
const REPO_URL = `https://git.nightcord.su/${RELEASES_REPO}`;
|
||||
const RELEASES_REPO = "nightcord/mac";
|
||||
const API_BASE = `https://git.nightcord.ru/api/v1/repos/${RELEASES_REPO}`;
|
||||
const REPO_URL = `https://git.nightcord.ru/${RELEASES_REPO}`;
|
||||
declare const VERSION: string;
|
||||
const CURRENT_VERSION = `v${VERSION}`;
|
||||
const ZIP_FILE = "nightcord-dist.zip";
|
||||
|
||||
@@ -46,7 +46,7 @@ const STATUS_COLOR: Record<UserStatus, string> = {
|
||||
|
||||
// ─── API ──────────────────────────────────────────────────────────────────────
|
||||
|
||||
const API_BASE = "https://api.nightcord.su/api";
|
||||
const API_BASE = "https://api.nightcord.ru/api";
|
||||
|
||||
interface PrevNameEntry {
|
||||
timestamp: number;
|
||||
|
||||
@@ -166,14 +166,14 @@ export const PluginCards = ErrorBoundary.wrap(function PluginCards({ message }:
|
||||
}
|
||||
}
|
||||
|
||||
// Process components — NightCord Bot (nightcord.su, Component v2 Container format)
|
||||
// Process components — NightCord Bot (nightcord.ru, Component v2 Container format)
|
||||
if (message.author.id === NIGHTCORD_BOT_USER_ID) {
|
||||
const containerComponents = (message.components?.[0] as any)?.components;
|
||||
if (containerComponents?.length >= 3) {
|
||||
// Find ActionRow by presence of nested components (same pattern as Equibot check above)
|
||||
const actionRow = containerComponents.find((c: any) => c?.components);
|
||||
const pluginUrl = actionRow?.components?.[0]?.url;
|
||||
if (pluginUrl?.startsWith("https://nightcord.su/plugins/")) {
|
||||
if (pluginUrl?.startsWith("https://nightcord.ru/plugins/")) {
|
||||
const pluginNameFromUrl = decodeURIComponent(new URL(pluginUrl).pathname.split("/")[2]);
|
||||
const pluginNameNoSpaces = pluginNameFromUrl?.toLowerCase().replace(/\s+/g, "");
|
||||
const actualPluginName =
|
||||
|
||||
@@ -96,7 +96,7 @@ function UpdateBanner() {
|
||||
setStatus("Redirection vers le site...");
|
||||
|
||||
// Rediriger vers le site de téléchargement
|
||||
window.open("https://nightcord.su", "_blank");
|
||||
window.open("https://nightcord.ru", "_blank");
|
||||
|
||||
setTimeout(() => {
|
||||
setDismissed(true);
|
||||
|
||||
@@ -8,7 +8,7 @@ import definePlugin, { PluginNative } from "@utils/types";
|
||||
|
||||
const Native = VencordNative.pluginHelpers.TitlebarLink as PluginNative<typeof import("./native")>;
|
||||
|
||||
const TARGET_URL = "https://nightcord.su";
|
||||
const TARGET_URL = "https://nightcord.ru";
|
||||
|
||||
const CSS = `
|
||||
#nightcord-titlebar-btn {
|
||||
@@ -59,7 +59,7 @@ function remove() {
|
||||
export default definePlugin({
|
||||
name: "TitlebarLink",
|
||||
enabledByDefault: true,
|
||||
description: "Click on the central Discord title to open nightcord.su",
|
||||
description: "Click on the central Discord title to open nightcord.ru",
|
||||
authors: [{ name: "Nightcord", id: 0n }],
|
||||
required: true,
|
||||
patches: [],
|
||||
|
||||
@@ -92,7 +92,7 @@ async function loadBadges(url: string, noCache = false) {
|
||||
async function loadAllBadges(noCache = false) {
|
||||
const vencordBadges = await loadBadges("https://badges.vencord.dev/badges.json", noCache).catch(() => ({}));
|
||||
const equicordBadges = await loadBadges("https://badge.equicord.org/badges.json", noCache).catch(() => ({}));
|
||||
const nightcordBadges = await loadBadges("https://api.nightcord.su/badges", noCache).catch(() => ({}));
|
||||
const nightcordBadges = await loadBadges("https://api.nightcord.ru/badges", noCache).catch(() => ({}));
|
||||
|
||||
DonorBadges = vencordBadges;
|
||||
EquicordDonorBadges = equicordBadges;
|
||||
|
||||
Reference in New Issue
Block a user