autoWatch機能を削除
This commit is contained in:
parent
a6985d7dc7
commit
9d1fa3f202
10 changed files with 17 additions and 72 deletions
|
@ -373,8 +373,6 @@ unregister: "登録を解除"
|
||||||
passwordLessLogin: "パスワード無しログイン"
|
passwordLessLogin: "パスワード無しログイン"
|
||||||
resetPassword: "パスワードをリセット"
|
resetPassword: "パスワードをリセット"
|
||||||
newPasswordIs: "新しいパスワードは「{password}」です"
|
newPasswordIs: "新しいパスワードは「{password}」です"
|
||||||
autoNoteWatch: "ノートの自動ウォッチ"
|
|
||||||
autoNoteWatchDescription: "あなたがリアクションしたり返信したりした他のユーザーのノートに関する通知を受け取るようにします。"
|
|
||||||
reduceUiAnimation: "UIのアニメーションを減らす"
|
reduceUiAnimation: "UIのアニメーションを減らす"
|
||||||
share: "共有"
|
share: "共有"
|
||||||
notFound: "見つかりません"
|
notFound: "見つかりません"
|
||||||
|
|
14
migration/1604821689616-delete-auto-watch.ts
Normal file
14
migration/1604821689616-delete-auto-watch.ts
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class deleteAutoWatch1604821689616 implements MigrationInterface {
|
||||||
|
name = 'deleteAutoWatch1604821689616'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "autoWatch"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" ADD "autoWatch" boolean NOT NULL DEFAULT false`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -3,15 +3,6 @@
|
||||||
<div class="_section">
|
<div class="_section">
|
||||||
<MkButton full primary @click="configure"><Fa :icon="faCog"/> {{ $t('notificationSetting') }}</MkButton>
|
<MkButton full primary @click="configure"><Fa :icon="faCog"/> {{ $t('notificationSetting') }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
<div class="_section">
|
|
||||||
<div class="_card">
|
|
||||||
<div class="_content">
|
|
||||||
<MkSwitch v-model:value="$store.state.i.autoWatch" @update:value="onChangeAutoWatch">
|
|
||||||
{{ $t('autoNoteWatch') }}<template #desc>{{ $t('autoNoteWatchDescription') }}</template>
|
|
||||||
</MkSwitch>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="_section">
|
<div class="_section">
|
||||||
<MkButton full @click="readAllNotifications">{{ $t('markAsReadAllNotifications') }}</MkButton>
|
<MkButton full @click="readAllNotifications">{{ $t('markAsReadAllNotifications') }}</MkButton>
|
||||||
<MkButton full @click="readAllUnreadNotes">{{ $t('markAsReadAllUnreadNotes') }}</MkButton>
|
<MkButton full @click="readAllUnreadNotes">{{ $t('markAsReadAllUnreadNotes') }}</MkButton>
|
||||||
|
@ -52,12 +43,6 @@ export default defineComponent({
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
onChangeAutoWatch(v) {
|
|
||||||
os.api('i/update', {
|
|
||||||
autoWatch: v
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
readAllUnreadNotes() {
|
readAllUnreadNotes() {
|
||||||
os.api('i/read-all-unread-notes');
|
os.api('i/read-all-unread-notes');
|
||||||
},
|
},
|
||||||
|
|
|
@ -106,11 +106,6 @@ export class UserProfile {
|
||||||
})
|
})
|
||||||
public room: Record<string, any>;
|
public room: Record<string, any>;
|
||||||
|
|
||||||
@Column('boolean', {
|
|
||||||
default: false,
|
|
||||||
})
|
|
||||||
public autoWatch: boolean;
|
|
||||||
|
|
||||||
@Column('boolean', {
|
@Column('boolean', {
|
||||||
default: false,
|
default: false,
|
||||||
})
|
})
|
||||||
|
|
|
@ -235,7 +235,6 @@ export class UserRepository extends Repository<User> {
|
||||||
...(opts.detail && meId === user.id ? {
|
...(opts.detail && meId === user.id ? {
|
||||||
avatarId: user.avatarId,
|
avatarId: user.avatarId,
|
||||||
bannerId: user.bannerId,
|
bannerId: user.bannerId,
|
||||||
autoWatch: profile!.autoWatch,
|
|
||||||
injectFeaturedNote: profile!.injectFeaturedNote,
|
injectFeaturedNote: profile!.injectFeaturedNote,
|
||||||
alwaysMarkNsfw: profile!.alwaysMarkNsfw,
|
alwaysMarkNsfw: profile!.alwaysMarkNsfw,
|
||||||
carefulBot: profile!.carefulBot,
|
carefulBot: profile!.carefulBot,
|
||||||
|
|
|
@ -120,13 +120,6 @@ export const meta = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
autoWatch: {
|
|
||||||
validator: $.optional.bool,
|
|
||||||
desc: {
|
|
||||||
'ja-JP': '投稿の自動ウォッチをするか否か'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
injectFeaturedNote: {
|
injectFeaturedNote: {
|
||||||
validator: $.optional.bool,
|
validator: $.optional.bool,
|
||||||
},
|
},
|
||||||
|
@ -212,7 +205,6 @@ export default define(meta, async (ps, user, token) => {
|
||||||
if (typeof ps.carefulBot === 'boolean') profileUpdates.carefulBot = ps.carefulBot;
|
if (typeof ps.carefulBot === 'boolean') profileUpdates.carefulBot = ps.carefulBot;
|
||||||
if (typeof ps.autoAcceptFollowed === 'boolean') profileUpdates.autoAcceptFollowed = ps.autoAcceptFollowed;
|
if (typeof ps.autoAcceptFollowed === 'boolean') profileUpdates.autoAcceptFollowed = ps.autoAcceptFollowed;
|
||||||
if (typeof ps.isCat === 'boolean') updates.isCat = ps.isCat;
|
if (typeof ps.isCat === 'boolean') updates.isCat = ps.isCat;
|
||||||
if (typeof ps.autoWatch === 'boolean') profileUpdates.autoWatch = ps.autoWatch;
|
|
||||||
if (typeof ps.injectFeaturedNote === 'boolean') profileUpdates.injectFeaturedNote = ps.injectFeaturedNote;
|
if (typeof ps.injectFeaturedNote === 'boolean') profileUpdates.injectFeaturedNote = ps.injectFeaturedNote;
|
||||||
if (typeof ps.alwaysMarkNsfw === 'boolean') profileUpdates.alwaysMarkNsfw = ps.alwaysMarkNsfw;
|
if (typeof ps.alwaysMarkNsfw === 'boolean') profileUpdates.alwaysMarkNsfw = ps.alwaysMarkNsfw;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import { ID } from '../../../../../misc/cafy-id';
|
import { ID } from '../../../../../misc/cafy-id';
|
||||||
import watch from '../../../../../services/note/watch';
|
|
||||||
import { publishNoteStream } from '../../../../../services/stream';
|
import { publishNoteStream } from '../../../../../services/stream';
|
||||||
import { createNotification } from '../../../../../services/create-notification';
|
import { createNotification } from '../../../../../services/create-notification';
|
||||||
import define from '../../../define';
|
import define from '../../../define';
|
||||||
|
@ -10,7 +9,7 @@ import { deliver } from '../../../../../queue';
|
||||||
import { renderActivity } from '../../../../../remote/activitypub/renderer';
|
import { renderActivity } from '../../../../../remote/activitypub/renderer';
|
||||||
import renderVote from '../../../../../remote/activitypub/renderer/vote';
|
import renderVote from '../../../../../remote/activitypub/renderer/vote';
|
||||||
import { deliverQuestionUpdate } from '../../../../../services/note/polls/update';
|
import { deliverQuestionUpdate } from '../../../../../services/note/polls/update';
|
||||||
import { PollVotes, NoteWatchings, Users, Polls, UserProfiles } from '../../../../../models';
|
import { PollVotes, NoteWatchings, Users, Polls } from '../../../../../models';
|
||||||
import { Not } from 'typeorm';
|
import { Not } from 'typeorm';
|
||||||
import { IRemoteUser } from '../../../../../models/entities/user';
|
import { IRemoteUser } from '../../../../../models/entities/user';
|
||||||
import { genId } from '../../../../../misc/gen-id';
|
import { genId } from '../../../../../misc/gen-id';
|
||||||
|
@ -152,13 +151,6 @@ export default define(meta, async (ps, user) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const profile = await UserProfiles.findOne(user.id).then(ensure);
|
|
||||||
|
|
||||||
// この投稿をWatchする
|
|
||||||
if (profile.autoWatch !== false) {
|
|
||||||
watch(user.id, note);
|
|
||||||
}
|
|
||||||
|
|
||||||
// リモート投票の場合リプライ送信
|
// リモート投票の場合リプライ送信
|
||||||
if (note.userHost != null) {
|
if (note.userHost != null) {
|
||||||
const pollOwner = await Users.findOne(note.userId).then(ensure) as IRemoteUser;
|
const pollOwner = await Users.findOne(note.userId).then(ensure) as IRemoteUser;
|
||||||
|
|
|
@ -5,7 +5,6 @@ import renderNote from '../../remote/activitypub/renderer/note';
|
||||||
import renderCreate from '../../remote/activitypub/renderer/create';
|
import renderCreate from '../../remote/activitypub/renderer/create';
|
||||||
import renderAnnounce from '../../remote/activitypub/renderer/announce';
|
import renderAnnounce from '../../remote/activitypub/renderer/announce';
|
||||||
import { renderActivity } from '../../remote/activitypub/renderer';
|
import { renderActivity } from '../../remote/activitypub/renderer';
|
||||||
import watch from './watch';
|
|
||||||
import { parse } from '../../mfm/parse';
|
import { parse } from '../../mfm/parse';
|
||||||
import { resolveUser } from '../../remote/resolve-user';
|
import { resolveUser } from '../../remote/resolve-user';
|
||||||
import config from '../../config';
|
import config from '../../config';
|
||||||
|
@ -340,18 +339,11 @@ export default async (user: User, data: Option, silent = false) => new Promise<N
|
||||||
|
|
||||||
await createMentionedEvents(mentionedUsers, note, nm);
|
await createMentionedEvents(mentionedUsers, note, nm);
|
||||||
|
|
||||||
const profile = await UserProfiles.findOne(user.id).then(ensure);
|
|
||||||
|
|
||||||
// If has in reply to note
|
// If has in reply to note
|
||||||
if (data.reply) {
|
if (data.reply) {
|
||||||
// Fetch watchers
|
// Fetch watchers
|
||||||
nmRelatedPromises.push(notifyToWatchersOfReplyee(data.reply, user, nm));
|
nmRelatedPromises.push(notifyToWatchersOfReplyee(data.reply, user, nm));
|
||||||
|
|
||||||
// この投稿をWatchする
|
|
||||||
if (Users.isLocalUser(user) && profile.autoWatch) {
|
|
||||||
watch(user.id, data.reply);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 通知
|
// 通知
|
||||||
if (data.reply.userHost === null) {
|
if (data.reply.userHost === null) {
|
||||||
nm.push(data.reply.userId, 'reply');
|
nm.push(data.reply.userId, 'reply');
|
||||||
|
@ -371,11 +363,6 @@ export default async (user: User, data: Option, silent = false) => new Promise<N
|
||||||
// Fetch watchers
|
// Fetch watchers
|
||||||
nmRelatedPromises.push(notifyToWatchersOfRenotee(data.renote, user, nm, type));
|
nmRelatedPromises.push(notifyToWatchersOfRenotee(data.renote, user, nm, type));
|
||||||
|
|
||||||
// この投稿をWatchする
|
|
||||||
if (Users.isLocalUser(user) && profile.autoWatch) {
|
|
||||||
watch(user.id, data.renote);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Publish event
|
// Publish event
|
||||||
if ((user.id !== data.renote.userId) && data.renote.userHost === null) {
|
if ((user.id !== data.renote.userId) && data.renote.userHost === null) {
|
||||||
publishMainStream(data.renote.userId, 'renote', noteObj);
|
publishMainStream(data.renote.userId, 'renote', noteObj);
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
import watch from '../../../services/note/watch';
|
|
||||||
import { publishNoteStream } from '../../stream';
|
import { publishNoteStream } from '../../stream';
|
||||||
import { User } from '../../../models/entities/user';
|
import { User } from '../../../models/entities/user';
|
||||||
import { Note } from '../../../models/entities/note';
|
import { Note } from '../../../models/entities/note';
|
||||||
import { PollVotes, Users, NoteWatchings, Polls, UserProfiles } from '../../../models';
|
import { PollVotes, NoteWatchings, Polls } from '../../../models';
|
||||||
import { Not } from 'typeorm';
|
import { Not } from 'typeorm';
|
||||||
import { genId } from '../../../misc/gen-id';
|
import { genId } from '../../../misc/gen-id';
|
||||||
import { createNotification } from '../../create-notification';
|
import { createNotification } from '../../create-notification';
|
||||||
|
@ -68,11 +67,4 @@ export default async function(user: User, note: Note, choice: number) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const profile = await UserProfiles.findOne(user.id);
|
|
||||||
|
|
||||||
// ローカルユーザーが投票した場合この投稿をWatchする
|
|
||||||
if (Users.isLocalUser(user) && profile!.autoWatch) {
|
|
||||||
watch(user.id, note);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
import { publishNoteStream } from '../../stream';
|
import { publishNoteStream } from '../../stream';
|
||||||
import watch from '../watch';
|
|
||||||
import { renderLike } from '../../../remote/activitypub/renderer/like';
|
import { renderLike } from '../../../remote/activitypub/renderer/like';
|
||||||
import DeliverManager from '../../../remote/activitypub/deliver-manager';
|
import DeliverManager from '../../../remote/activitypub/deliver-manager';
|
||||||
import { renderActivity } from '../../../remote/activitypub/renderer';
|
import { renderActivity } from '../../../remote/activitypub/renderer';
|
||||||
import { IdentifiableError } from '../../../misc/identifiable-error';
|
|
||||||
import { toDbReaction, decodeReaction } from '../../../misc/reaction-lib';
|
import { toDbReaction, decodeReaction } from '../../../misc/reaction-lib';
|
||||||
import { User, IRemoteUser } from '../../../models/entities/user';
|
import { User, IRemoteUser } from '../../../models/entities/user';
|
||||||
import { Note } from '../../../models/entities/note';
|
import { Note } from '../../../models/entities/note';
|
||||||
import { NoteReactions, Users, NoteWatchings, Notes, UserProfiles, Emojis } from '../../../models';
|
import { NoteReactions, Users, NoteWatchings, Notes, Emojis } from '../../../models';
|
||||||
import { Not } from 'typeorm';
|
import { Not } from 'typeorm';
|
||||||
import { perUserReactionsChart } from '../../chart';
|
import { perUserReactionsChart } from '../../chart';
|
||||||
import { genId } from '../../../misc/gen-id';
|
import { genId } from '../../../misc/gen-id';
|
||||||
|
@ -101,13 +99,6 @@ export default async (user: User, note: Note, reaction?: string) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const profile = await UserProfiles.findOne(user.id);
|
|
||||||
|
|
||||||
// ユーザーがローカルユーザーかつ自動ウォッチ設定がオンならばこの投稿をWatchする
|
|
||||||
if (Users.isLocalUser(user) && profile!.autoWatch) {
|
|
||||||
watch(user.id, note);
|
|
||||||
}
|
|
||||||
|
|
||||||
//#region 配信
|
//#region 配信
|
||||||
if (Users.isLocalUser(user) && !note.localOnly) {
|
if (Users.isLocalUser(user) && !note.localOnly) {
|
||||||
const content = renderActivity(await renderLike(inserted, note));
|
const content = renderActivity(await renderLike(inserted, note));
|
||||||
|
|
Loading…
Reference in a new issue