Merge remote-branch 'misskey/develop'
This commit is contained in:
commit
0c96848830
|
@ -35,6 +35,8 @@
|
|||
- Enhance: ノートプレビューに「内容を隠す」が反映されるように
|
||||
- Enhance: データセーバーの適用範囲を個別で設定できるように
|
||||
- 従来のデータセーバーの設定はリセットされます
|
||||
- Feat: センシティブと判断されたウェブサイトのサムネイルをぼかすように
|
||||
- ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。
|
||||
- fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正
|
||||
- Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367
|
||||
- Enhance: 絵文字の詳細ページに記載される情報を追加
|
||||
|
|
|
@ -39,6 +39,7 @@ import { packedEmojiDetailedSchema, packedEmojiSimpleSchema } from '@/models/jso
|
|||
import { packedFlashSchema } from '@/models/json-schema/flash.js';
|
||||
import { packedAnnouncementSchema } from '@/models/json-schema/announcement.js';
|
||||
import { packedSigninSchema } from '@/models/json-schema/signin.js';
|
||||
import { packedRoleLiteSchema, packedRoleSchema } from '@/models/json-schema/role.js';
|
||||
|
||||
export const refs = {
|
||||
UserLite: packedUserLiteSchema,
|
||||
|
@ -77,6 +78,8 @@ export const refs = {
|
|||
EmojiDetailed: packedEmojiDetailedSchema,
|
||||
Flash: packedFlashSchema,
|
||||
Signin: packedSigninSchema,
|
||||
RoleLite: packedRoleLiteSchema,
|
||||
Role: packedRoleSchema,
|
||||
};
|
||||
|
||||
export type Packed<x extends keyof typeof refs> = SchemaType<typeof refs[x]>;
|
||||
|
|
157
packages/backend/src/models/json-schema/role.ts
Normal file
157
packages/backend/src/models/json-schema/role.ts
Normal file
|
@ -0,0 +1,157 @@
|
|||
const rolePolicyValue = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
value: {
|
||||
oneOf: [
|
||||
{
|
||||
type: 'integer',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
{
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
priority: {
|
||||
type: 'integer',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
useDefault: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const packedRoleLiteSchema = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
id: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
format: 'id',
|
||||
example: 'xxxxxxxxxx',
|
||||
},
|
||||
name: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
example: 'New Role',
|
||||
},
|
||||
color: {
|
||||
type: 'string',
|
||||
optional: false, nullable: true,
|
||||
example: '#000000',
|
||||
},
|
||||
iconUrl: {
|
||||
type: 'string',
|
||||
optional: false, nullable: true,
|
||||
},
|
||||
description: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
isModerator: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
example: false,
|
||||
},
|
||||
isAdministrator: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
example: false,
|
||||
},
|
||||
displayOrder: {
|
||||
type: 'integer',
|
||||
optional: false, nullable: false,
|
||||
example: 0,
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const packedRoleSchema = {
|
||||
type: 'object',
|
||||
allOf: [
|
||||
{
|
||||
type: 'object',
|
||||
ref: 'RoleLite',
|
||||
},
|
||||
{
|
||||
type: 'object',
|
||||
properties: {
|
||||
createdAt: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
format: 'date-time',
|
||||
},
|
||||
updatedAt: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
format: 'date-time',
|
||||
},
|
||||
target: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
enum: ['manual', 'conditional'],
|
||||
},
|
||||
condFormula: {
|
||||
type: 'object',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
isPublic: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
example: false,
|
||||
},
|
||||
isExplorable: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
example: false,
|
||||
},
|
||||
asBadge: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
example: false,
|
||||
},
|
||||
canEditMembersByModerator: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
example: false,
|
||||
},
|
||||
policies: {
|
||||
type: 'object',
|
||||
optional: false, nullable: false,
|
||||
properties: {
|
||||
pinLimit: rolePolicyValue,
|
||||
canInvite: rolePolicyValue,
|
||||
clipLimit: rolePolicyValue,
|
||||
canHideAds: rolePolicyValue,
|
||||
inviteLimit: rolePolicyValue,
|
||||
antennaLimit: rolePolicyValue,
|
||||
gtlAvailable: rolePolicyValue,
|
||||
ltlAvailable: rolePolicyValue,
|
||||
webhookLimit: rolePolicyValue,
|
||||
canPublicNote: rolePolicyValue,
|
||||
userListLimit: rolePolicyValue,
|
||||
wordMuteLimit: rolePolicyValue,
|
||||
alwaysMarkNsfw: rolePolicyValue,
|
||||
canSearchNotes: rolePolicyValue,
|
||||
driveCapacityMb: rolePolicyValue,
|
||||
rateLimitFactor: rolePolicyValue,
|
||||
inviteLimitCycle: rolePolicyValue,
|
||||
noteEachClipsLimit: rolePolicyValue,
|
||||
inviteExpirationTime: rolePolicyValue,
|
||||
canManageCustomEmojis: rolePolicyValue,
|
||||
userEachUserListsLimit: rolePolicyValue,
|
||||
canManageAvatarDecorations: rolePolicyValue,
|
||||
canUseTranslator: rolePolicyValue,
|
||||
},
|
||||
},
|
||||
usersCount: {
|
||||
type: 'integer',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
} as const;
|
|
@ -345,41 +345,7 @@ export const packedUserDetailedNotMeOnlySchema = {
|
|||
items: {
|
||||
type: 'object',
|
||||
nullable: false, optional: false,
|
||||
properties: {
|
||||
id: {
|
||||
type: 'string',
|
||||
nullable: false, optional: false,
|
||||
format: 'id',
|
||||
},
|
||||
name: {
|
||||
type: 'string',
|
||||
nullable: false, optional: false,
|
||||
},
|
||||
color: {
|
||||
type: 'string',
|
||||
nullable: true, optional: false,
|
||||
},
|
||||
iconUrl: {
|
||||
type: 'string',
|
||||
nullable: true, optional: false,
|
||||
},
|
||||
description: {
|
||||
type: 'string',
|
||||
nullable: false, optional: false,
|
||||
},
|
||||
isModerator: {
|
||||
type: 'boolean',
|
||||
nullable: false, optional: false,
|
||||
},
|
||||
isAdministrator: {
|
||||
type: 'boolean',
|
||||
nullable: false, optional: false,
|
||||
},
|
||||
displayOrder: {
|
||||
type: 'number',
|
||||
nullable: false, optional: false,
|
||||
},
|
||||
},
|
||||
ref: 'RoleLite',
|
||||
},
|
||||
},
|
||||
memo: {
|
||||
|
|
|
@ -13,6 +13,12 @@ export const meta = {
|
|||
|
||||
requireCredential: true,
|
||||
requireAdmin: true,
|
||||
|
||||
res: {
|
||||
type: 'object',
|
||||
optional: false, nullable: false,
|
||||
ref: 'Role',
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const paramDef = {
|
||||
|
|
|
@ -14,6 +14,16 @@ export const meta = {
|
|||
|
||||
requireCredential: true,
|
||||
requireModerator: true,
|
||||
|
||||
res: {
|
||||
type: 'array',
|
||||
optional: false, nullable: false,
|
||||
items: {
|
||||
type: 'object',
|
||||
optional: false, nullable: false,
|
||||
ref: 'Role',
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const paramDef = {
|
||||
|
|
|
@ -23,6 +23,12 @@ export const meta = {
|
|||
id: '07dc7d34-c0d8-49b7-96c6-db3ce64ee0b3',
|
||||
},
|
||||
},
|
||||
|
||||
res: {
|
||||
type: 'object',
|
||||
optional: false, nullable: false,
|
||||
ref: 'Role',
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const paramDef = {
|
||||
|
|
|
@ -13,6 +13,16 @@ export const meta = {
|
|||
tags: ['role'],
|
||||
|
||||
requireCredential: true,
|
||||
|
||||
res: {
|
||||
type: 'array',
|
||||
optional: false, nullable: false,
|
||||
items: {
|
||||
type: 'object',
|
||||
optional: false, nullable: false,
|
||||
ref: 'Role',
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const paramDef = {
|
||||
|
|
|
@ -22,6 +22,12 @@ export const meta = {
|
|||
id: 'de5502bf-009a-4639-86c1-fec349e46dcb',
|
||||
},
|
||||
},
|
||||
|
||||
res: {
|
||||
type: 'object',
|
||||
optional: false, nullable: false,
|
||||
ref: 'Role',
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const paramDef = {
|
||||
|
|
|
@ -254,12 +254,21 @@ type AdminRolesAssignRequest = operations['admin/roles/assign']['requestBody']['
|
|||
// @public (undocumented)
|
||||
type AdminRolesCreateRequest = operations['admin/roles/create']['requestBody']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type AdminRolesCreateResponse = operations['admin/roles/create']['responses']['200']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type AdminRolesDeleteRequest = operations['admin/roles/delete']['requestBody']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type AdminRolesListResponse = operations['admin/roles/list']['responses']['200']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type AdminRolesShowRequest = operations['admin/roles/show']['requestBody']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type AdminRolesShowResponse = operations['admin/roles/show']['responses']['200']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type AdminRolesUnassignRequest = operations['admin/roles/unassign']['requestBody']['content']['application/json'];
|
||||
|
||||
|
@ -1160,8 +1169,11 @@ declare namespace entities {
|
|||
AdminDeleteAccountResponse,
|
||||
AdminUpdateUserNoteRequest,
|
||||
AdminRolesCreateRequest,
|
||||
AdminRolesCreateResponse,
|
||||
AdminRolesDeleteRequest,
|
||||
AdminRolesListResponse,
|
||||
AdminRolesShowRequest,
|
||||
AdminRolesShowResponse,
|
||||
AdminRolesUpdateRequest,
|
||||
AdminRolesAssignRequest,
|
||||
AdminRolesUnassignRequest,
|
||||
|
@ -1488,7 +1500,9 @@ declare namespace entities {
|
|||
PingResponse,
|
||||
PinnedUsersResponse,
|
||||
PromoReadRequest,
|
||||
RolesListResponse,
|
||||
RolesShowRequest,
|
||||
RolesShowResponse,
|
||||
RolesUsersRequest,
|
||||
RolesNotesRequest,
|
||||
RolesNotesResponse,
|
||||
|
@ -1615,7 +1629,9 @@ declare namespace entities {
|
|||
EmojiSimple,
|
||||
EmojiDetailed,
|
||||
Flash,
|
||||
Signin
|
||||
Signin,
|
||||
RoleLite,
|
||||
Role
|
||||
}
|
||||
}
|
||||
export { entities }
|
||||
|
@ -2450,6 +2466,15 @@ type ResetPasswordRequest = operations['reset-password']['requestBody']['content
|
|||
// @public (undocumented)
|
||||
type RetentionResponse = operations['retention']['responses']['200']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type Role = components['schemas']['Role'];
|
||||
|
||||
// @public (undocumented)
|
||||
type RoleLite = components['schemas']['RoleLite'];
|
||||
|
||||
// @public (undocumented)
|
||||
type RolesListResponse = operations['roles/list']['responses']['200']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type RolesNotesRequest = operations['roles/notes']['requestBody']['content']['application/json'];
|
||||
|
||||
|
@ -2459,6 +2484,9 @@ type RolesNotesResponse = operations['roles/notes']['responses']['200']['content
|
|||
// @public (undocumented)
|
||||
type RolesShowRequest = operations['roles/show']['requestBody']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type RolesShowResponse = operations['roles/show']['responses']['200']['content']['application/json'];
|
||||
|
||||
// @public (undocumented)
|
||||
type RolesUsersRequest = operations['roles/users']['requestBody']['content']['application/json'];
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* version: 4.6.0-beta.1
|
||||
* generatedAt: 2023-12-05T08:31:06.220Z
|
||||
* version: 4.6.0-beta.2
|
||||
* generatedAt: 2023-12-06T08:45:38.856Z
|
||||
*/
|
||||
|
||||
import type {
|
||||
|
@ -96,8 +96,11 @@ import type {
|
|||
AdminDeleteAccountResponse,
|
||||
AdminUpdateUserNoteRequest,
|
||||
AdminRolesCreateRequest,
|
||||
AdminRolesCreateResponse,
|
||||
AdminRolesDeleteRequest,
|
||||
AdminRolesListResponse,
|
||||
AdminRolesShowRequest,
|
||||
AdminRolesShowResponse,
|
||||
AdminRolesUpdateRequest,
|
||||
AdminRolesAssignRequest,
|
||||
AdminRolesUnassignRequest,
|
||||
|
@ -424,7 +427,9 @@ import type {
|
|||
PingResponse,
|
||||
PinnedUsersResponse,
|
||||
PromoReadRequest,
|
||||
RolesListResponse,
|
||||
RolesShowRequest,
|
||||
RolesShowResponse,
|
||||
RolesUsersRequest,
|
||||
RolesNotesRequest,
|
||||
RolesNotesResponse,
|
||||
|
@ -592,10 +597,10 @@ export type Endpoints = {
|
|||
'admin/update-meta': { req: AdminUpdateMetaRequest; res: EmptyResponse };
|
||||
'admin/delete-account': { req: AdminDeleteAccountRequest; res: AdminDeleteAccountResponse };
|
||||
'admin/update-user-note': { req: AdminUpdateUserNoteRequest; res: EmptyResponse };
|
||||
'admin/roles/create': { req: AdminRolesCreateRequest; res: EmptyResponse };
|
||||
'admin/roles/create': { req: AdminRolesCreateRequest; res: AdminRolesCreateResponse };
|
||||
'admin/roles/delete': { req: AdminRolesDeleteRequest; res: EmptyResponse };
|
||||
'admin/roles/list': { req: EmptyRequest; res: EmptyResponse };
|
||||
'admin/roles/show': { req: AdminRolesShowRequest; res: EmptyResponse };
|
||||
'admin/roles/list': { req: EmptyRequest; res: AdminRolesListResponse };
|
||||
'admin/roles/show': { req: AdminRolesShowRequest; res: AdminRolesShowResponse };
|
||||
'admin/roles/update': { req: AdminRolesUpdateRequest; res: EmptyResponse };
|
||||
'admin/roles/assign': { req: AdminRolesAssignRequest; res: EmptyResponse };
|
||||
'admin/roles/unassign': { req: AdminRolesUnassignRequest; res: EmptyResponse };
|
||||
|
@ -808,8 +813,8 @@ export type Endpoints = {
|
|||
'ping': { req: EmptyRequest; res: PingResponse };
|
||||
'pinned-users': { req: EmptyRequest; res: PinnedUsersResponse };
|
||||
'promo/read': { req: PromoReadRequest; res: EmptyResponse };
|
||||
'roles/list': { req: EmptyRequest; res: EmptyResponse };
|
||||
'roles/show': { req: RolesShowRequest; res: EmptyResponse };
|
||||
'roles/list': { req: EmptyRequest; res: RolesListResponse };
|
||||
'roles/show': { req: RolesShowRequest; res: RolesShowResponse };
|
||||
'roles/users': { req: RolesUsersRequest; res: EmptyResponse };
|
||||
'roles/notes': { req: RolesNotesRequest; res: RolesNotesResponse };
|
||||
'request-reset-password': { req: RequestResetPasswordRequest; res: EmptyResponse };
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* version: 4.6.0-beta.1
|
||||
* generatedAt: 2023-12-05T08:31:06.218Z
|
||||
* version: 4.6.0-beta.2
|
||||
* generatedAt: 2023-12-06T08:45:38.854Z
|
||||
*/
|
||||
|
||||
import { operations } from './types.js';
|
||||
|
@ -98,8 +98,11 @@ export type AdminDeleteAccountRequest = operations['admin/delete-account']['requ
|
|||
export type AdminDeleteAccountResponse = operations['admin/delete-account']['responses']['200']['content']['application/json'];
|
||||
export type AdminUpdateUserNoteRequest = operations['admin/update-user-note']['requestBody']['content']['application/json'];
|
||||
export type AdminRolesCreateRequest = operations['admin/roles/create']['requestBody']['content']['application/json'];
|
||||
export type AdminRolesCreateResponse = operations['admin/roles/create']['responses']['200']['content']['application/json'];
|
||||
export type AdminRolesDeleteRequest = operations['admin/roles/delete']['requestBody']['content']['application/json'];
|
||||
export type AdminRolesListResponse = operations['admin/roles/list']['responses']['200']['content']['application/json'];
|
||||
export type AdminRolesShowRequest = operations['admin/roles/show']['requestBody']['content']['application/json'];
|
||||
export type AdminRolesShowResponse = operations['admin/roles/show']['responses']['200']['content']['application/json'];
|
||||
export type AdminRolesUpdateRequest = operations['admin/roles/update']['requestBody']['content']['application/json'];
|
||||
export type AdminRolesAssignRequest = operations['admin/roles/assign']['requestBody']['content']['application/json'];
|
||||
export type AdminRolesUnassignRequest = operations['admin/roles/unassign']['requestBody']['content']['application/json'];
|
||||
|
@ -426,7 +429,9 @@ export type FlashMyLikesResponse = operations['flash/my-likes']['responses']['20
|
|||
export type PingResponse = operations['ping']['responses']['200']['content']['application/json'];
|
||||
export type PinnedUsersResponse = operations['pinned-users']['responses']['200']['content']['application/json'];
|
||||
export type PromoReadRequest = operations['promo/read']['requestBody']['content']['application/json'];
|
||||
export type RolesListResponse = operations['roles/list']['responses']['200']['content']['application/json'];
|
||||
export type RolesShowRequest = operations['roles/show']['requestBody']['content']['application/json'];
|
||||
export type RolesShowResponse = operations['roles/show']['responses']['200']['content']['application/json'];
|
||||
export type RolesUsersRequest = operations['roles/users']['requestBody']['content']['application/json'];
|
||||
export type RolesNotesRequest = operations['roles/notes']['requestBody']['content']['application/json'];
|
||||
export type RolesNotesResponse = operations['roles/notes']['responses']['200']['content']['application/json'];
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* version: 4.6.0-beta.1
|
||||
* generatedAt: 2023-12-05T08:31:06.217Z
|
||||
* version: 4.6.0-beta.2
|
||||
* generatedAt: 2023-12-06T08:45:38.853Z
|
||||
*/
|
||||
|
||||
import { components } from './types.js';
|
||||
|
@ -40,3 +40,5 @@ export type EmojiSimple = components['schemas']['EmojiSimple'];
|
|||
export type EmojiDetailed = components['schemas']['EmojiDetailed'];
|
||||
export type Flash = components['schemas']['Flash'];
|
||||
export type Signin = components['schemas']['Signin'];
|
||||
export type RoleLite = components['schemas']['RoleLite'];
|
||||
export type Role = components['schemas']['Role'];
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
/* eslint @typescript-eslint/no-explicit-any: 0 */
|
||||
|
||||
/*
|
||||
* version: 4.6.0-beta.1
|
||||
* generatedAt: 2023-12-05T08:31:06.141Z
|
||||
* version: 4.6.0-beta.2
|
||||
* generatedAt: 2023-12-06T08:45:38.779Z
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -3471,17 +3471,7 @@ export type components = {
|
|||
usePasswordLessLogin: boolean;
|
||||
/** @default false */
|
||||
securityKeys: boolean;
|
||||
roles: ({
|
||||
/** Format: id */
|
||||
id: string;
|
||||
name: string;
|
||||
color: string | null;
|
||||
iconUrl: string | null;
|
||||
description: string;
|
||||
isModerator: boolean;
|
||||
isAdministrator: boolean;
|
||||
displayOrder: number;
|
||||
})[];
|
||||
roles: components['schemas']['RoleLite'][];
|
||||
memo: string | null;
|
||||
moderationNote?: string;
|
||||
isFollowing?: boolean;
|
||||
|
@ -4173,6 +4163,160 @@ export type components = {
|
|||
headers: Record<string, never>;
|
||||
success: boolean;
|
||||
};
|
||||
RoleLite: {
|
||||
/**
|
||||
* Format: id
|
||||
* @example xxxxxxxxxx
|
||||
*/
|
||||
id: string;
|
||||
/** @example New Role */
|
||||
name: string;
|
||||
/** @example #000000 */
|
||||
color: string | null;
|
||||
iconUrl: string | null;
|
||||
description: string;
|
||||
/** @example false */
|
||||
isModerator: boolean;
|
||||
/** @example false */
|
||||
isAdministrator: boolean;
|
||||
/** @example 0 */
|
||||
displayOrder: number;
|
||||
};
|
||||
Role: components['schemas']['RoleLite'] & ({
|
||||
/** Format: date-time */
|
||||
createdAt: string;
|
||||
/** Format: date-time */
|
||||
updatedAt: string;
|
||||
/** @enum {string} */
|
||||
target: 'manual' | 'conditional';
|
||||
condFormula: Record<string, never>;
|
||||
/** @example false */
|
||||
isPublic: boolean;
|
||||
/** @example false */
|
||||
isExplorable: boolean;
|
||||
/** @example false */
|
||||
asBadge: boolean;
|
||||
/** @example false */
|
||||
canEditMembersByModerator: boolean;
|
||||
policies: {
|
||||
pinLimit: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
canInvite: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
clipLimit: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
canHideAds: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
inviteLimit: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
antennaLimit: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
gtlAvailable: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
ltlAvailable: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
webhookLimit: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
canPublicNote: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
userListLimit: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
wordMuteLimit: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
alwaysMarkNsfw: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
canSearchNotes: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
driveCapacityMb: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
rateLimitFactor: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
inviteLimitCycle: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
noteEachClipsLimit: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
inviteExpirationTime: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
canManageCustomEmojis: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
userEachUserListsLimit: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
canManageAvatarDecorations: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
canUseTranslator: {
|
||||
value: number | boolean;
|
||||
priority: number;
|
||||
useDefault: boolean;
|
||||
};
|
||||
};
|
||||
usersCount: number;
|
||||
});
|
||||
};
|
||||
responses: never;
|
||||
parameters: never;
|
||||
|
@ -8615,9 +8759,11 @@ export type operations = {
|
|||
};
|
||||
};
|
||||
responses: {
|
||||
/** @description OK (without any results) */
|
||||
204: {
|
||||
content: never;
|
||||
/** @description OK (with results) */
|
||||
200: {
|
||||
content: {
|
||||
'application/json': components['schemas']['Role'];
|
||||
};
|
||||
};
|
||||
/** @description Client error */
|
||||
400: {
|
||||
|
@ -8711,9 +8857,11 @@ export type operations = {
|
|||
*/
|
||||
'admin/roles/list': {
|
||||
responses: {
|
||||
/** @description OK (without any results) */
|
||||
204: {
|
||||
content: never;
|
||||
/** @description OK (with results) */
|
||||
200: {
|
||||
content: {
|
||||
'application/json': components['schemas']['Role'][];
|
||||
};
|
||||
};
|
||||
/** @description Client error */
|
||||
400: {
|
||||
|
@ -8763,9 +8911,11 @@ export type operations = {
|
|||
};
|
||||
};
|
||||
responses: {
|
||||
/** @description OK (without any results) */
|
||||
204: {
|
||||
content: never;
|
||||
/** @description OK (with results) */
|
||||
200: {
|
||||
content: {
|
||||
'application/json': components['schemas']['Role'];
|
||||
};
|
||||
};
|
||||
/** @description Client error */
|
||||
400: {
|
||||
|
@ -21193,9 +21343,11 @@ export type operations = {
|
|||
*/
|
||||
'roles/list': {
|
||||
responses: {
|
||||
/** @description OK (without any results) */
|
||||
204: {
|
||||
content: never;
|
||||
/** @description OK (with results) */
|
||||
200: {
|
||||
content: {
|
||||
'application/json': components['schemas']['Role'][];
|
||||
};
|
||||
};
|
||||
/** @description Client error */
|
||||
400: {
|
||||
|
@ -21245,9 +21397,11 @@ export type operations = {
|
|||
};
|
||||
};
|
||||
responses: {
|
||||
/** @description OK (without any results) */
|
||||
204: {
|
||||
content: never;
|
||||
/** @description OK (with results) */
|
||||
200: {
|
||||
content: {
|
||||
'application/json': components['schemas']['Role'];
|
||||
};
|
||||
};
|
||||
/** @description Client error */
|
||||
400: {
|
||||
|
|
|
@ -203,7 +203,7 @@ function focusDown() {
|
|||
}
|
||||
|
||||
function switchItem(item: MenuSwitch & { ref: any }) {
|
||||
if (typeof item.disabled === 'boolean' ? item.disabled : item.disabled.value) return;
|
||||
if (item.disabled !== undefined && (typeof item.disabled === 'boolean' ? item.disabled : item.disabled.value)) return;
|
||||
item.ref = !item.ref;
|
||||
}
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
</template>
|
||||
<div v-else>
|
||||
<component :is="self ? 'MkA' : 'a'" :class="[$style.link, { [$style.compact]: compact }]" :[attr]="self ? url.substring(local.length) : url" rel="nofollow noopener" :target="target" :title="url">
|
||||
<div v-if="thumbnail" :class="$style.thumbnail" :style="defaultStore.state.dataSaver.urlPreview ? '' : `background-image: url('${thumbnail}')`">
|
||||
<div v-if="thumbnail && !sensitive" :class="$style.thumbnail" :style="defaultStore.state.dataSaver.urlPreview ? '' : `background-image: url('${thumbnail}')`">
|
||||
</div>
|
||||
<article :class="$style.body">
|
||||
<header :class="$style.header">
|
||||
|
@ -118,6 +118,7 @@ let description = $ref<string | null>(null);
|
|||
let thumbnail = $ref<string | null>(null);
|
||||
let icon = $ref<string | null>(null);
|
||||
let sitename = $ref<string | null>(null);
|
||||
let sensitive = $ref<boolean>(false);
|
||||
let player = $ref({
|
||||
url: null,
|
||||
width: null,
|
||||
|
@ -170,6 +171,7 @@ window.fetch(`/url?url=${encodeURIComponent(requestUrl.href)}&lang=${versatileLa
|
|||
icon = info.icon;
|
||||
sitename = info.sitename;
|
||||
player = info.player;
|
||||
sensitive = info.sensitive ?? false;
|
||||
});
|
||||
|
||||
function adjustTweetHeight(message: any) {
|
||||
|
|
|
@ -242,17 +242,14 @@ const headerActions = $computed(() => {
|
|||
type: 'switch',
|
||||
text: i18n.ts.friendlyEnableNotifications,
|
||||
ref: $$(friendlyEnableNotifications),
|
||||
disabled: false,
|
||||
}, {
|
||||
type: 'switch',
|
||||
text: i18n.ts.friendlyEnableWidgets,
|
||||
ref: $$(friendlyEnableWidgets),
|
||||
disabled: false,
|
||||
}, {
|
||||
type: 'switch',
|
||||
text: i18n.ts.showRenotes,
|
||||
ref: $$(withRenotes),
|
||||
disabled: false,
|
||||
}, src === 'local' || src === 'social' ? {
|
||||
type: 'switch',
|
||||
text: i18n.ts.showRepliesToOthersInTimeline,
|
||||
|
@ -267,7 +264,6 @@ const headerActions = $computed(() => {
|
|||
type: 'switch',
|
||||
text: i18n.ts.showCatOnly,
|
||||
ref: $$(onlyCats),
|
||||
disabled: false,
|
||||
}], ev.currentTarget ?? ev.target);
|
||||
},
|
||||
},
|
||||
|
|
|
@ -124,7 +124,6 @@ const menu = [{
|
|||
type: 'switch',
|
||||
text: i18n.ts.showRenotes,
|
||||
ref: $$(withRenotes),
|
||||
disabled: false,
|
||||
}, props.column.tl === 'local' || props.column.tl === 'social' ? {
|
||||
type: 'switch',
|
||||
text: i18n.ts.showRepliesToOthersInTimeline,
|
||||
|
@ -139,7 +138,6 @@ const menu = [{
|
|||
type: 'switch',
|
||||
text: i18n.ts.showCatOnly,
|
||||
ref: $$(onlyCats),
|
||||
disabled: false,
|
||||
}];
|
||||
</script>
|
||||
|
||||
|
|
Loading…
Reference in a new issue