merge: Expand Mandatory CW feature and fixup block/mute/silence features (resolves #809, #910, #912, #943, #1064, #1142, and #1186) (!1148)

View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1148

Closes #809, #910, #912, #943, #1064, #1142, and #1186

Approved-by: dakkar <dakkar@thenautilus.net>
Approved-by: Marie <github@yuugi.dev>
This commit is contained in:
Marie 2025-09-25 20:05:46 +02:00
commit 741e612508
125 changed files with 3195 additions and 1338 deletions

View file

@ -205,11 +205,6 @@ export class MiInstance {
})
public infoUpdatedAt: Date | null;
@Column('boolean', {
default: false,
})
public isNSFW: boolean;
@Column('boolean', {
default: false,
})
@ -228,4 +223,13 @@ export class MiInstance {
length: 16384, default: '',
})
public moderationNote: string;
/**
* Specifies a Content Warning that should be forcibly applied to all notes from this instance
* If null (default), then no Content Warning is applied.
*/
@Column('text', {
nullable: true,
})
public mandatoryCW: string | null;
}

View file

@ -228,6 +228,15 @@ export class MiNote {
})
public processErrors: string[] | null;
/**
* Specifies a Content Warning that should be forcibly attached to this note.
* Does not replace the user's own CW.
*/
@Column('text', {
nullable: true,
})
public mandatoryCW: string | null;
//#region Denormalized fields
@Column('varchar', {
length: 128, nullable: true,

View file

@ -116,11 +116,6 @@ export const packedFederationInstanceSchema = {
optional: false, nullable: true,
format: 'date-time',
},
isNSFW: {
type: 'boolean',
optional: false,
nullable: false,
},
rejectReports: {
type: 'boolean',
optional: false,
@ -139,5 +134,9 @@ export const packedFederationInstanceSchema = {
type: 'boolean',
optional: false, nullable: false,
},
mandatoryCW: {
type: 'string',
optional: false, nullable: true,
},
},
} as const;

View file

@ -41,11 +41,19 @@ export const packedNoteSchema = {
type: 'string',
optional: true, nullable: true,
},
mandatoryCW: {
type: 'string',
optional: true, nullable: true,
},
userId: {
type: 'string',
optional: false, nullable: false,
format: 'id',
},
userHost: {
type: 'string',
optional: false, nullable: true,
},
user: {
type: 'object',
ref: 'UserLite',
@ -189,6 +197,10 @@ export const packedNoteSchema = {
type: 'boolean',
optional: false, nullable: false,
},
bypassSilence: {
type: 'boolean',
optional: false, nullable: false,
},
emojis: {
type: 'object',
optional: true, nullable: false,

View file

@ -184,6 +184,10 @@ export const packedUserLiteSchema = {
type: 'boolean',
nullable: false, optional: false,
},
bypassSilence: {
type: 'boolean',
nullable: false, optional: false,
},
requireSigninToViewContents: {
type: 'boolean',
nullable: false, optional: true,
@ -228,6 +232,10 @@ export const packedUserLiteSchema = {
type: 'boolean',
nullable: false, optional: false,
},
mandatoryCW: {
type: 'string',
nullable: true, optional: false,
},
},
},
followersCount: {