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…
	
	Add table
		Add a link
		
	
		Reference in a new issue