mirror of
https://github.com/misskey-dev/misskey
synced 2025-06-29 08:12:51 +02:00
* WIp (backend) * Remove unused * 下書きbackend 続き * fix(backedn): visibilityが下書きに反映されない * Update packages/backend/src/postgres.ts Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> * Fix : import order * fix(backend) : createでcwが効かない * FIX FOREGIN KEY * wip: frontend(既存の下書きを挿入) まだ:チャンネル表示、下書きの作成、削除 * WIP: ノート選択ダイアログ 投稿時に下書きを削除 * Promiseに変更 * 連合なし、チャンネルも表示 * Hashtagの値抜け漏れ * hasthagを0文字でも作成可能に * 下書きの保存機構 * chore(misskey-js): build types * localOnly抜け漏れ * チャンネル情報の書き換え * enhance(frontend): ヘッダ部の表示改善 * fix(frontend): ファイル添付できない * fix: no file * fix(frontend): 投票が反映されない * ハッシュタグの展開(コメントアウト外し忘れ) * fix: visibleUserIdsが反映されない * enhance: APIの型を整備 * refactor: 型が整備できたのでasを削除 * Add userhost * fix * enhance: paginationを使う * fix * fix: 自分のアカウントでの投稿でしか下書きを利用できないように 完全に塞ぐことはできないが一応 * 🎨 * APIのエラーIDを追加 * enhance: スタイル調整 * remove unused code * 🎨 * fix: ロールポリシーの型 * ロールの編集画面 * ダイアログの挙動改善 * 下書き機能が利用できない場合は表示しないように * refactor * fix: ダブルクリックが効かない問題を修正 * add comments * fix * fix: 保存時のエラーの種別にかかわらずmodalを閉じないように * fix()backend: NoteDraftのreply, renoteの型が間違ってたので修正 (migtrationはあってた) * fix: 投稿フォームを空白にして通常リノートできるやつは下書きとしては弾くように * fix(backend): テキストが0文字でも下書きは保存できるように * Fix(backend): replyIdの型定義がミスっているのを修正 * chore(misskey-js): update types * Add CHANGELOG * lint * 常にサーバー下書きに保存し、上限を超えた場合のみ尋ねるように * NoteDraftServiceにcreate, updateの処理を移譲 * Fix typeerror * remove tooltip * Remove Mkbutton:short and use iconOnly * 不要なコメントの削除 * Remove Short Completely * wip * escキーまわりの挙動を改善 * 下書き選択時に下書き可能数と現在の量が分かるように * cleanUp * wip * wi * wip * Update MkPostForm.vue --------- Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
141 lines
3.1 KiB
TypeScript
141 lines
3.1 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
// ブラウザで直接表示することを許可するファイルの種類のリスト
|
|
// ここに含まれないものは application/octet-stream としてレスポンスされる
|
|
// SVGはXSSを生むので許可しない
|
|
export const FILE_TYPE_BROWSERSAFE = [
|
|
// Images
|
|
'image/png',
|
|
'image/gif',
|
|
'image/jpeg',
|
|
'image/webp',
|
|
'image/avif',
|
|
'image/apng',
|
|
'image/bmp',
|
|
'image/tiff',
|
|
'image/x-icon',
|
|
|
|
// OggS
|
|
'audio/opus',
|
|
'video/ogg',
|
|
'audio/ogg',
|
|
'application/ogg',
|
|
|
|
// ISO/IEC base media file format
|
|
'video/quicktime',
|
|
'video/mp4',
|
|
'audio/mp4',
|
|
'video/x-m4v',
|
|
'audio/x-m4a',
|
|
'video/3gpp',
|
|
'video/3gpp2',
|
|
|
|
'video/mpeg',
|
|
'audio/mpeg',
|
|
|
|
'video/webm',
|
|
'audio/webm',
|
|
|
|
'audio/aac',
|
|
|
|
// see https://github.com/misskey-dev/misskey/pull/10686
|
|
'audio/flac',
|
|
'audio/wav',
|
|
// backward compatibility
|
|
'audio/x-flac',
|
|
'audio/vnd.wave',
|
|
];
|
|
/*
|
|
https://github.com/sindresorhus/file-type/blob/main/supported.js
|
|
https://github.com/sindresorhus/file-type/blob/main/core.js
|
|
https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers
|
|
*/
|
|
|
|
export const notificationTypes = [
|
|
'note',
|
|
'follow',
|
|
'mention',
|
|
'reply',
|
|
'renote',
|
|
'quote',
|
|
'reaction',
|
|
'pollEnded',
|
|
'receiveFollowRequest',
|
|
'followRequestAccepted',
|
|
'roleAssigned',
|
|
'chatRoomInvitationReceived',
|
|
'achievementEarned',
|
|
'exportCompleted',
|
|
'login',
|
|
'createToken',
|
|
'test',
|
|
'app',
|
|
] as const;
|
|
export const obsoleteNotificationTypes = ['pollVote', 'groupInvited'] as const;
|
|
|
|
export const ROLE_POLICIES = [
|
|
'gtlAvailable',
|
|
'ltlAvailable',
|
|
'canPublicNote',
|
|
'mentionLimit',
|
|
'canInvite',
|
|
'inviteLimit',
|
|
'inviteLimitCycle',
|
|
'inviteExpirationTime',
|
|
'canManageCustomEmojis',
|
|
'canManageAvatarDecorations',
|
|
'canSearchNotes',
|
|
'canUseTranslator',
|
|
'canHideAds',
|
|
'driveCapacityMb',
|
|
'maxFileSizeMb',
|
|
'alwaysMarkNsfw',
|
|
'canUpdateBioMedia',
|
|
'pinLimit',
|
|
'antennaLimit',
|
|
'wordMuteLimit',
|
|
'webhookLimit',
|
|
'clipLimit',
|
|
'noteEachClipsLimit',
|
|
'userListLimit',
|
|
'userEachUserListsLimit',
|
|
'rateLimitFactor',
|
|
'avatarDecorationLimit',
|
|
'canImportAntennas',
|
|
'canImportBlocking',
|
|
'canImportFollowing',
|
|
'canImportMuting',
|
|
'canImportUserLists',
|
|
'chatAvailability',
|
|
'uploadableFileTypes',
|
|
'noteDraftLimit',
|
|
] as const;
|
|
|
|
export const MFM_TAGS = ['tada', 'jelly', 'twitch', 'shake', 'spin', 'jump', 'bounce', 'flip', 'x2', 'x3', 'x4', 'scale', 'position', 'fg', 'bg', 'border', 'font', 'blur', 'rainbow', 'sparkle', 'rotate', 'ruby', 'unixtime'];
|
|
export const MFM_PARAMS: Record<typeof MFM_TAGS[number], string[]> = {
|
|
tada: ['speed=', 'delay='],
|
|
jelly: ['speed=', 'delay='],
|
|
twitch: ['speed=', 'delay='],
|
|
shake: ['speed=', 'delay='],
|
|
spin: ['speed=', 'delay=', 'left', 'alternate', 'x', 'y'],
|
|
jump: ['speed=', 'delay='],
|
|
bounce: ['speed=', 'delay='],
|
|
flip: ['h', 'v'],
|
|
x2: [],
|
|
x3: [],
|
|
x4: [],
|
|
scale: ['x=', 'y='],
|
|
position: ['x=', 'y='],
|
|
fg: ['color='],
|
|
bg: ['color='],
|
|
border: ['width=', 'style=', 'color=', 'radius=', 'noclip'],
|
|
font: ['serif', 'monospace', 'cursive', 'fantasy', 'emoji', 'math'],
|
|
blur: [],
|
|
rainbow: ['speed=', 'delay='],
|
|
rotate: ['deg='],
|
|
ruby: [],
|
|
unixtime: [],
|
|
};
|