Merge branch 'develop' of https://github.com/syuilo/misskey into develop
This commit is contained in:
		
						commit
						ed9fef408e
					
				
					 11 changed files with 25 additions and 44 deletions
				
			
		|  | @ -12,11 +12,15 @@ You should also include the user name that made the change. | |||
| 
 | ||||
| ## 12.x.x (unreleased) | ||||
| 
 | ||||
| ### Changes | ||||
| - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました | ||||
| 
 | ||||
| ### Improvements | ||||
| -  | ||||
| 
 | ||||
| ### Bugfixes | ||||
| - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo | ||||
| - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn | ||||
| 
 | ||||
| ## 12.107.0 (2022/02/12) | ||||
| 
 | ||||
|  |  | |||
|  | @ -422,7 +422,6 @@ next: "次" | |||
| retype: "再入力" | ||||
| noteOf: "{user}のノート" | ||||
| inviteToGroup: "グループに招待" | ||||
| maxNoteTextLength: "ノートの文字数制限" | ||||
| quoteAttached: "引用付き" | ||||
| quoteQuestion: "引用として添付しますか?" | ||||
| noMessagesYet: "まだチャットはありません" | ||||
|  |  | |||
|  | @ -0,0 +1,13 @@ | |||
| const { MigrationInterface, QueryRunner } = require("typeorm"); | ||||
| 
 | ||||
