diff --git a/CHANGELOG_KAKUREGA.md b/CHANGELOG_KAKUREGA.md index 89a600ebdc90..0c9b225ba8e7 100644 --- a/CHANGELOG_KAKUREGA.md +++ b/CHANGELOG_KAKUREGA.md @@ -1,3 +1,28 @@ +## 1.35.0 +Release: 2024/04/14 +Base: 2024.3.1 + +### 新機能 +- ノート内にある絵文字を絵文字ピッカーに追加できる機能を実装 + ![image](https://media.kakurega.app/static/misskey/cc9f3350-915a-4d96-bffd-df93054881ef.png) + - ノート内にある絵文字をクリック→「絵文字ピッカーに追加」で追加できます + - 既に絵文字ピッカーに追加されている場合は追加できません +- リアクションした絵文字を絵文字ピッカーに追加できる機能を実装 + ![image](https://media.kakurega.app/static/misskey/f03f1852-2093-4cd3-91ea-37585b017a12.png) + - リアクション一覧から絵文字を右クリック (スマホの場合は長押し) →「絵文字ピッカーに追加」で追加できます + - 既に絵文字ピッカーに追加されている場合は追加できません +- リアクション数の非表示機能を実装 + ![image](https://media.kakurega.app/static/misskey/f5c550a1-ed02-4baa-bcac-972fe1af910d.png) + - ノート下部のリアクション数と、詳細ページのリアクション数を非表示にできます +- 誰がリアクションをしたのかを非表示にできる機能を実装 + ![image](https://media.kakurega.app/static/misskey/95edc174-826d-44da-8673-06968f8b60f0.png) + - リアクションをホバーした際のユーザー一覧と、詳細ページのリアクションタブにあるリアクションをしたユーザー一覧を非表示にできます + +「リアクション数の非表示機能」「誰がリアクションをしたのかを非表示にできる機能」は、設定→全般から設定できます + +### 変更 +- 時限ノートで1年以上先の日時を指定できないように変更 + ## 1.34.1 Release: 2024/04/11 Base: 2024.3.1 diff --git a/locales/index.d.ts b/locales/index.d.ts index 6d1a56535641..0cef75506fb9 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -5272,6 +5272,10 @@ export interface Locale extends ILocale { * このノートは{time}に消滅します */ "noteDeletationAt": ParameterizedString<"time">; + /** + * 1年以上先の日時を指定することはできません + */ + "cannotScheduleLaterThanOneYear": string; /** * アクティビティを非公開にする */ @@ -5296,6 +5300,22 @@ export interface Locale extends ILocale { * 投稿フォームをリセット */ "clearPost": string; + /** + * 絵文字ピッカーに追加 + */ + "addToEmojiPicker": string; + /** + * リアクション数の非表示 + */ + "hideReactionCount": string; + /** + * 誰がリアクションをしたのかを非表示にする + */ + "hideReactionUsers": string; + /** + * リアクションをホバーした際のユーザー一覧と、ノート詳細ページのリアクションタブにあるリアクションをしたユーザー一覧を非表示にします + */ + "hideReactionUsersDescription": string; "_bubbleGame": { /** * 遊び方 @@ -10272,6 +10292,24 @@ export interface Locale extends ILocale { */ "header": string; }; + "_hideReactionCount": { + /** + * 非表示にしない + */ + "none": string; + /** + * 自分のノートのみ + */ + "self": string; + /** + * 自分以外のノートのみ + */ + "others": string; + /** + * 全てのノート + */ + "all": string; + }; } declare const locales: { [lang: string]: Locale; diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index c0fc642cec25..699ba9c7446c 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1314,12 +1314,17 @@ surrender: "やめる" gameRetry: "リトライ" scheduledNoteDelete: "ノートの自己消滅" noteDeletationAt: "このノートは{time}に消滅します" +cannotScheduleLaterThanOneYear: "1年以上先の日時を指定することはできません" hideActivity: "アクティビティを非公開にする" hideActivityDescription: "自分のプロフィールのアクティビティ (概要/アクティビティタブ) を他人が見れないようにします。このオプションを有効にしても、自分であればプロフィールのアクティビティタブから引き続き閲覧できます。" channelAnnouncementDescription: "このお知らせはチャンネルのタイムライン上部に表示されます。最初の1行がタイトルとして表示され、2行目以降はお知らせをタップすることで表示されるようになります。" postForm: "投稿フォーム" postFormBottomSettingsDescription: "投稿フォームの下部に表示される項目の並び替えが出来ます。項目をクリックすると削除できます。" clearPost: "投稿フォームをリセット" +addToEmojiPicker: "絵文字ピッカーに追加" +hideReactionCount: "リアクション数の非表示" +hideReactionUsers: 誰がリアクションをしたのかを非表示にする +hideReactionUsersDescription: "リアクションをホバーした際のユーザー一覧と、ノート詳細ページのリアクションタブにあるリアクションをしたユーザー一覧を非表示にします" _bubbleGame: howToPlay: "遊び方" @@ -2737,3 +2742,8 @@ _offlineScreen: title: "オフライン - サーバーに接続できません" header: "サーバーに接続できません" +_hideReactionCount: + none: "非表示にしない" + self: "自分のノートのみ" + others: "自分以外のノートのみ" + all: "全てのノート" diff --git a/package.json b/package.json index fa09ecde8c34..6dd72385b71b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2024.3.1-kakurega.1.34.1", + "version": "2024.3.1-kakurega.1.35.0", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/backend/src/core/integrations/FanboxManagementService.ts b/packages/backend/src/core/integrations/FanboxManagementService.ts index 7dbdfe138b31..56604df306b6 100644 --- a/packages/backend/src/core/integrations/FanboxManagementService.ts +++ b/packages/backend/src/core/integrations/FanboxManagementService.ts @@ -128,7 +128,7 @@ export class FanboxManagementService implements OnApplicationShutdown { }); } - this.logger.info(`Found ${Object.keys(usersList).length} fanbox supporter(s)`); + this.logger.info(`Found ${usersList.size} fanbox supporter(s)`); this.logger.info('Cache updated.'); } catch (err: any) { this.logger.error('Failed to update fanbox supporter cache'); diff --git a/packages/backend/src/core/integrations/PatreonManagementService.ts b/packages/backend/src/core/integrations/PatreonManagementService.ts index 27826d547676..1641a1abad65 100644 --- a/packages/backend/src/core/integrations/PatreonManagementService.ts +++ b/packages/backend/src/core/integrations/PatreonManagementService.ts @@ -136,7 +136,7 @@ export class PatreonManagementService implements OnApplicationShutdown { }); } - this.logger.info(`Found ${Object.keys(usersList).length} patreon(s)`); + this.logger.info(`Found ${usersList.size} patreon(s)`); } catch (err: any) { this.logger.error('Failed to fetch patreon users'); this.logger.error(err); diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index 0ea945da6036..5fa674a7f839 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -103,6 +103,12 @@ export const meta = { id: '05655b05-5a09-47c3-af56-de0c0900791a', }, + cannotScheduleDeleteLaterThanOneYear: { + message: 'Scheduled delete time is later than one year.', + code: 'CANNOT_SCHEDULE_DELETE_LATER_THAN_ONE_YEAR', + id: 'b02b5edb-2741-4841-b692-d9893f1e6515', + }, + noSuchChannel: { message: 'No such channel.', code: 'NO_SUCH_CHANNEL', @@ -375,6 +381,10 @@ export default class extends Endpoint { // eslint- } else if (typeof ps.scheduledDelete.deleteAfter === 'number') { ps.scheduledDelete.deleteAt = Date.now() + ps.scheduledDelete.deleteAfter; } + + if (ps.scheduledDelete.deleteAt && ps.scheduledDelete.deleteAt > Date.now() + ms('1year')) { + throw new ApiError(meta.errors.cannotScheduleDeleteLaterThanOneYear); + } } let channel: MiChannel | null = null; diff --git a/packages/frontend/src/components/MkDeleteScheduleEditor.vue b/packages/frontend/src/components/MkDeleteScheduleEditor.vue index 1b15fbc064ae..3d6d4c4b507b 100644 --- a/packages/frontend/src/components/MkDeleteScheduleEditor.vue +++ b/packages/frontend/src/components/MkDeleteScheduleEditor.vue @@ -4,8 +4,9 @@ SPDX-License-Identifier: AGPL-3.0-only -->