summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-01-23 20:13:46 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-01-23 20:13:46 +0900
commita5df2b029329e7a7c7287c8df8fc9f7adbcaba96 (patch)
treee96e7ab9a9c71160dba5fdc8c55d3b12194b4bc5 /packages
parentMerge branch 'develop' (diff)
parent13.2.0 (diff)
downloadmisskey-a5df2b029329e7a7c7287c8df8fc9f7adbcaba96.tar.gz
misskey-a5df2b029329e7a7c7287c8df8fc9f7adbcaba96.tar.bz2
misskey-a5df2b029329e7a7c7287c8df8fc9f7adbcaba96.zip
Merge branch 'develop'
Diffstat (limited to 'packages')
-rw-r--r--packages/backend/package.json8
-rw-r--r--packages/backend/src/boot/common.ts35
-rw-r--r--packages/backend/src/boot/master.ts33
-rw-r--r--packages/backend/src/boot/worker.ts23
-rw-r--r--packages/frontend/src/components/MkAchievements.vue6
-rw-r--r--packages/frontend/src/components/MkReactionsViewer.reaction.vue2
-rw-r--r--packages/frontend/src/pages/about-misskey.vue65
-rw-r--r--packages/frontend/src/pages/admin/object-storage.vue2
-rw-r--r--packages/frontend/src/pages/emojis.emoji.vue9
-rw-r--r--packages/frontend/src/pages/user/achievements.vue2
-rw-r--r--packages/frontend/src/scripts/aiscript/ui.ts2
11 files changed, 133 insertions, 54 deletions
diff --git a/packages/backend/package.json b/packages/backend/package.json
index be9012021f..565de4310d 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -23,9 +23,9 @@
"@tensorflow/tfjs-node": "4.1.0"
},
"dependencies": {
- "@bull-board/api": "^4.10.2",
- "@bull-board/fastify": "^4.10.2",
- "@bull-board/ui": "^4.10.2",
+ "@bull-board/api": "^4.11.0",
+ "@bull-board/fastify": "^4.11.0",
+ "@bull-board/ui": "^4.11.0",
"@discordapp/twemoji": "14.0.2",
"@fastify/accepts": "4.1.0",
"@fastify/cookie": "^8.3.0",
@@ -120,7 +120,7 @@
"typeorm": "0.3.11",
"typescript": "4.9.4",
"ulid": "2.3.0",
- "undici": "^5.15.1",
+ "undici": "^5.16.0",
"unzipper": "0.10.11",
"uuid": "9.0.0",
"vary": "1.1.2",
diff --git a/packages/backend/src/boot/common.ts b/packages/backend/src/boot/common.ts
new file mode 100644
index 0000000000..04aa26e652
--- /dev/null
+++ b/packages/backend/src/boot/common.ts
@@ -0,0 +1,35 @@
+import { NestFactory } from '@nestjs/core';
+import { ChartManagementService } from '@/core/chart/ChartManagementService.js';
+import { QueueProcessorService } from '@/queue/QueueProcessorService.js';
+import { NestLogger } from '@/NestLogger.js';
+import { QueueProcessorModule } from '@/queue/QueueProcessorModule.js';
+import { JanitorService } from '@/daemons/JanitorService.js';
+import { QueueStatsService } from '@/daemons/QueueStatsService.js';
+import { ServerStatsService } from '@/daemons/ServerStatsService.js';
+import { ServerService } from '@/server/ServerService.js';
+import { MainModule } from '@/MainModule.js';
+
+export async function server() {
+ const app = await NestFactory.createApplicationContext(MainModule, {
+ logger: new NestLogger(),
+ });
+ app.enableShutdownHooks();
+
+ const serverService = app.get(ServerService);
+ serverService.launch();
+
+ app.get(ChartManagementService).start();
+ app.get(JanitorService).start();
+ app.get(QueueStatsService).start();
+ app.get(ServerStatsService).start();
+}
+
+export async function jobQueue() {
+ const jobQueue = await NestFactory.createApplicationContext(QueueProcessorModule, {
+ logger: new NestLogger(),
+ });
+ jobQueue.enableShutdownHooks();
+
+ jobQueue.get(QueueProcessorService).start();
+ jobQueue.get(ChartManagementService).start();
+}
diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts
index 93cb3131ba..f5d936fadf 100644
--- a/packages/backend/src/boot/master.ts
+++ b/packages/backend/src/boot/master.ts
@@ -6,21 +6,12 @@ import cluster from 'node:cluster';
import chalk from 'chalk';
import chalkTemplate from 'chalk-template';
import semver from 'semver';
-import { NestFactory } from '@nestjs/core';
import Logger from '@/logger.js';
import { loadConfig } from '@/config.js';
import type { Config } from '@/config.js';
-import { lessThan } from '@/misc/prelude/array.js';
import { showMachineInfo } from '@/misc/show-machine-info.js';
-import { DaemonModule } from '@/daemons/DaemonModule.js';
-import { JanitorService } from '@/daemons/JanitorService.js';
-import { QueueStatsService } from '@/daemons/QueueStatsService.js';
-import { ServerStatsService } from '@/daemons/ServerStatsService.js';
-import { NestLogger } from '@/NestLogger.js';
-import { ChartManagementService } from '@/core/chart/ChartManagementService.js';
-import { ServerService } from '@/server/ServerService.js';
-import { MainModule } from '@/MainModule.js';
-import { envOption } from '../env.js';
+import { envOption } from '@/env.js';
+import { jobQueue, server } from './common.js';
const _filename = fileURLToPath(import.meta.url);
const _dirname = dirname(_filename);
@@ -73,14 +64,13 @@ export async function masterMain() {
process.exit(1);
}
- const app = await NestFactory.createApplicationContext(MainModule, {
- logger: new NestLogger(),
- });
- app.enableShutdownHooks();
-
- // start server
- const serverService = app.get(ServerService);
- serverService.launch();
+ if (envOption.onlyServer) {
+ await server();
+ } else if (envOption.onlyQueue) {
+ await jobQueue();
+ } else {
+ await server();
+ }
bootLogger.succ('Misskey initialized');
@@ -89,11 +79,6 @@ export async function masterMain() {
}
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
-
- app.get(ChartManagementService).start();
- app.get(JanitorService).start();
- app.get(QueueStatsService).start();
- app.get(ServerStatsService).start();
}
function showEnvironment(): void {
diff --git a/packages/backend/src/boot/worker.ts b/packages/backend/src/boot/worker.ts
index e0574643b7..ab75aaa572 100644
--- a/packages/backend/src/boot/worker.ts
+++ b/packages/backend/src/boot/worker.ts
@@ -1,23 +1,18 @@
import cluster from 'node:cluster';
-import { NestFactory } from '@nestjs/core';
-import { ChartManagementService } from '@/core/chart/ChartManagementService.js';
-import { QueueProcessorService } from '@/queue/QueueProcessorService.js';
-import { NestLogger } from '@/NestLogger.js';
-import { QueueProcessorModule } from '@/queue/QueueProcessorModule.js';
+import { envOption } from '@/env.js';
+import { jobQueue, server } from './common.js';
/**
* Init worker process
*/
export async function workerMain() {
- const jobQueue = await NestFactory.createApplicationContext(QueueProcessorModule, {
- logger: new NestLogger(),
- });
- jobQueue.enableShutdownHooks();
-
- // start job queue
- jobQueue.get(QueueProcessorService).start();
-
- jobQueue.get(ChartManagementService).start();
+ if (envOption.onlyServer) {
+ await server();
+ } else if (envOption.onlyQueue) {
+ await jobQueue();
+ } else {
+ await jobQueue();
+ }
if (cluster.isWorker) {
// Send a 'ready' message to parent process
diff --git a/packages/frontend/src/components/MkAchievements.vue b/packages/frontend/src/components/MkAchievements.vue
index 64fea96354..19d04721d8 100644
--- a/packages/frontend/src/components/MkAchievements.vue
+++ b/packages/frontend/src/components/MkAchievements.vue
@@ -16,8 +16,8 @@
<time v-tooltip="new Date(achievement.unlockedAt).toLocaleString()">{{ new Date(achievement.unlockedAt).getFullYear() }}/{{ new Date(achievement.unlockedAt).getMonth() + 1 }}/{{ new Date(achievement.unlockedAt).getDate() }}</time>
</span>
</div>
- <div :class="$style.description">{{ i18n.ts._achievements._types['_' + achievement.name].description }}</div>
- <div v-if="i18n.ts._achievements._types['_' + achievement.name].flavor" :class="$style.flavor">{{ i18n.ts._achievements._types['_' + achievement.name].flavor }}</div>
+ <div :class="$style.description">{{ withDescription ? i18n.ts._achievements._types['_' + achievement.name].description : '???' }}</div>
+ <div v-if="i18n.ts._achievements._types['_' + achievement.name].flavor && withDescription" :class="$style.flavor">{{ i18n.ts._achievements._types['_' + achievement.name].flavor }}</div>
</div>
</div>
<template v-if="withLocked">
@@ -49,8 +49,10 @@ import { ACHIEVEMENT_TYPES, ACHIEVEMENT_BADGES, claimAchievement } from '@/scrip
const props = withDefaults(defineProps<{
user: misskey.entities.User;
withLocked: boolean;
+ withDescription: boolean;
}>(), {
withLocked: true,
+ withDescription: true,
});
let achievements = $ref();
diff --git a/packages/frontend/src/components/MkReactionsViewer.reaction.vue b/packages/frontend/src/components/MkReactionsViewer.reaction.vue
index ec4042d18c..eed6b46594 100644
--- a/packages/frontend/src/components/MkReactionsViewer.reaction.vue
+++ b/packages/frontend/src/components/MkReactionsViewer.reaction.vue
@@ -21,6 +21,7 @@ import { useTooltip } from '@/scripts/use-tooltip';
import { $i } from '@/account';
import MkReactionEffect from '@/components/MkReactionEffect.vue';
import { claimAchievement } from '@/scripts/achievements';
+import { defaultStore } from '@/store';
const props = defineProps<{
reaction: string;
@@ -61,6 +62,7 @@ const toggleReaction = () => {
const anime = () => {
if (document.hidden) return;
+ if (!defaultStore.state.animation) return;
const rect = buttonEl.value.getBoundingClientRect();
const x = rect.left + 16;
diff --git a/packages/frontend/src/pages/about-misskey.vue b/packages/frontend/src/pages/about-misskey.vue
index 82f4e30a45..bc63d7159a 100644
--- a/packages/frontend/src/pages/about-misskey.vue
+++ b/packages/frontend/src/pages/about-misskey.vue
@@ -40,11 +40,31 @@
</FormSection>
<FormSection>
<template #label>{{ i18n.ts._aboutMisskey.contributors }}</template>
- <div class="_formLinksGrid">
- <FormLink to="https://github.com/syuilo" external>@syuilo</FormLink>
- <FormLink to="https://github.com/tamaina" external>@tamaina</FormLink>
- <FormLink to="https://github.com/acid-chicken" external>@acid-chicken</FormLink>
- <FormLink to="https://github.com/rinsuki" external>@rinsuki</FormLink>
+ <div :class="$style.contributors">
+ <a href="https://github.com/syuilo" target="_blank" :class="$style.contributor">
+ <img src="https://avatars.githubusercontent.com/u/4439005?v=4" :class="$style.contributorAvatar">
+ <span :class="$style.contributorUsername">@syuilo</span>
+ </a>
+ <a href="https://github.com/tamaina" target="_blank" :class="$style.contributor">
+ <img src="https://avatars.githubusercontent.com/u/7973572?v=4" :class="$style.contributorAvatar">
+ <span :class="$style.contributorUsername">@tamaina</span>
+ </a>
+ <a href="https://github.com/acid-chicken" target="_blank" :class="$style.contributor">
+ <img src="https://avatars.githubusercontent.com/u/20679825?v=4" :class="$style.contributorAvatar">
+ <span :class="$style.contributorUsername">@acid-chicken</span>
+ </a>
+ <a href="https://github.com/rinsuki" target="_blank" :class="$style.contributor">
+ <img src="https://avatars.githubusercontent.com/u/6533808?v=4" :class="$style.contributorAvatar">
+ <span :class="$style.contributorUsername">@rinsuki</span>
+ </a>
+ <a href="https://github.com/mei23" target="_blank" :class="$style.contributor">
+ <img src="https://avatars.githubusercontent.com/u/30769358?v=4" :class="$style.contributorAvatar">
+ <span :class="$style.contributorUsername">@mei23</span>
+ </a>
+ <a href="https://github.com/robflop" target="_blank" :class="$style.contributor">
+ <img src="https://avatars.githubusercontent.com/u/8159402?v=4" :class="$style.contributorAvatar">
+ <span :class="$style.contributorUsername">@robflop</span>
+ </a>
</div>
<template #caption><MkLink url="https://github.com/misskey-dev/misskey/graphs/contributors">{{ i18n.ts._aboutMisskey.allContributors }}</MkLink></template>
</FormSection>
@@ -295,3 +315,38 @@ definePageMetadata({
}
}
</style>
+
+<style lang="scss" module>
+.contributors {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
+ grid-gap: 12px;
+}
+
+.contributor {
+ display: flex;
+ align-items: center;
+ padding: 12px;
+ background: var(--buttonBg);
+ border-radius: 6px;
+
+ &:hover {
+ text-decoration: none;
+ background: var(--buttonHoverBg);
+ }
+
+ &.active {
+ color: var(--accent);
+ background: var(--buttonHoverBg);
+ }
+}
+
+.contributorAvatar {
+ width: 30px;
+ border-radius: 100%;
+}
+
+.contributorUsername {
+ margin-left: 12px;
+}
+</style>
diff --git a/packages/frontend/src/pages/admin/object-storage.vue b/packages/frontend/src/pages/admin/object-storage.vue
index 54d7e09532..6a6af637ed 100644
--- a/packages/frontend/src/pages/admin/object-storage.vue
+++ b/packages/frontend/src/pages/admin/object-storage.vue
@@ -38,7 +38,7 @@
<template #label>Access key</template>
</MkInput>
- <MkInput v-model="objectStorageSecretKey">
+ <MkInput v-model="objectStorageSecretKey" type="password">
<template #prefix><i class="ti ti-key"></i></template>
<template #label>Secret key</template>
</MkInput>
diff --git a/packages/frontend/src/pages/emojis.emoji.vue b/packages/frontend/src/pages/emojis.emoji.vue
index fb3bce570c..0edc290801 100644
--- a/packages/frontend/src/pages/emojis.emoji.vue
+++ b/packages/frontend/src/pages/emojis.emoji.vue
@@ -1,6 +1,6 @@
<template>
<button class="zuvgdzyu _button" @click="menu">
- <img :src="`/emoji/${emoji.name}.webp`" class="img" loading="lazy"/>
+ <img :src="emoji.url" class="img" loading="lazy"/>
<div class="body">
<div class="name _monospace">{{ emoji.name }}</div>
<div class="info">{{ emoji.aliases.join(' ') }}</div>
@@ -15,7 +15,12 @@ import copyToClipboard from '@/scripts/copy-to-clipboard';
import { i18n } from '@/i18n';
const props = defineProps<{
- emoji: Record<string, unknown>; // TODO
+ emoji: {
+ name: string;
+ aliases: string[];
+ category: string;
+ url: string;
+ };
}>();
function menu(ev) {
diff --git a/packages/frontend/src/pages/user/achievements.vue b/packages/frontend/src/pages/user/achievements.vue
index eaea26db4a..615613b7fc 100644
--- a/packages/frontend/src/pages/user/achievements.vue
+++ b/packages/frontend/src/pages/user/achievements.vue
@@ -1,6 +1,6 @@
<template>
<MkSpacer :content-max="1200">
- <MkAchievements :user="user" :with-locked="false"/>
+ <MkAchievements :user="user" :with-locked="false" :with-description="$i != null && (props.user.id === $i.id)"/>
</MkSpacer>
</template>
diff --git a/packages/frontend/src/scripts/aiscript/ui.ts b/packages/frontend/src/scripts/aiscript/ui.ts
index b1895a5f33..fb73c0b4b7 100644
--- a/packages/frontend/src/scripts/aiscript/ui.ts
+++ b/packages/frontend/src/scripts/aiscript/ui.ts
@@ -303,7 +303,7 @@ function getButtonOptions(def: values.Value | undefined, call: (fn: values.VFn,
if (primary) utils.assertBoolean(primary);
const rounded = def.value.get('rounded');
if (rounded) utils.assertBoolean(rounded);
- const disabled = button.value.get('disabled');
+ const disabled = def.value.get('disabled');
if (disabled) utils.assertBoolean(disabled);
return {