From 11a6bd890cc752ee7abd2890773054743433eae1 Mon Sep 17 00:00:00 2001 From: tamaina <tamaina@hotmail.co.jp> Date: Sun, 12 Jun 2022 19:28:13 +0900 Subject: [PATCH 1/8] fix: some fixes of multiple notification read (#8819) * fix: limit multiple notification read * fix * fix --- .../src/server/api/common/read-notification.ts | 2 ++ .../src/server/api/endpoints/notifications/read.ts | 6 +++++- packages/sw/src/scripts/notification-read.ts | 12 +++++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) 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/sw/src/scripts/notification-read.ts b/packages/sw/src/scripts/notification-read.ts index 8433f902b4..5c1de89088 100644 --- a/packages/sw/src/scripts/notification-read.ts +++ b/packages/sw/src/scripts/notification-read.ts @@ -37,12 +37,22 @@ class SwNotificationReadManager { account.queue.push(data.body.id as string); + if (account.queue.length >= 20) { + if (account.timeout) clearTimeout(account.timeout); + const notificationIds = account.queue; + account.queue = []; + await api('notifications/read', data.userId, { notificationIds }); + return; + } + // 最後の呼び出しから200ms待ってまとめて処理する if (account.timeout) clearTimeout(account.timeout); account.timeout = setTimeout(() => { account.timeout = null; - api('notifications/read', data.userId, { notificationIds: account.queue }); + const notificationIds = account.queue; + account.queue = []; + api('notifications/read', data.userId, { notificationIds }); }, 200); } } From a8e7b1a303234b14f2ed2758efde649d7c5bf607 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 12 Jun 2022 19:50:43 +0900 Subject: [PATCH 2/8] =?UTF-8?q?fix(client):=20=E3=83=87=E3=83=83=E3=82=AD?= =?UTF-8?q?=E3=81=A7=E3=82=A6=E3=82=A3=E3=82=B8=E3=82=A7=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=81=AE=E6=83=85=E5=A0=B1=E3=81=8C=E4=BF=9D=E5=AD=98=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix #8818 --- CHANGELOG.md | 7 +++++++ packages/client/src/ui/deck/deck-store.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb16a1675d..3035e8d022 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,13 @@ You should also include the user name that made the change. --> +## 12.x.x (unreleased) + +### Improvements + +### Bugfixes +- Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo + ## 12.111.0 (2022/06/11) ### Improvements - Supports Unicode Emoji 14.0 @mei23 diff --git a/packages/client/src/ui/deck/deck-store.ts b/packages/client/src/ui/deck/deck-store.ts index c847bf2b43..b9bbbb96f2 100644 --- a/packages/client/src/ui/deck/deck-store.ts +++ b/packages/client/src/ui/deck/deck-store.ts @@ -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]); From 4e89d41f048beb6c962155e599acf21af8cda0fe Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 12 Jun 2022 19:50:47 +0900 Subject: [PATCH 3/8] lint --- packages/client/src/ui/deck/deck-store.ts | 24 +++++++++---------- .../client/src/ui/deck/widgets-column.vue | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/client/src/ui/deck/deck-store.ts b/packages/client/src/ui/deck/deck-store.ts index b9bbbb96f2..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<T>(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, - } + }, }); }); 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 @@ <script lang="ts" setup> import { } from 'vue'; -import XWidgets from '@/components/widgets.vue'; import XColumn from './column.vue'; import { addColumnWidget, Column, removeColumnWidget, setColumnWidgets, updateColumnWidget } from './deck-store'; +import XWidgets from '@/components/widgets.vue'; const props = defineProps<{ column: Column; From b15dbb818f89527fc955079fa5ef7a0f49fe7f4f Mon Sep 17 00:00:00 2001 From: futchitwo <74236683+futchitwo@users.noreply.github.com> Date: Sun, 12 Jun 2022 19:53:21 +0900 Subject: [PATCH 4/8] Fix(client): fix wrong gallery page component (#8815) --- packages/client/src/router.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 }, From 2a2f9b580181aa2c6bb15a79b2ee290727295df5 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 12 Jun 2022 19:53:33 +0900 Subject: [PATCH 5/8] New translations ja-JP.yml (Korean) (#8812) --- locales/ko-KR.yml | 3 +++ 1 file changed, 3 insertions(+) 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: "형식이 올바르지 않습니다" From d4484b13d5bd86aa8c92d66c50285e463dbd82d9 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 12 Jun 2022 19:54:49 +0900 Subject: [PATCH 6/8] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3035e8d022..14982ef387 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,9 @@ You should also include the user name that made the change. - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo ## 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 From 963758d8ecc7b83838c3994e42405fc0e965c799 Mon Sep 17 00:00:00 2001 From: Johann150 <johann.galle@protonmail.com> Date: Sun, 12 Jun 2022 17:25:06 +0200 Subject: [PATCH 7/8] fix: missing file name parameter (#8820) --- packages/backend/src/services/drive/generate-video-thumbnail.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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<IImage> { }); // JPEGに変換 (Webpでもいいが、MastodonはWebpをサポートせず表示できなくなる) - return await convertToJpeg(498, 280); + return await convertToJpeg(file, 498, 280); } finally { cleanup(); } From c9296cf095e9def2ae1338f232ad020d462a467b Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Mon, 13 Jun 2022 00:26:31 +0900 Subject: [PATCH 8/8] 12.111.1 --- CHANGELOG.md | 9 ++++----- package.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14982ef387..7854f0ea48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,12 +9,13 @@ You should also include the user name that made the change. --> -## 12.x.x (unreleased) - -### Improvements +## 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 @@ -42,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/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",