diff --git a/CHANGELOG.md b/CHANGELOG.md index eb16a1675d..7854f0ea48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,18 @@ You should also include the user name that made the change. --> +## 12.111.1 (2022/06/13) + +### Bugfixes +- some fixes of multiple notification read @tamaina +- some GenerateVideoThumbnail failed @Johann150 +- Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo +- Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo + ## 12.111.0 (2022/06/11) +### Note +- Node.js 16.15.0 or later is required + ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina @@ -32,10 +43,8 @@ You should also include the user name that made the change. ### Bugfixes - Server: keep file order of note attachement @Johann150 -- Server: fix caching @Johann150 - Server: fix missing foreign key for reports leading to reports page being unusable @Johann150 - Server: fix internal in-memory caching @Johann150 -- Server: use correct order of attachments on notes @Johann150 - Server: prevent crash when processing certain PNGs @syuilo - Server: Fix unable to generate video thumbnails @mei23 - Server: Fix `Cannot find module` issue @mei23 diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index 4e7369a5ef..e0a839a2c8 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -842,6 +842,9 @@ oneDay: "1일" oneWeek: "일주일" reflectMayTakeTime: "반영되기까지 시간이 걸릴 수 있습니다." failedToFetchAccountInformation: "계정 정보를 가져오지 못했습니다" +rateLimitExceeded: "요청 제한 횟수를 초과하였습니다" +cropImage: "이미지 자르기" +cropImageAsk: "이미지를 자르시겠습니까?" _emailUnavailable: used: "이 메일 주소는 사용중입니다" format: "형식이 올바르지 않습니다" diff --git a/package.json b/package.json index e3340005ad..a035745727 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "12.111.0", + "version": "12.111.1", "codename": "indigo", "repository": { "type": "git", diff --git a/packages/backend/src/server/api/common/read-notification.ts b/packages/backend/src/server/api/common/read-notification.ts index 0dad35bcc2..8c4ba41a36 100644 --- a/packages/backend/src/server/api/common/read-notification.ts +++ b/packages/backend/src/server/api/common/read-notification.ts @@ -9,6 +9,8 @@ export async function readNotification( userId: User['id'], notificationIds: Notification['id'][] ) { + if (notificationIds.length === 0) return; + // Update documents await Notifications.update({ id: In(notificationIds), diff --git a/packages/backend/src/server/api/endpoints/notifications/read.ts b/packages/backend/src/server/api/endpoints/notifications/read.ts index 65e96d4862..e7839b2460 100644 --- a/packages/backend/src/server/api/endpoints/notifications/read.ts +++ b/packages/backend/src/server/api/endpoints/notifications/read.ts @@ -34,7 +34,11 @@ export const paramDef = { { type: 'object', properties: { - notificationIds: { type: 'array', items: { type: 'string', format: 'misskey:id' } }, + notificationIds: { + type: 'array', + items: { type: 'string', format: 'misskey:id' }, + maxItems: 100, + }, }, required: ['notificationIds'], }, diff --git a/packages/backend/src/services/drive/generate-video-thumbnail.ts b/packages/backend/src/services/drive/generate-video-thumbnail.ts index ca12ab8d3d..b3fd025abc 100644 --- a/packages/backend/src/services/drive/generate-video-thumbnail.ts +++ b/packages/backend/src/services/drive/generate-video-thumbnail.ts @@ -24,7 +24,7 @@ export async function GenerateVideoThumbnail(source: string): Promise { }); // JPEGに変換 (Webpでもいいが、MastodonはWebpをサポートせず表示できなくなる) - return await convertToJpeg(498, 280); + return await convertToJpeg(file, 498, 280); } finally { cleanup(); } diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts index db39dd741c..96c793166c 100644 --- a/packages/client/src/router.ts +++ b/packages/client/src/router.ts @@ -41,7 +41,7 @@ const defaultRoutes = [ { path: '/gallery', component: page(() => import('./pages/gallery/index.vue')) }, { path: '/gallery/new', component: page(() => import('./pages/gallery/edit.vue')) }, { path: '/gallery/:postId/edit', component: page(() => import('./pages/gallery/edit.vue')), props: route => ({ postId: route.params.postId }) }, - { path: '/gallery/:postId', component: page(() => import('./pages/gallery/edit.vue')), props: route => ({ postId: route.params.postId }) }, + { path: '/gallery/:postId', component: page(() => import('./pages/gallery/post.vue')), props: route => ({ postId: route.params.postId }) }, { path: '/channels', component: page('channels') }, { path: '/channels/new', component: page('channel-editor') }, { path: '/channels/:channelId/edit', component: page('channel-editor'), props: true }, diff --git a/packages/client/src/ui/deck/deck-store.ts b/packages/client/src/ui/deck/deck-store.ts index c847bf2b43..03d57c3467 100644 --- a/packages/client/src/ui/deck/deck-store.ts +++ b/packages/client/src/ui/deck/deck-store.ts @@ -1,9 +1,9 @@ import { throttle } from 'throttle-debounce'; +import { markRaw } from 'vue'; +import { notificationTypes } from 'misskey-js'; +import { Storage } from '../../pizzax'; import { i18n } from '@/i18n'; import { api } from '@/os'; -import { markRaw } from 'vue'; -import { Storage } from '../../pizzax'; -import { notificationTypes } from 'misskey-js'; type ColumnWidget = { name: string; @@ -32,35 +32,35 @@ function copy(x: T): T { export const deckStore = markRaw(new Storage('deck', { profile: { where: 'deviceAccount', - default: 'default' + default: 'default', }, columns: { where: 'deviceAccount', - default: [] as Column[] + default: [] as Column[], }, layout: { where: 'deviceAccount', - default: [] as Column['id'][][] + default: [] as Column['id'][][], }, columnAlign: { where: 'deviceAccount', - default: 'left' as 'left' | 'right' | 'center' + default: 'left' as 'left' | 'right' | 'center', }, alwaysShowMainColumn: { where: 'deviceAccount', - default: true + default: true, }, navWindow: { where: 'deviceAccount', - default: true + default: true, }, columnMargin: { where: 'deviceAccount', - default: 16 + default: 16, }, columnHeaderHeight: { where: 'deviceAccount', - default: 42 + default: 42, }, })); @@ -109,7 +109,7 @@ export const saveDeck = throttle(1000, () => { value: { columns: deckStore.reactiveState.columns.value, layout: deckStore.reactiveState.layout.value, - } + }, }); }); @@ -276,7 +276,7 @@ export function setColumnWidgets(id: Column['id'], widgets: ColumnWidget[]) { saveDeck(); } -export function updateColumnWidget(id: Column['id'], widgetId: string, WidgetData: any) { +export function updateColumnWidget(id: Column['id'], widgetId: string, widgetData: any) { const columns = copy(deckStore.state.columns); const columnIndex = deckStore.state.columns.findIndex(c => c.id === id); const column = copy(deckStore.state.columns[columnIndex]); diff --git a/packages/client/src/ui/deck/widgets-column.vue b/packages/client/src/ui/deck/widgets-column.vue index 10c6f5adf6..9b10f602fb 100644 --- a/packages/client/src/ui/deck/widgets-column.vue +++ b/packages/client/src/ui/deck/widgets-column.vue @@ -10,9 +10,9 @@