From aefc941df3d445720ae0ba60215e58f75b8e0001 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 29 Oct 2023 16:28:32 +0900 Subject: [PATCH 01/17] typo --- .../backend/src/server/api/endpoints/notes/hybrid-timeline.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts b/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts index 7f9d728976..19c24a78f4 100644 --- a/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/hybrid-timeline.ts @@ -239,7 +239,7 @@ export default class extends Endpoint { // eslint- query.andWhere(new Brackets(qb => { qb.where('note.channelId IN (:...followingChannelIds)', { followingChannelIds }); - qb.andWhere('note.channelId IS NULL'); + qb.orWhere('note.channelId IS NULL'); })); } else { query.andWhere('note.channelId IS NULL'); From 59cc101752f0f860fc8df713884622747b0ee510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sun, 29 Oct 2023 19:33:35 +0900 Subject: [PATCH 02/17] =?UTF-8?q?fix(backend):=20=E3=83=97=E3=83=AD?= =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=BC=E3=83=AB=E3=81=AE=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E7=B4=B9=E4=BB=8B=E6=AC=84=E3=81=AEMFM=E3=82=92=E9=80=A3?= =?UTF-8?q?=E5=90=88=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=20(#1218?= =?UTF-8?q?4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * (fix) federate user description mfm * fix * Update Changelog --- CHANGELOG.md | 1 + packages/backend/src/core/activitypub/ApRendererService.ts | 2 ++ packages/backend/src/core/activitypub/models/ApPersonService.ts | 2 +- packages/backend/src/core/activitypub/type.ts | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 420bc87cae..9a0f9aee90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,7 @@ - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 +- Fix: Misskey v2023.11.0以降同士の通信では、プロフィールの自己紹介欄のMFMが連合するようになりました(リモートユーザーの自己紹介欄が正しく表示されない問題を修正) ## 2023.10.2 diff --git a/packages/backend/src/core/activitypub/ApRendererService.ts b/packages/backend/src/core/activitypub/ApRendererService.ts index e29bc1d096..49f9ebe3fb 100644 --- a/packages/backend/src/core/activitypub/ApRendererService.ts +++ b/packages/backend/src/core/activitypub/ApRendererService.ts @@ -495,6 +495,7 @@ export class ApRendererService { preferredUsername: user.username, name: user.name, summary: profile.description ? this.mfmService.toHtml(mfm.parse(profile.description)) : null, + _misskey_summary: profile.description, icon: avatar ? this.renderImage(avatar) : null, image: banner ? this.renderImage(banner) : null, tag, @@ -644,6 +645,7 @@ export class ApRendererService { '_misskey_quote': 'misskey:_misskey_quote', '_misskey_reaction': 'misskey:_misskey_reaction', '_misskey_votes': 'misskey:_misskey_votes', + '_misskey_summary': 'misskey:_misskey_summary', 'isCat': 'misskey:isCat', // vcard vcard: 'http://www.w3.org/2006/vcard/ns#', diff --git a/packages/backend/src/core/activitypub/models/ApPersonService.ts b/packages/backend/src/core/activitypub/models/ApPersonService.ts index 47f8d7313e..7164feec9d 100644 --- a/packages/backend/src/core/activitypub/models/ApPersonService.ts +++ b/packages/backend/src/core/activitypub/models/ApPersonService.ts @@ -321,7 +321,7 @@ export class ApPersonService implements OnModuleInit { await transactionalEntityManager.save(new MiUserProfile({ userId: user.id, - description: person.summary ? this.apMfmService.htmlToMfm(truncate(person.summary, summaryLength), person.tag) : null, + description: person._misskey_summary ? truncate(person._misskey_summary, summaryLength) : person.summary ? this.apMfmService.htmlToMfm(truncate(person.summary, summaryLength), person.tag) : null, url, fields, birthday: bday?.[0] ?? null, diff --git a/packages/backend/src/core/activitypub/type.ts b/packages/backend/src/core/activitypub/type.ts index 16ff86e894..d9fcc99066 100644 --- a/packages/backend/src/core/activitypub/type.ts +++ b/packages/backend/src/core/activitypub/type.ts @@ -12,6 +12,7 @@ export interface IObject { id?: string; name?: string | null; summary?: string; + _misskey_summary?: string; published?: string; cc?: ApObject; to?: ApObject; From 9ad48dae0402d163ec3de926c64027cfb5eaab7e Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 29 Oct 2023 19:34:44 +0900 Subject: [PATCH 03/17] Update CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a0f9aee90..10eeb770bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,8 @@ ### Server - Enhance: RedisへのTLのキャッシュをオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 +- Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました + - 相手がMisskey v2023.11.0以降である必要があります - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 @@ -47,7 +49,6 @@ - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 -- Fix: Misskey v2023.11.0以降同士の通信では、プロフィールの自己紹介欄のMFMが連合するようになりました(リモートユーザーの自己紹介欄が正しく表示されない問題を修正) ## 2023.10.2 From cb1449be09c9c821fc089b39ad6c8297975d5504 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 29 Oct 2023 19:39:08 +0900 Subject: [PATCH 04/17] 2023.11.0-beta.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5c09a99a41..4c8769ac9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2023.11.0-beta.4", + "version": "2023.11.0-beta.5", "codename": "nasubi", "repository": { "type": "git", From d9cfea8b101876bb68ba54112b59bdba4a6073fd Mon Sep 17 00:00:00 2001 From: yupix Date: Mon, 30 Oct 2023 08:17:42 +0900 Subject: [PATCH 05/17] =?UTF-8?q?fix:=20=E5=80=8B=E4=BA=BA=E3=82=AB?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=81=AEemoji=E3=81=8C=E3=83=90=E3=83=83?= =?UTF-8?q?=E3=83=86=E3=83=AA=E3=83=BC=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=82=8B=20#12189=20(#12190)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/emojilist.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/frontend/src/emojilist.json b/packages/frontend/src/emojilist.json index fde06a4aa0..eae822e652 100644 --- a/packages/frontend/src/emojilist.json +++ b/packages/frontend/src/emojilist.json @@ -1061,7 +1061,7 @@ ["💰", "moneybag", 6], ["🪙", "coin", 6], ["💳", "credit_card", 6], - ["🪫", "identification_card", 6], + ["🪪", "identification_card", 6], ["💎", "gem", 6], ["⚖", "balance_scale", 6], ["🧰", "toolbox", 6], From 8f01757a7fa0e6e405f536e50e887ddbea0b4c82 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 30 Oct 2023 08:18:43 +0900 Subject: [PATCH 06/17] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10eeb770bc..8e4ce5bede 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,7 @@ - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 +- Fix: 個人カードのemojiがバッテリーになっている問題を修正 ### Server - Enhance: RedisへのTLのキャッシュをオフにできるように From 2de4d3329d0d9ea9b014b773156e55a976904a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8A=E3=81=95=E3=82=80=E3=81=AE=E3=81=B2=E3=81=A8?= <46447427+samunohito@users.noreply.github.com> Date: Mon, 30 Oct 2023 08:19:27 +0900 Subject: [PATCH 07/17] =?UTF-8?q?Fix:=20=E3=83=95=E3=82=A9=E3=83=AD?= =?UTF-8?q?=E3=83=BC=E3=81=97=E3=81=9F=E3=83=A6=E3=83=BC=E3=82=B6=E3=81=8C?= =?UTF-8?q?=E3=80=81=E8=87=AA=E5=88=86=E3=81=AE=E3=83=95=E3=82=A9=E3=83=AD?= =?UTF-8?q?=E3=83=BC=E3=81=97=E3=81=A6=E3=81=84=E3=81=AA=E3=81=84=E3=83=81?= =?UTF-8?q?=E3=83=A3=E3=83=B3=E3=83=8D=E3=83=AB=E3=81=AB=E3=83=8E=E3=83=BC?= =?UTF-8?q?=E3=83=88=E3=82=92=E6=8A=95=E7=A8=BF=E3=81=97=E3=81=9F=E6=99=82?= =?UTF-8?q?=E3=80=81=E3=81=9D=E3=81=AE=E3=83=8E=E3=83=BC=E3=83=88=E3=81=8C?= =?UTF-8?q?HTL=E3=81=A7=E8=A6=8B=E3=81=88=E3=81=A6=E3=81=97=E3=81=BE?= =?UTF-8?q?=E3=81=86=20(#12186)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * #12181 の問題に対処 「ユーザー・チャンネルともにフォローあり」のときの絞り込みに不備があり、フォローしているユーザの投稿であればチャンネルのフォロー関係なく通過するようになってしまっていた * fix CHANGELOG.md --------- Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com> --- CHANGELOG.md | 2 +- packages/backend/src/server/api/endpoints/notes/timeline.ts | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e4ce5bede..abfb0692bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,7 +49,7 @@ - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 -- Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 +- Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 ## 2023.10.2 diff --git a/packages/backend/src/server/api/endpoints/notes/timeline.ts b/packages/backend/src/server/api/endpoints/notes/timeline.ts index e048bc4dd2..5016bd3acb 100644 --- a/packages/backend/src/server/api/endpoints/notes/timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/timeline.ts @@ -183,7 +183,11 @@ export default class extends Endpoint { // eslint- const followingChannelIds = followingChannels.map(x => x.followeeId); query.andWhere(new Brackets(qb => { qb - .where('note.userId IN (:...meOrFolloweeIds)', { meOrFolloweeIds: meOrFolloweeIds }) + .where(new Brackets(qb2 => { + qb2 + .where('note.userId IN (:...meOrFolloweeIds)', { meOrFolloweeIds: meOrFolloweeIds }) + .andWhere('note.channelId IS NULL'); + })) .orWhere('note.channelId IN (:...followingChannelIds)', { followingChannelIds }); })); } else if (followees.length > 0) { From 117db08880f728efd469a726bea7f8f00e74b2ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Mon, 30 Oct 2023 08:20:32 +0900 Subject: [PATCH 08/17] =?UTF-8?q?fix(backend):=20=E3=83=97=E3=83=AD?= =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=BC=E3=83=AB=E3=81=AE=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E7=B4=B9=E4=BB=8B=E6=AC=84=E3=81=AEMFM=E3=82=92=E9=80=A3?= =?UTF-8?q?=E5=90=88=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=EF=BC=88?= =?UTF-8?q?=E5=AE=9F=E8=A3=85=E6=BC=8F=E3=82=8C=EF=BC=89=20(#12185)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * (refactor) eliminate nested ternary operation * fix lint * Jissou more --- .../activitypub/models/ApPersonService.ts | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/core/activitypub/models/ApPersonService.ts b/packages/backend/src/core/activitypub/models/ApPersonService.ts index 7164feec9d..d6a7de0601 100644 --- a/packages/backend/src/core/activitypub/models/ApPersonService.ts +++ b/packages/backend/src/core/activitypub/models/ApPersonService.ts @@ -319,9 +319,17 @@ export class ApPersonService implements OnModuleInit { emojis, })) as MiRemoteUser; + let _description: string | null = null; + + if (person._misskey_summary) { + _description = truncate(person._misskey_summary, summaryLength); + } else if (person.summary) { + _description = this.apMfmService.htmlToMfm(truncate(person.summary, summaryLength), person.tag); + } + await transactionalEntityManager.save(new MiUserProfile({ userId: user.id, - description: person._misskey_summary ? truncate(person._misskey_summary, summaryLength) : person.summary ? this.apMfmService.htmlToMfm(truncate(person.summary, summaryLength), person.tag) : null, + description: _description, url, fields, birthday: bday?.[0] ?? null, @@ -487,10 +495,18 @@ export class ApPersonService implements OnModuleInit { }); } + let _description: string | null = null; + + if (person._misskey_summary) { + _description = truncate(person._misskey_summary, summaryLength); + } else if (person.summary) { + _description = this.apMfmService.htmlToMfm(truncate(person.summary, summaryLength), person.tag); + } + await this.userProfilesRepository.update({ userId: exist.id }, { url, fields, - description: person.summary ? this.apMfmService.htmlToMfm(truncate(person.summary, summaryLength), person.tag) : null, + description: _description, birthday: bday?.[0] ?? null, location: person['vcard:Address'] ?? null, }); From c239058624dcd880ec1c5f3c436f3a2a06fc22c3 Mon Sep 17 00:00:00 2001 From: _ Date: Mon, 30 Oct 2023 09:12:20 +0900 Subject: [PATCH 09/17] =?UTF-8?q?feat(frontend):=20=E3=82=B9=E3=83=AF?= =?UTF-8?q?=E3=82=A4=E3=83=97=E3=82=84=E3=83=9C=E3=82=BF=E3=83=B3=E3=81=A7?= =?UTF-8?q?=E3=82=BF=E3=82=A4=E3=83=A0=E3=83=A9=E3=82=A4=E3=83=B3=E3=82=92?= =?UTF-8?q?=E5=86=8D=E8=AA=AD=E8=BE=BC=E3=81=99=E3=82=8B=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=20(#12113)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * pc reloading * add: disable TL websocket option * fix: stream disconnect when reload * add: pull to refresh * fix: pull to refresh * add changelog * fact: change to disableStreamingTimeline * lint * remove: en-US text * refactor * refactor * add license identifier * tweak * Update MkPullToRefresh.vue * Update MkPullToRefresh.vue * change name timeoutHeartBeat * tweak * :art: --------- Co-authored-by: syuilo --- CHANGELOG.md | 3 + locales/index.d.ts | 4 + locales/ja-JP.yml | 4 + packages/frontend/src/boot/main-boot.ts | 3 +- .../frontend/src/components/MkPageWindow.vue | 2 + .../frontend/src/components/MkPagination.vue | 6 + .../src/components/MkPullToRefresh.vue | 238 ++++++++++++++++++ .../frontend/src/components/MkTimeline.vue | 136 ++++++---- .../frontend/src/pages/settings/general.vue | 3 + packages/frontend/src/pages/timeline.vue | 52 ++-- packages/frontend/src/store.ts | 4 + packages/frontend/src/stream.ts | 20 +- .../src/ui/_common_/stream-indicator.vue | 3 +- packages/frontend/src/ui/universal.vue | 2 +- 14 files changed, 400 insertions(+), 80 deletions(-) create mode 100644 packages/frontend/src/components/MkPullToRefresh.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index abfb0692bd..c46d1c78bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,9 @@ - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html +- Enhance: スワイプしてタイムラインを再読込できるように + - PCの場合は右上のボタンからでも再読込できます +- Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください diff --git a/locales/index.d.ts b/locales/index.d.ts index 5f156b617a..e99b278c8c 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -1152,6 +1152,10 @@ export interface Locale { "angle": string; "flip": string; "showAvatarDecorations": string; + "releaseToRefresh": string; + "refreshing": string; + "pullDownToRefresh": string; + "disableStreamingTimeline": string; "_announcement": { "forExistingUsers": string; "forExistingUsersDescription": string; diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index f7e73042b7..32877b806a 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1149,6 +1149,10 @@ detach: "外す" angle: "角度" flip: "反転" showAvatarDecorations: "アイコンのデコレーションを表示" +releaseToRefresh: "離してリロード" +refreshing: "リロード中" +pullDownToRefresh: "引っ張ってリロード" +disableStreamingTimeline: "タイムラインのリアルタイム更新を無効にする" _announcement: forExistingUsers: "既存ユーザーのみ" diff --git a/packages/frontend/src/boot/main-boot.ts b/packages/frontend/src/boot/main-boot.ts index f2af951d63..800a3b079f 100644 --- a/packages/frontend/src/boot/main-boot.ts +++ b/packages/frontend/src/boot/main-boot.ts @@ -8,7 +8,7 @@ import { common } from './common.js'; import { version, ui, lang, updateLocale } from '@/config.js'; import { i18n, updateI18n } from '@/i18n.js'; import { confirm, alert, post, popup, toast } from '@/os.js'; -import { useStream } from '@/stream.js'; +import { useStream, isReloading } from '@/stream.js'; import * as sound from '@/scripts/sound.js'; import { $i, refreshAccount, login, updateAccount, signout } from '@/account.js'; import { defaultStore, ColdDeviceStorage } from '@/store.js'; @@ -39,6 +39,7 @@ export async function mainBoot() { let reloadDialogShowing = false; stream.on('_disconnected_', async () => { + if (isReloading) return; if (defaultStore.state.serverDisconnectedBehavior === 'reload') { location.reload(); } else if (defaultStore.state.serverDisconnectedBehavior === 'dialog') { diff --git a/packages/frontend/src/components/MkPageWindow.vue b/packages/frontend/src/components/MkPageWindow.vue index 3b273ac545..5edae1bc3c 100644 --- a/packages/frontend/src/components/MkPageWindow.vue +++ b/packages/frontend/src/components/MkPageWindow.vue @@ -166,6 +166,8 @@ defineExpose({ diff --git a/packages/frontend/src/components/MkTimeline.vue b/packages/frontend/src/components/MkTimeline.vue index cdd72febd1..a2ada35f91 100644 --- a/packages/frontend/src/components/MkTimeline.vue +++ b/packages/frontend/src/components/MkTimeline.vue @@ -4,13 +4,16 @@ SPDX-License-Identifier: AGPL-3.0-only -->