summaryrefslogtreecommitdiff
path: root/packages/backend/src/models
diff options
context:
space:
mode:
authorMar0xy <marie@kaifa.ch>2023-10-03 20:21:26 +0200
committerMar0xy <marie@kaifa.ch>2023-10-03 20:21:26 +0200
commitbf3d493d049f30a93aecd8c39fbf433dcfbe959b (patch)
tree7821580eb5161f8182e8f5070baa12e21f74aa75 /packages/backend/src/models
parentmerge: upstream (diff)
downloadsharkey-bf3d493d049f30a93aecd8c39fbf433dcfbe959b.tar.gz
sharkey-bf3d493d049f30a93aecd8c39fbf433dcfbe959b.tar.bz2
sharkey-bf3d493d049f30a93aecd8c39fbf433dcfbe959b.zip
Revert "feat: improve tl performance"
Diffstat (limited to 'packages/backend/src/models')
-rw-r--r--packages/backend/src/models/Following.ts12
-rw-r--r--packages/backend/src/models/MutedNote.ts53
-rw-r--r--packages/backend/src/models/RepositoryModule.ts20
-rw-r--r--packages/backend/src/models/User.ts5
-rw-r--r--packages/backend/src/models/UserListJoining.ts (renamed from packages/backend/src/models/UserListMembership.ts)12
-rw-r--r--packages/backend/src/models/_.ts9
-rw-r--r--packages/backend/src/models/json-schema/user.ts4
7 files changed, 76 insertions, 39 deletions
diff --git a/packages/backend/src/models/Following.ts b/packages/backend/src/models/Following.ts
index 607538b1e7..8c9f965fad 100644
--- a/packages/backend/src/models/Following.ts
+++ b/packages/backend/src/models/Following.ts
@@ -9,7 +9,6 @@ import { MiUser } from './User.js';
@Entity('following')
@Index(['followerId', 'followeeId'], { unique: true })
-@Index(['followeeId', 'followerHost', 'isFollowerHibernated'])
export class MiFollowing {
@PrimaryColumn(id())
public id: string;
@@ -46,17 +45,6 @@ export class MiFollowing {
@JoinColumn()
public follower: MiUser | null;
- @Column('boolean', {
- default: false,
- })
- public isFollowerHibernated: boolean;
-
- // タイムラインにその人のリプライまで含めるかどうか
- @Column('boolean', {
- default: false,
- })
- public withReplies: boolean;
-
@Index()
@Column('varchar', {
length: 32,
diff --git a/packages/backend/src/models/MutedNote.ts b/packages/backend/src/models/MutedNote.ts
new file mode 100644
index 0000000000..89a678a2a7
--- /dev/null
+++ b/packages/backend/src/models/MutedNote.ts
@@ -0,0 +1,53 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and other misskey contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+import { Entity, Index, JoinColumn, Column, ManyToOne, PrimaryColumn } from 'typeorm';
+import { mutedNoteReasons } from '@/types.js';
+import { id } from './util/id.js';
+import { MiNote } from './Note.js';
+import { MiUser } from './User.js';
+
+@Entity('muted_note')
+@Index(['noteId', 'userId'], { unique: true })
+export class MiMutedNote {
+ @PrimaryColumn(id())
+ public id: string;
+
+ @Index()
+ @Column({
+ ...id(),
+ comment: 'The note ID.',
+ })
+ public noteId: MiNote['id'];
+
+ @ManyToOne(type => MiNote, {
+ onDelete: 'CASCADE',
+ })
+ @JoinColumn()
+ public note: MiNote | null;
+
+ @Index()
+ @Column({
+ ...id(),
+ comment: 'The user ID.',
+ })
+ public userId: MiUser['id'];
+
+ @ManyToOne(type => MiUser, {
+ onDelete: 'CASCADE',
+ })
+ @JoinColumn()
+ public user: MiUser | null;
+
+ /**
+ * ミュートされた理由。
+ */
+ @Index()
+ @Column('enum', {
+ enum: mutedNoteReasons,
+ comment: 'The reason of the MutedNote.',
+ })
+ public reason: typeof mutedNoteReasons[number];
+}
diff --git a/packages/backend/src/models/RepositoryModule.ts b/packages/backend/src/models/RepositoryModule.ts
index bef053610b..7e2bee8c44 100644
--- a/packages/backend/src/models/RepositoryModule.ts
+++ b/packages/backend/src/models/RepositoryModule.ts
@@ -5,7 +5,7 @@
import { Module } from '@nestjs/common';
import { DI } from '@/di-symbols.js';
-import { MiAbuseUserReport, MiAccessToken, MiAd, MiAnnouncement, MiAnnouncementRead, MiAntenna, MiApp, MiAuthSession, MiBlocking, MiChannel, MiChannelFavorite, MiChannelFollowing, MiClip, MiClipFavorite, MiClipNote, MiDriveFile, MiDriveFolder, MiEmoji, MiFlash, MiFlashLike, MiFollowRequest, MiFollowing, MiGalleryLike, MiGalleryPost, MiHashtag, MiInstance, MiMeta, MiModerationLog, MiMuting, MiNote, MiNoteFavorite, MiNoteReaction, MiNoteThreadMuting, MiNoteUnread, MiPage, MiPageLike, MiPasswordResetRequest, MiPoll, MiPollVote, MiPromoNote, MiPromoRead, MiRegistrationTicket, MiRegistryItem, MiRelay, MiRenoteMuting, MiRetentionAggregation, MiRole, MiRoleAssignment, MiSignin, MiSwSubscription, MiUsedUsername, MiUser, MiUserIp, MiUserKeypair, MiUserList, MiUserListFavorite, MiUserListMembership, MiUserMemo, MiUserNotePining, MiUserPending, MiUserProfile, MiUserPublickey, MiUserSecurityKey, MiWebhook, NoteEdit } from './_.js';
+import { MiAbuseUserReport, MiAccessToken, MiAd, MiAnnouncement, MiAnnouncementRead, MiAntenna, MiApp, MiAuthSession, MiBlocking, MiChannel, MiChannelFavorite, MiChannelFollowing, MiClip, MiClipFavorite, MiClipNote, MiDriveFile, MiDriveFolder, MiEmoji, MiFlash, MiFlashLike, MiFollowRequest, MiFollowing, MiGalleryLike, MiGalleryPost, MiHashtag, MiInstance, MiMeta, MiModerationLog, MiMutedNote, MiMuting, MiNote, MiNoteFavorite, MiNoteReaction, MiNoteThreadMuting, MiNoteUnread, MiPage, MiPageLike, MiPasswordResetRequest, MiPoll, MiPollVote, MiPromoNote, MiPromoRead, MiRegistrationTicket, MiRegistryItem, MiRelay, MiRenoteMuting, MiRetentionAggregation, MiRole, MiRoleAssignment, MiSignin, MiSwSubscription, MiUsedUsername, MiUser, MiUserIp, MiUserKeypair, MiUserList, MiUserListFavorite, MiUserListJoining, MiUserMemo, MiUserNotePining, MiUserPending, MiUserProfile, MiUserPublickey, MiUserSecurityKey, MiWebhook, NoteEdit } from './_.js';
import type { DataSource } from 'typeorm';
import type { Provider } from '@nestjs/common';
@@ -117,9 +117,9 @@ const $userListFavoritesRepository: Provider = {
inject: [DI.db],
};
-const $userListMembershipsRepository: Provider = {
- provide: DI.userListMembershipsRepository,
- useFactory: (db: DataSource) => db.getRepository(MiUserListMembership),
+const $userListJoiningsRepository: Provider = {
+ provide: DI.userListJoiningsRepository,
+ useFactory: (db: DataSource) => db.getRepository(MiUserListJoining),
inject: [DI.db],
};
@@ -315,6 +315,12 @@ const $relaysRepository: Provider = {
inject: [DI.db],
};
+const $mutedNotesRepository: Provider = {
+ provide: DI.mutedNotesRepository,
+ useFactory: (db: DataSource) => db.getRepository(MiMutedNote),
+ inject: [DI.db],
+};
+
const $channelsRepository: Provider = {
provide: DI.channelsRepository,
useFactory: (db: DataSource) => db.getRepository(MiChannel),
@@ -421,7 +427,7 @@ const $noteEditRepository: Provider = {
$userPublickeysRepository,
$userListsRepository,
$userListFavoritesRepository,
- $userListMembershipsRepository,
+ $userListJoiningsRepository,
$userNotePiningsRepository,
$userIpsRepository,
$usedUsernamesRepository,
@@ -454,6 +460,7 @@ const $noteEditRepository: Provider = {
$promoNotesRepository,
$promoReadsRepository,
$relaysRepository,
+ $mutedNotesRepository,
$channelsRepository,
$channelFollowingsRepository,
$channelFavoritesRepository,
@@ -488,7 +495,7 @@ const $noteEditRepository: Provider = {
$userPublickeysRepository,
$userListsRepository,
$userListFavoritesRepository,
- $userListMembershipsRepository,
+ $userListJoiningsRepository,
$userNotePiningsRepository,
$userIpsRepository,
$usedUsernamesRepository,
@@ -521,6 +528,7 @@ const $noteEditRepository: Provider = {
$promoNotesRepository,
$promoReadsRepository,
$relaysRepository,
+ $mutedNotesRepository,
$channelsRepository,
$channelFollowingsRepository,
$channelFavoritesRepository,
diff --git a/packages/backend/src/models/User.ts b/packages/backend/src/models/User.ts
index 9650622dd5..8f0122a90c 100644
--- a/packages/backend/src/models/User.ts
+++ b/packages/backend/src/models/User.ts
@@ -187,11 +187,6 @@ export class MiUser {
})
public isExplorable: boolean;
- @Column('boolean', {
- default: false,
- })
- public isHibernated: boolean;
-
// アカウントが削除されたかどうかのフラグだが、完全に削除される際は物理削除なので実質削除されるまでの「削除が進行しているかどうか」のフラグ
@Column('boolean', {
default: false,
diff --git a/packages/backend/src/models/UserListMembership.ts b/packages/backend/src/models/UserListJoining.ts
index f337f19a47..4918f2f700 100644
--- a/packages/backend/src/models/UserListMembership.ts
+++ b/packages/backend/src/models/UserListJoining.ts
@@ -8,14 +8,14 @@ import { id } from './util/id.js';
import { MiUser } from './User.js';
import { MiUserList } from './UserList.js';
-@Entity('user_list_membership')
+@Entity('user_list_joining')
@Index(['userId', 'userListId'], { unique: true })
-export class MiUserListMembership {
+export class MiUserListJoining {
@PrimaryColumn(id())
public id: string;
@Column('timestamp with time zone', {
- comment: 'The created date of the UserListMembership.',
+ comment: 'The created date of the UserListJoining.',
})
public createdAt: Date;
@@ -44,10 +44,4 @@ export class MiUserListMembership {
})
@JoinColumn()
public userList: MiUserList | null;
-
- // タイムラインにその人のリプライまで含めるかどうか
- @Column('boolean', {
- default: false,
- })
- public withReplies: boolean;
}
diff --git a/packages/backend/src/models/_.ts b/packages/backend/src/models/_.ts
index b76f6d5420..ca047569cb 100644
--- a/packages/backend/src/models/_.ts
+++ b/packages/backend/src/models/_.ts
@@ -28,6 +28,7 @@ import { MiHashtag } from '@/models/Hashtag.js';
import { MiInstance } from '@/models/Instance.js';
import { MiMeta } from '@/models/Meta.js';
import { MiModerationLog } from '@/models/ModerationLog.js';
+import { MiMutedNote } from '@/models/MutedNote.js';
import { MiMuting } from '@/models/Muting.js';
import { MiRenoteMuting } from '@/models/RenoteMuting.js';
import { MiNote } from '@/models/Note.js';
@@ -52,7 +53,7 @@ import { MiUser } from '@/models/User.js';
import { MiUserIp } from '@/models/UserIp.js';
import { MiUserKeypair } from '@/models/UserKeypair.js';
import { MiUserList } from '@/models/UserList.js';
-import { MiUserListMembership } from '@/models/UserListMembership.js';
+import { MiUserListJoining } from '@/models/UserListJoining.js';
import { MiUserNotePining } from '@/models/UserNotePining.js';
import { MiUserPending } from '@/models/UserPending.js';
import { MiUserProfile } from '@/models/UserProfile.js';
@@ -96,6 +97,7 @@ export {
MiInstance,
MiMeta,
MiModerationLog,
+ MiMutedNote,
MiMuting,
MiRenoteMuting,
MiNote,
@@ -121,7 +123,7 @@ export {
MiUserKeypair,
MiUserList,
MiUserListFavorite,
- MiUserListMembership,
+ MiUserListJoining,
MiUserNotePining,
MiUserPending,
MiUserProfile,
@@ -163,6 +165,7 @@ export type HashtagsRepository = Repository<MiHashtag>;
export type InstancesRepository = Repository<MiInstance>;
export type MetasRepository = Repository<MiMeta>;
export type ModerationLogsRepository = Repository<MiModerationLog>;
+export type MutedNotesRepository = Repository<MiMutedNote>;
export type MutingsRepository = Repository<MiMuting>;
export type RenoteMutingsRepository = Repository<MiRenoteMuting>;
export type NotesRepository = Repository<MiNote>;
@@ -188,7 +191,7 @@ export type UserIpsRepository = Repository<MiUserIp>;
export type UserKeypairsRepository = Repository<MiUserKeypair>;
export type UserListsRepository = Repository<MiUserList>;
export type UserListFavoritesRepository = Repository<MiUserListFavorite>;
-export type UserListMembershipsRepository = Repository<MiUserListMembership>;
+export type UserListJoiningsRepository = Repository<MiUserListJoining>;
export type UserNotePiningsRepository = Repository<MiUserNotePining>;
export type UserPendingsRepository = Repository<MiUserPending>;
export type UserProfilesRepository = Repository<MiUserProfile>;
diff --git a/packages/backend/src/models/json-schema/user.ts b/packages/backend/src/models/json-schema/user.ts
index 25f0547281..79b14bb65f 100644
--- a/packages/backend/src/models/json-schema/user.ts
+++ b/packages/backend/src/models/json-schema/user.ts
@@ -283,10 +283,6 @@ export const packedUserDetailedNotMeOnlySchema = {
type: 'string',
nullable: false, optional: true,
},
- withReplies: {
- type: 'boolean',
- nullable: false, optional: true,
- },
//#endregion
},
} as const;