| module.exports = class removeMaxNoteTextLength1645340161439 { | ||||
|     name = 'removeMaxNoteTextLength1645340161439' | ||||
| 
 | ||||
|     async up(queryRunner) { | ||||
|         await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "maxNoteTextLength"`); | ||||
|     } | ||||
| 
 | ||||
|     async down(queryRunner) { | ||||
|         await queryRunner.query(`ALTER TABLE "meta" ADD "maxNoteTextLength" integer NOT NULL DEFAULT '500'`); | ||||
|     } | ||||
| } | ||||
|  | @ -1,3 +1,5 @@ | |||
| export const MAX_NOTE_TEXT_LENGTH = 3000; | ||||
| 
 | ||||
| export const USER_ONLINE_THRESHOLD = 1000 * 60 * 10; // 10min
 | ||||
| export const USER_ACTIVE_THRESHOLD = 1000 * 60 * 60 * 24 * 3; // 3days
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -205,12 +205,6 @@ export class Meta { | |||
| 	}) | ||||
| 	public remoteDriveCapacityMb: number; | ||||
| 
 | ||||
| 	@Column('integer', { | ||||
| 		default: 500, | ||||
| 		comment: 'Max allowed note text length in characters', | ||||
| 	}) | ||||
| 	public maxNoteTextLength: number; | ||||
| 
 | ||||
| 	@Column('varchar', { | ||||
| 		length: 128, | ||||
| 		nullable: true, | ||||
|  |  | |||
|  | @ -36,7 +36,6 @@ export const paramDef = { | |||
| 		logoImageUrl: { type: 'string', nullable: true }, | ||||
| 		name: { type: 'string', nullable: true }, | ||||
| 		description: { type: 'string', nullable: true }, | ||||
| 		maxNoteTextLength: { type: 'integer', maximum: 8192 }, | ||||
| 		localDriveCapacityMb: { type: 'integer' }, | ||||
| 		remoteDriveCapacityMb: { type: 'integer' }, | ||||
| 		cacheRemoteFiles: { type: 'boolean' }, | ||||
|  | @ -164,10 +163,6 @@ export default define(meta, paramDef, async (ps, me) => { | |||
| 		set.description = ps.description; | ||||
| 	} | ||||
| 
 | ||||
| 	if (ps.maxNoteTextLength) { | ||||
| 		set.maxNoteTextLength = ps.maxNoteTextLength; | ||||
| 	} | ||||
| 
 | ||||
| 	if (ps.localDriveCapacityMb !== undefined) { | ||||
| 		set.localDriveCapacityMb = ps.localDriveCapacityMb; | ||||
| 	} | ||||
|  |  | |||
|  | @ -138,11 +138,6 @@ export const meta = { | |||
| 				type: 'string', | ||||
| 				optional: false, nullable: true, | ||||
| 			}, | ||||
| 			maxNoteTextLength: { | ||||
| 				type: 'number', | ||||
| 				optional: false, nullable: false, | ||||
| 				default: 500, | ||||
| 			}, | ||||
| 			emojis: { | ||||
| 				type: 'array', | ||||
| 				optional: false, nullable: false, | ||||
|  | @ -506,7 +501,6 @@ export default define(meta, paramDef, async (ps, me) => { | |||
| 		iconUrl: instance.iconUrl, | ||||
| 		backgroundImageUrl: instance.backgroundImageUrl, | ||||
| 		logoImageUrl: instance.logoImageUrl, | ||||
| 		maxNoteTextLength: Math.min(instance.maxNoteTextLength, DB_MAX_NOTE_TEXT_LENGTH), | ||||
| 		emojis: await Emojis.packMany(emojis), | ||||
| 		ads: ads.map(ad => ({ | ||||
| 			id: ad.id, | ||||
|  |  | |||
|  | @ -1,24 +1,14 @@ | |||
| import ms from 'ms'; | ||||
| import { length } from 'stringz'; | ||||
| import create from '@/services/note/create'; | ||||
| import define from '../../define'; | ||||
| import { fetchMeta } from '@/misc/fetch-meta'; | ||||
| import { ApiError } from '../../error'; | ||||
| import { User } from '@/models/entities/user'; | ||||
| import { Users, DriveFiles, Notes, Channels, Blockings } from '@/models/index'; | ||||
| import { DriveFile } from '@/models/entities/drive-file'; | ||||
| import { Note } from '@/models/entities/note'; | ||||
| import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits'; | ||||
| import { noteVisibilities } from '../../../../types'; | ||||
| import { Channel } from '@/models/entities/channel'; | ||||
| 
 | ||||
| let maxNoteTextLength = 500; | ||||
| 
 | ||||
| setInterval(() => { | ||||
| 	fetchMeta().then(m => { | ||||
| 		maxNoteTextLength = m.maxNoteTextLength; | ||||
| 	}); | ||||
| }, 3000); | ||||
| import { MAX_NOTE_TEXT_LENGTH } from '@/const'; | ||||
| 
 | ||||
| export const meta = { | ||||
| 	tags: ['notes'], | ||||
|  | @ -102,7 +92,7 @@ export const paramDef = { | |||
| 		visibleUserIds: { type: 'array', uniqueItems: true, items: { | ||||
| 			type: 'string', format: 'misskey:id', | ||||
| 		} }, | ||||
| 		text: { type: 'string', nullable: true, maxLength: 3000, default: null }, | ||||
| 		text: { type: 'string', nullable: true, maxLength: MAX_NOTE_TEXT_LENGTH, default: null }, | ||||
| 		cw: { type: 'string', nullable: true, maxLength: 100 }, | ||||
| 		localOnly: { type: 'boolean', default: false }, | ||||
| 		noExtractMentions: { type: 'boolean', default: false }, | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ import config from '@/config/index'; | |||
| import { fetchMeta } from '@/misc/fetch-meta'; | ||||
| import { Users, Notes } from '@/models/index'; | ||||
| import { MoreThan } from 'typeorm'; | ||||
| import { MAX_NOTE_TEXT_LENGTH } from '@/const'; | ||||
| 
 | ||||
| const router = new Router(); | ||||
| 
 | ||||
|  | @ -69,7 +70,7 @@ const nodeinfo2 = async () => { | |||
| 			emailRequiredForSignup: meta.emailRequiredForSignup, | ||||
| 			enableHcaptcha: meta.enableHcaptcha, | ||||
| 			enableRecaptcha: meta.enableRecaptcha, | ||||
| 			maxNoteTextLength: meta.maxNoteTextLength, | ||||
| 			maxNoteTextLength: MAX_NOTE_TEXT_LENGTH, | ||||
| 			enableTwitterIntegration: meta.enableTwitterIntegration, | ||||
| 			enableGithubIntegration: meta.enableGithubIntegration, | ||||
| 			enableDiscordIntegration: meta.enableDiscordIntegration, | ||||
|  |  | |||
|  | @ -12,13 +12,14 @@ | |||
| 		<XDraggable | ||||
| 			v-model="widgets_" | ||||
| 			item-key="id" | ||||
| 			handle=".handle" | ||||
| 			animation="150" | ||||
| 		> | ||||
| 			<template #item="{element}"> | ||||
| 				<div class="customize-container"> | ||||
| 					<button class="config _button" @click.prevent.stop="configWidget(element.id)"><i class="fas fa-cog"></i></button> | ||||
| 					<button class="remove _button" @click.prevent.stop="removeWidget(element)"><i class="fas fa-times"></i></button> | ||||
| 					<component :ref="el => widgetRefs[element.id] = el" :is="`mkw-${element.name}`" :widget="element" @updateProps="updateWidget(element.id, $event)"/> | ||||
| 					<component class="handle" :ref="el => widgetRefs[element.id] = el" :is="`mkw-${element.name}`" :widget="element" @updateProps="updateWidget(element.id, $event)"/> | ||||
| 				</div> | ||||
| 			</template> | ||||
| 		</XDraggable> | ||||
|  | @ -121,10 +122,6 @@ export default defineComponent({ | |||
| 		position: relative; | ||||
| 		cursor: move; | ||||
| 
 | ||||
| 		> *:not(.remove):not(.config) { | ||||
| 			pointer-events: none; | ||||
| 		} | ||||
| 
 | ||||
| 		> .config, | ||||
| 		> .remove { | ||||
| 			position: absolute; | ||||
|  |  | |||
|  | @ -52,11 +52,6 @@ | |||
| 				<template #caption>{{ $ts.pinnedUsersDescription }}</template> | ||||
| 			</FormTextarea> | ||||
| 
 | ||||
| 			<FormInput v-model="maxNoteTextLength" type="number" class="_formBlock"> | ||||
| 				<template #prefix><i class="fas fa-pencil-alt"></i></template> | ||||
| 				<template #label>{{ $ts.maxNoteTextLength }}</template> | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormSection> | ||||
| 				<FormSwitch v-model="enableRegistration" class="_formBlock"> | ||||
| 					<template #label>{{ $ts.enableRegistration }}</template> | ||||
|  | @ -186,7 +181,6 @@ export default defineComponent({ | |||
| 			bannerUrl: null, | ||||
| 			backgroundImageUrl: null, | ||||
| 			themeColor: null, | ||||
| 			maxNoteTextLength: 0, | ||||
| 			enableLocalTimeline: false, | ||||
| 			enableGlobalTimeline: false, | ||||
| 			pinnedUsers: '', | ||||
|  | @ -216,7 +210,6 @@ export default defineComponent({ | |||
| 			this.themeColor = meta.themeColor; | ||||
| 			this.maintainerName = meta.maintainerName; | ||||
| 			this.maintainerEmail = meta.maintainerEmail; | ||||
| 			this.maxNoteTextLength = meta.maxNoteTextLength; | ||||
| 			this.enableLocalTimeline = !meta.disableLocalTimeline; | ||||
| 			this.enableGlobalTimeline = !meta.disableGlobalTimeline; | ||||
| 			this.pinnedUsers = meta.pinnedUsers.join('\n'); | ||||
|  | @ -244,7 +237,6 @@ export default defineComponent({ | |||
| 				themeColor: this.themeColor === '' ? null : this.themeColor, | ||||
| 				maintainerName: this.maintainerName, | ||||
| 				maintainerEmail: this.maintainerEmail, | ||||
| 				maxNoteTextLength: this.maxNoteTextLength, | ||||
| 				disableLocalTimeline: !this.enableLocalTimeline, | ||||
| 				disableGlobalTimeline: !this.enableGlobalTimeline, | ||||
| 				pinnedUsers: this.pinnedUsers.split('\n'), | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue