From d9cfea8b101876bb68ba54112b59bdba4a6073fd Mon Sep 17 00:00:00 2001 From: yupix Date: Mon, 30 Oct 2023 08:17:42 +0900 Subject: [PATCH 01/15] =?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 02/15] 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 03/15] =?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 04/15] =?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 05/15] =?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 -->