Fix: Renoteの判定が間違っているのを修正 (#12706)
* RNと引用RNの判定が間違っているのを修正 * remove dump.rdb * update CHANGELOG.md * lint fix
This commit is contained in:
parent
38b82b8582
commit
f6ff3b1f1a
4 changed files with 14 additions and 4 deletions
|
@ -76,6 +76,8 @@
|
||||||
- Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正
|
- Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正
|
||||||
- Fix: ノート中のリアクションの表示を微調整 #12650
|
- Fix: ノート中のリアクションの表示を微調整 #12650
|
||||||
- Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正
|
- Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正
|
||||||
|
- Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正
|
||||||
|
- Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
- Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように
|
- Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように
|
||||||
|
|
|
@ -293,7 +293,7 @@ export class NoteCreateService implements OnApplicationShutdown {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check blocking
|
// Check blocking
|
||||||
if (data.renote && data.text == null && data.poll == null && (data.files == null || data.files.length === 0)) {
|
if (data.renote && this.isQuote(data)) {
|
||||||
if (data.renote.userHost === null) {
|
if (data.renote.userHost === null) {
|
||||||
if (data.renote.userId !== user.id) {
|
if (data.renote.userId !== user.id) {
|
||||||
const blocked = await this.userBlockingService.checkBlocked(data.renote.userId, user.id);
|
const blocked = await this.userBlockingService.checkBlocked(data.renote.userId, user.id);
|
||||||
|
@ -622,7 +622,7 @@ export class NoteCreateService implements OnApplicationShutdown {
|
||||||
|
|
||||||
// If it is renote
|
// If it is renote
|
||||||
if (data.renote) {
|
if (data.renote) {
|
||||||
const type = data.text ? 'quote' : 'renote';
|
const type = this.isQuote(data) ? 'quote' : 'renote';
|
||||||
|
|
||||||
// Notify
|
// Notify
|
||||||
if (data.renote.userHost === null) {
|
if (data.renote.userHost === null) {
|
||||||
|
@ -729,6 +729,11 @@ export class NoteCreateService implements OnApplicationShutdown {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@bindThis
|
||||||
|
private isQuote(note: Option): boolean {
|
||||||
|
return !!note.text || !!note.cw || !!note.files || !!note.poll;
|
||||||
|
}
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
private incRenoteCount(renote: MiNote) {
|
private incRenoteCount(renote: MiNote) {
|
||||||
this.notesRepository.createQueryBuilder().update()
|
this.notesRepository.createQueryBuilder().update()
|
||||||
|
@ -794,7 +799,7 @@ export class NoteCreateService implements OnApplicationShutdown {
|
||||||
private async renderNoteOrRenoteActivity(data: Option, note: MiNote) {
|
private async renderNoteOrRenoteActivity(data: Option, note: MiNote) {
|
||||||
if (data.localOnly) return null;
|
if (data.localOnly) return null;
|
||||||
|
|
||||||
const content = data.renote && data.text == null && data.poll == null && (data.files == null || data.files.length === 0)
|
const content = data.renote && this.isQuote(data)
|
||||||
? this.apRendererService.renderAnnounce(data.renote.uri ? data.renote.uri : `${this.config.url}/notes/${data.renote.id}`, note)
|
? this.apRendererService.renderAnnounce(data.renote.uri ? data.renote.uri : `${this.config.url}/notes/${data.renote.id}`, note)
|
||||||
: this.apRendererService.renderCreate(await this.apRendererService.renderNote(note, false), note);
|
: this.apRendererService.renderCreate(await this.apRendererService.renderNote(note, false), note);
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ import MkButton from '@/components/MkButton.vue';
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
modelValue: boolean;
|
modelValue: boolean;
|
||||||
text: string | null;
|
text: string | null;
|
||||||
|
renote: Misskey.entities.Note | null;
|
||||||
files: Misskey.entities.DriveFile[];
|
files: Misskey.entities.DriveFile[];
|
||||||
poll?: {
|
poll?: {
|
||||||
expiresAt: string | null;
|
expiresAt: string | null;
|
||||||
|
@ -41,6 +42,7 @@ const emit = defineEmits<{
|
||||||
const label = computed(() => {
|
const label = computed(() => {
|
||||||
return concat([
|
return concat([
|
||||||
props.text ? [i18n.t('_cw.chars', { count: props.text.length })] : [],
|
props.text ? [i18n.t('_cw.chars', { count: props.text.length })] : [],
|
||||||
|
props.renote != null ? [i18n.ts.quote] : [],
|
||||||
props.files.length !== 0 ? [i18n.t('_cw.files', { count: props.files.length })] : [],
|
props.files.length !== 0 ? [i18n.t('_cw.files', { count: props.files.length })] : [],
|
||||||
props.poll != null ? [i18n.ts.poll] : [],
|
props.poll != null ? [i18n.ts.poll] : [],
|
||||||
] as string[][]).join(' / ');
|
] as string[][]).join(' / ');
|
||||||
|
|
|
@ -54,7 +54,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div style="container-type: inline-size;">
|
<div style="container-type: inline-size;">
|
||||||
<p v-if="appearNote.cw != null" :class="$style.cw">
|
<p v-if="appearNote.cw != null" :class="$style.cw">
|
||||||
<Mfm v-if="appearNote.cw != ''" style="margin-right: 8px;" :text="appearNote.cw" :author="appearNote.user" :nyaize="'respect'"/>
|
<Mfm v-if="appearNote.cw != ''" style="margin-right: 8px;" :text="appearNote.cw" :author="appearNote.user" :nyaize="'respect'"/>
|
||||||
<MkCwButton v-model="showContent" :text="appearNote.text" :files="appearNote.files" :poll="appearNote.poll" style="margin: 4px 0;"/>
|
<MkCwButton v-model="showContent" :text="appearNote.text" :renote="appearNote" :files="appearNote.files" :poll="appearNote.poll" style="margin: 4px 0;"/>
|
||||||
</p>
|
</p>
|
||||||
<div v-show="appearNote.cw == null || showContent" :class="[{ [$style.contentCollapsed]: collapsed }]">
|
<div v-show="appearNote.cw == null || showContent" :class="[{ [$style.contentCollapsed]: collapsed }]">
|
||||||
<div :class="$style.text">
|
<div :class="$style.text">
|
||||||
|
@ -229,6 +229,7 @@ if (noteViewInterruptors.length > 0) {
|
||||||
const isRenote = (
|
const isRenote = (
|
||||||
note.value.renote != null &&
|
note.value.renote != null &&
|
||||||
note.value.text == null &&
|
note.value.text == null &&
|
||||||
|
note.value.cw == null &&
|
||||||
note.value.fileIds.length === 0 &&
|
note.value.fileIds.length === 0 &&
|
||||||
note.value.poll == null
|
note.value.poll == null
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in a new issue