refactor: separate meta api for admin or not
This commit is contained in:
		
							parent
							
								
									725b78349a
								
							
						
					
					
						commit
						d0a346ed8a
					
				
					 14 changed files with 413 additions and 196 deletions
				
			
		
							
								
								
									
										401
									
								
								packages/backend/src/server/api/endpoints/admin/meta.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										401
									
								
								packages/backend/src/server/api/endpoints/admin/meta.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,401 @@ | ||||||
|  | import config from '@/config/index.js'; | ||||||
|  | import define from '../../define.js'; | ||||||
|  | import { fetchMeta } from '@/misc/fetch-meta.js'; | ||||||
|  | import { MAX_NOTE_TEXT_LENGTH } from '@/const.js'; | ||||||
|  | 
 | ||||||
|  | export const meta = { | ||||||
|  | 	tags: ['meta'], | ||||||
|  | 
 | ||||||
|  | 	requireCredential: true, | ||||||
|  | 	requireAdmin: true, | ||||||
|  | 
 | ||||||
|  | 	res: { | ||||||
|  | 		type: 'object', | ||||||
|  | 		optional: false, nullable: false, | ||||||
|  | 		properties: { | ||||||
|  | 			driveCapacityPerLocalUserMb: { | ||||||
|  | 				type: 'number', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			driveCapacityPerRemoteUserMb: { | ||||||
|  | 				type: 'number', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			cacheRemoteFiles: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			emailRequiredForSignup: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			enableHcaptcha: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			hcaptchaSiteKey: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: false, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			enableRecaptcha: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			recaptchaSiteKey: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: false, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			swPublickey: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: false, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			mascotImageUrl: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 				default: '/assets/ai.png', | ||||||
|  | 			}, | ||||||
|  | 			bannerUrl: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			errorImageUrl: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 				default: 'https://xn--931a.moe/aiart/yubitun.png', | ||||||
|  | 			}, | ||||||
|  | 			iconUrl: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: false, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			maxNoteTextLength: { | ||||||
|  | 				type: 'number', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			emojis: { | ||||||
|  | 				type: 'array', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 				items: { | ||||||
|  | 					type: 'object', | ||||||
|  | 					optional: false, nullable: false, | ||||||
|  | 					properties: { | ||||||
|  | 						id: { | ||||||
|  | 							type: 'string', | ||||||
|  | 							optional: false, nullable: false, | ||||||
|  | 							format: 'id', | ||||||
|  | 						}, | ||||||
|  | 						aliases: { | ||||||
|  | 							type: 'array', | ||||||
|  | 							optional: false, nullable: false, | ||||||
|  | 							items: { | ||||||
|  | 								type: 'string', | ||||||
|  | 								optional: false, nullable: false, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 						category: { | ||||||
|  | 							type: 'string', | ||||||
|  | 							optional: false, nullable: true, | ||||||
|  | 						}, | ||||||
|  | 						host: { | ||||||
|  | 							type: 'string', | ||||||
|  | 							optional: false, nullable: true, | ||||||
|  | 						}, | ||||||
|  | 						url: { | ||||||
|  | 							type: 'string', | ||||||
|  | 							optional: false, nullable: false, | ||||||
|  | 							format: 'url', | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			ads: { | ||||||
|  | 				type: 'array', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 				items: { | ||||||
|  | 					type: 'object', | ||||||
|  | 					optional: false, nullable: false, | ||||||
|  | 					properties: { | ||||||
|  | 						place: { | ||||||
|  | 							type: 'string', | ||||||
|  | 							optional: false, nullable: false, | ||||||
|  | 						}, | ||||||
|  | 						url: { | ||||||
|  | 							type: 'string', | ||||||
|  | 							optional: false, nullable: false, | ||||||
|  | 							format: 'url', | ||||||
|  | 						}, | ||||||
|  | 						imageUrl: { | ||||||
|  | 							type: 'string', | ||||||
|  | 							optional: false, nullable: false, | ||||||
|  | 							format: 'url', | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			enableEmail: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			enableTwitterIntegration: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			enableGithubIntegration: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			enableDiscordIntegration: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			enableServiceWorker: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			translatorAvailable: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: false, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			proxyAccountName: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: false, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			userStarForReactionFallback: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: true, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			pinnedUsers: { | ||||||
|  | 				type: 'array', | ||||||
|  | 				optional: true, nullable: false, | ||||||
|  | 				items: { | ||||||
|  | 					type: 'string', | ||||||
|  | 					optional: false, nullable: false, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			hiddenTags: { | ||||||
|  | 				type: 'array', | ||||||
|  | 				optional: true, nullable: false, | ||||||
|  | 				items: { | ||||||
|  | 					type: 'string', | ||||||
|  | 					optional: false, nullable: false, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			blockedHosts: { | ||||||
|  | 				type: 'array', | ||||||
|  | 				optional: true, nullable: false, | ||||||
|  | 				items: { | ||||||
|  | 					type: 'string', | ||||||
|  | 					optional: false, nullable: false, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			hcaptchaSecretKey: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			recaptchaSecretKey: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			proxyAccountId: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 				format: 'id', | ||||||
|  | 			}, | ||||||
|  | 			twitterConsumerKey: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			twitterConsumerSecret: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			githubClientId: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			githubClientSecret: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			discordClientId: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			discordClientSecret: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			summaryProxy: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			email: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			smtpSecure: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: true, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			smtpHost: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			smtpPort: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			smtpUser: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			smtpPass: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			swPrivateKey: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			useObjectStorage: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: true, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			objectStorageBaseUrl: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			objectStorageBucket: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			objectStoragePrefix: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			objectStorageEndpoint: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			objectStorageRegion: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			objectStoragePort: { | ||||||
|  | 				type: 'number', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			objectStorageAccessKey: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			objectStorageSecretKey: { | ||||||
|  | 				type: 'string', | ||||||
|  | 				optional: true, nullable: true, | ||||||
|  | 			}, | ||||||
|  | 			objectStorageUseSSL: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: true, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			objectStorageUseProxy: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: true, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 			objectStorageSetPublicRead: { | ||||||
|  | 				type: 'boolean', | ||||||
|  | 				optional: true, nullable: false, | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
|  | } as const; | ||||||
|  | 
 | ||||||
|  | export const paramDef = { | ||||||
|  | 	type: 'object', | ||||||
|  | 	properties: { | ||||||
|  | 	}, | ||||||
|  | 	required: [], | ||||||
|  | } as const; | ||||||
|  | 
 | ||||||
|  | // eslint-disable-next-line import/no-default-export
 | ||||||
|  | export default define(meta, paramDef, async (ps, me) => { | ||||||
|  | 	const instance = await fetchMeta(true); | ||||||
|  | 
 | ||||||
|  | 	return { | ||||||
|  | 		maintainerName: instance.maintainerName, | ||||||
|  | 		maintainerEmail: instance.maintainerEmail, | ||||||
|  | 		version: config.version, | ||||||
|  | 		name: instance.name, | ||||||
|  | 		uri: config.url, | ||||||
|  | 		description: instance.description, | ||||||
|  | 		langs: instance.langs, | ||||||
|  | 		tosUrl: instance.ToSUrl, | ||||||
|  | 		repositoryUrl: instance.repositoryUrl, | ||||||
|  | 		feedbackUrl: instance.feedbackUrl, | ||||||
|  | 		disableRegistration: instance.disableRegistration, | ||||||
|  | 		disableLocalTimeline: instance.disableLocalTimeline, | ||||||
|  | 		disableGlobalTimeline: instance.disableGlobalTimeline, | ||||||
|  | 		driveCapacityPerLocalUserMb: instance.localDriveCapacityMb, | ||||||
|  | 		driveCapacityPerRemoteUserMb: instance.remoteDriveCapacityMb, | ||||||
|  | 		emailRequiredForSignup: instance.emailRequiredForSignup, | ||||||
|  | 		enableHcaptcha: instance.enableHcaptcha, | ||||||
|  | 		hcaptchaSiteKey: instance.hcaptchaSiteKey, | ||||||
|  | 		enableRecaptcha: instance.enableRecaptcha, | ||||||
|  | 		recaptchaSiteKey: instance.recaptchaSiteKey, | ||||||
|  | 		swPublickey: instance.swPublicKey, | ||||||
|  | 		themeColor: instance.themeColor, | ||||||
|  | 		mascotImageUrl: instance.mascotImageUrl, | ||||||
|  | 		bannerUrl: instance.bannerUrl, | ||||||
|  | 		errorImageUrl: instance.errorImageUrl, | ||||||
|  | 		iconUrl: instance.iconUrl, | ||||||
|  | 		backgroundImageUrl: instance.backgroundImageUrl, | ||||||
|  | 		logoImageUrl: instance.logoImageUrl, | ||||||
|  | 		maxNoteTextLength: MAX_NOTE_TEXT_LENGTH, // 後方互換性のため
 | ||||||
|  | 		defaultLightTheme: instance.defaultLightTheme, | ||||||
|  | 		defaultDarkTheme: instance.defaultDarkTheme, | ||||||
|  | 		enableEmail: instance.enableEmail, | ||||||
|  | 		enableTwitterIntegration: instance.enableTwitterIntegration, | ||||||
|  | 		enableGithubIntegration: instance.enableGithubIntegration, | ||||||
|  | 		enableDiscordIntegration: instance.enableDiscordIntegration, | ||||||
|  | 		enableServiceWorker: instance.enableServiceWorker, | ||||||
|  | 		translatorAvailable: instance.deeplAuthKey != null, | ||||||
|  | 		pinnedPages: instance.pinnedPages, | ||||||
|  | 		pinnedClipId: instance.pinnedClipId, | ||||||
|  | 		cacheRemoteFiles: instance.cacheRemoteFiles, | ||||||
|  | 
 | ||||||
|  | 		useStarForReactionFallback: instance.useStarForReactionFallback, | ||||||
|  | 		pinnedUsers: instance.pinnedUsers, | ||||||
|  | 		hiddenTags: instance.hiddenTags, | ||||||
|  | 		blockedHosts: instance.blockedHosts, | ||||||
|  | 		hcaptchaSecretKey: instance.hcaptchaSecretKey, | ||||||
|  | 		recaptchaSecretKey: instance.recaptchaSecretKey, | ||||||
|  | 		proxyAccountId: instance.proxyAccountId, | ||||||
|  | 		twitterConsumerKey: instance.twitterConsumerKey, | ||||||
|  | 		twitterConsumerSecret: instance.twitterConsumerSecret, | ||||||
|  | 		githubClientId: instance.githubClientId, | ||||||
|  | 		githubClientSecret: instance.githubClientSecret, | ||||||
|  | 		discordClientId: instance.discordClientId, | ||||||
|  | 		discordClientSecret: instance.discordClientSecret, | ||||||
|  | 		summalyProxy: instance.summalyProxy, | ||||||
|  | 		email: instance.email, | ||||||
|  | 		smtpSecure: instance.smtpSecure, | ||||||
|  | 		smtpHost: instance.smtpHost, | ||||||
|  | 		smtpPort: instance.smtpPort, | ||||||
|  | 		smtpUser: instance.smtpUser, | ||||||
|  | 		smtpPass: instance.smtpPass, | ||||||
|  | 		swPrivateKey: instance.swPrivateKey, | ||||||
|  | 		useObjectStorage: instance.useObjectStorage, | ||||||
|  | 		objectStorageBaseUrl: instance.objectStorageBaseUrl, | ||||||
|  | 		objectStorageBucket: instance.objectStorageBucket, | ||||||
|  | 		objectStoragePrefix: instance.objectStoragePrefix, | ||||||
|  | 		objectStorageEndpoint: instance.objectStorageEndpoint, | ||||||
|  | 		objectStorageRegion: instance.objectStorageRegion, | ||||||
|  | 		objectStoragePort: instance.objectStoragePort, | ||||||
|  | 		objectStorageAccessKey: instance.objectStorageAccessKey, | ||||||
|  | 		objectStorageSecretKey: instance.objectStorageSecretKey, | ||||||
|  | 		objectStorageUseSSL: instance.objectStorageUseSSL, | ||||||
|  | 		objectStorageUseProxy: instance.objectStorageUseProxy, | ||||||
|  | 		objectStorageSetPublicRead: instance.objectStorageSetPublicRead, | ||||||
|  | 		objectStorageS3ForcePathStyle: instance.objectStorageS3ForcePathStyle, | ||||||
|  | 		deeplAuthKey: instance.deeplAuthKey, | ||||||
|  | 		deeplIsPro: instance.deeplIsPro, | ||||||
|  | 	}; | ||||||
|  | }); | ||||||
|  | @ -290,151 +290,6 @@ export const meta = { | ||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			userStarForReactionFallback: { |  | ||||||
| 				type: 'boolean', |  | ||||||
| 				optional: true, nullable: false, |  | ||||||
| 			}, |  | ||||||
| 			pinnedUsers: { |  | ||||||
| 				type: 'array', |  | ||||||
| 				optional: true, nullable: false, |  | ||||||
| 				items: { |  | ||||||
| 					type: 'string', |  | ||||||
| 					optional: false, nullable: false, |  | ||||||
| 				}, |  | ||||||
| 			}, |  | ||||||
| 			hiddenTags: { |  | ||||||
| 				type: 'array', |  | ||||||
| 				optional: true, nullable: false, |  | ||||||
| 				items: { |  | ||||||
| 					type: 'string', |  | ||||||
| 					optional: false, nullable: false, |  | ||||||
| 				}, |  | ||||||
| 			}, |  | ||||||
| 			blockedHosts: { |  | ||||||
| 				type: 'array', |  | ||||||
| 				optional: true, nullable: false, |  | ||||||
| 				items: { |  | ||||||
| 					type: 'string', |  | ||||||
| 					optional: false, nullable: false, |  | ||||||
| 				}, |  | ||||||
| 			}, |  | ||||||
| 			hcaptchaSecretKey: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			recaptchaSecretKey: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			proxyAccountId: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 				format: 'id', |  | ||||||
| 			}, |  | ||||||
| 			twitterConsumerKey: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			twitterConsumerSecret: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			githubClientId: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			githubClientSecret: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			discordClientId: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			discordClientSecret: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			summaryProxy: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			email: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			smtpSecure: { |  | ||||||
| 				type: 'boolean', |  | ||||||
| 				optional: true, nullable: false, |  | ||||||
| 			}, |  | ||||||
| 			smtpHost: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			smtpPort: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			smtpUser: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			smtpPass: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			swPrivateKey: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			useObjectStorage: { |  | ||||||
| 				type: 'boolean', |  | ||||||
| 				optional: true, nullable: false, |  | ||||||
| 			}, |  | ||||||
| 			objectStorageBaseUrl: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			objectStorageBucket: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			objectStoragePrefix: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			objectStorageEndpoint: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			objectStorageRegion: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			objectStoragePort: { |  | ||||||
| 				type: 'number', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			objectStorageAccessKey: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			objectStorageSecretKey: { |  | ||||||
| 				type: 'string', |  | ||||||
| 				optional: true, nullable: true, |  | ||||||
| 			}, |  | ||||||
| 			objectStorageUseSSL: { |  | ||||||
| 				type: 'boolean', |  | ||||||
| 				optional: true, nullable: false, |  | ||||||
| 			}, |  | ||||||
| 			objectStorageUseProxy: { |  | ||||||
| 				type: 'boolean', |  | ||||||
| 				optional: true, nullable: false, |  | ||||||
| 			}, |  | ||||||
| 			objectStorageSetPublicRead: { |  | ||||||
| 				type: 'boolean', |  | ||||||
| 				optional: true, nullable: false, |  | ||||||
| 			}, |  | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
| } as const; | } as const; | ||||||
|  | @ -552,45 +407,6 @@ export default define(meta, paramDef, async (ps, me) => { | ||||||
| 			serviceWorker: instance.enableServiceWorker, | 			serviceWorker: instance.enableServiceWorker, | ||||||
| 			miauth: true, | 			miauth: true, | ||||||
| 		}; | 		}; | ||||||
| 
 |  | ||||||
| 		if (me && me.isAdmin) { |  | ||||||
| 			response.useStarForReactionFallback = instance.useStarForReactionFallback; |  | ||||||
| 			response.pinnedUsers = instance.pinnedUsers; |  | ||||||
| 			response.hiddenTags = instance.hiddenTags; |  | ||||||
| 			response.blockedHosts = instance.blockedHosts; |  | ||||||
| 			response.hcaptchaSecretKey = instance.hcaptchaSecretKey; |  | ||||||
| 			response.recaptchaSecretKey = instance.recaptchaSecretKey; |  | ||||||
| 			response.proxyAccountId = instance.proxyAccountId; |  | ||||||
| 			response.twitterConsumerKey = instance.twitterConsumerKey; |  | ||||||
| 			response.twitterConsumerSecret = instance.twitterConsumerSecret; |  | ||||||
| 			response.githubClientId = instance.githubClientId; |  | ||||||
| 			response.githubClientSecret = instance.githubClientSecret; |  | ||||||
| 			response.discordClientId = instance.discordClientId; |  | ||||||
| 			response.discordClientSecret = instance.discordClientSecret; |  | ||||||
| 			response.summalyProxy = instance.summalyProxy; |  | ||||||
| 			response.email = instance.email; |  | ||||||
| 			response.smtpSecure = instance.smtpSecure; |  | ||||||
| 			response.smtpHost = instance.smtpHost; |  | ||||||
| 			response.smtpPort = instance.smtpPort; |  | ||||||
| 			response.smtpUser = instance.smtpUser; |  | ||||||
| 			response.smtpPass = instance.smtpPass; |  | ||||||
| 			response.swPrivateKey = instance.swPrivateKey; |  | ||||||
| 			response.useObjectStorage = instance.useObjectStorage; |  | ||||||
| 			response.objectStorageBaseUrl = instance.objectStorageBaseUrl; |  | ||||||
| 			response.objectStorageBucket = instance.objectStorageBucket; |  | ||||||
| 			response.objectStoragePrefix = instance.objectStoragePrefix; |  | ||||||
| 			response.objectStorageEndpoint = instance.objectStorageEndpoint; |  | ||||||
| 			response.objectStorageRegion = instance.objectStorageRegion; |  | ||||||
| 			response.objectStoragePort = instance.objectStoragePort; |  | ||||||
| 			response.objectStorageAccessKey = instance.objectStorageAccessKey; |  | ||||||
| 			response.objectStorageSecretKey = instance.objectStorageSecretKey; |  | ||||||
| 			response.objectStorageUseSSL = instance.objectStorageUseSSL; |  | ||||||
| 			response.objectStorageUseProxy = instance.objectStorageUseProxy; |  | ||||||
| 			response.objectStorageSetPublicRead = instance.objectStorageSetPublicRead; |  | ||||||
| 			response.objectStorageS3ForcePathStyle = instance.objectStorageS3ForcePathStyle; |  | ||||||
| 			response.deeplAuthKey = instance.deeplAuthKey; |  | ||||||
| 			response.deeplIsPro = instance.deeplIsPro; |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return response; | 	return response; | ||||||
|  |  | ||||||
|  | @ -84,7 +84,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.enableHcaptcha = meta.enableHcaptcha; | 			this.enableHcaptcha = meta.enableHcaptcha; | ||||||
| 			this.hcaptchaSiteKey = meta.hcaptchaSiteKey; | 			this.hcaptchaSiteKey = meta.hcaptchaSiteKey; | ||||||
| 			this.hcaptchaSecretKey = meta.hcaptchaSecretKey; | 			this.hcaptchaSecretKey = meta.hcaptchaSecretKey; | ||||||
|  |  | ||||||
|  | @ -95,7 +95,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.enableEmail = meta.enableEmail; | 			this.enableEmail = meta.enableEmail; | ||||||
| 			this.email = meta.email; | 			this.email = meta.email; | ||||||
| 			this.smtpSecure = meta.smtpSecure; | 			this.smtpSecure = meta.smtpSecure; | ||||||
|  |  | ||||||
|  | @ -42,7 +42,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.blockedHosts = meta.blockedHosts.join('\n'); | 			this.blockedHosts = meta.blockedHosts.join('\n'); | ||||||
| 		}, | 		}, | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -60,7 +60,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.uri = meta.uri; | 			this.uri = meta.uri; | ||||||
| 			this.enableDiscordIntegration = meta.enableDiscordIntegration; | 			this.enableDiscordIntegration = meta.enableDiscordIntegration; | ||||||
| 			this.discordClientId = meta.discordClientId; | 			this.discordClientId = meta.discordClientId; | ||||||
|  |  | ||||||
|  | @ -60,7 +60,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.uri = meta.uri; | 			this.uri = meta.uri; | ||||||
| 			this.enableGithubIntegration = meta.enableGithubIntegration; | 			this.enableGithubIntegration = meta.enableGithubIntegration; | ||||||
| 			this.githubClientId = meta.githubClientId; | 			this.githubClientId = meta.githubClientId; | ||||||
|  |  | ||||||
|  | @ -60,7 +60,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.uri = meta.uri; | 			this.uri = meta.uri; | ||||||
| 			this.enableTwitterIntegration = meta.enableTwitterIntegration; | 			this.enableTwitterIntegration = meta.enableTwitterIntegration; | ||||||
| 			this.twitterConsumerKey = meta.twitterConsumerKey; | 			this.twitterConsumerKey = meta.twitterConsumerKey; | ||||||
|  |  | ||||||
|  | @ -62,7 +62,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.enableTwitterIntegration = meta.enableTwitterIntegration; | 			this.enableTwitterIntegration = meta.enableTwitterIntegration; | ||||||
| 			this.enableGithubIntegration = meta.enableGithubIntegration; | 			this.enableGithubIntegration = meta.enableGithubIntegration; | ||||||
| 			this.enableDiscordIntegration = meta.enableDiscordIntegration; | 			this.enableDiscordIntegration = meta.enableDiscordIntegration; | ||||||
|  |  | ||||||
|  | @ -120,7 +120,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.useObjectStorage = meta.useObjectStorage; | 			this.useObjectStorage = meta.useObjectStorage; | ||||||
| 			this.objectStorageBaseUrl = meta.objectStorageBaseUrl; | 			this.objectStorageBaseUrl = meta.objectStorageBaseUrl; | ||||||
| 			this.objectStorageBucket = meta.objectStorageBucket; | 			this.objectStorageBucket = meta.objectStorageBucket; | ||||||
|  |  | ||||||
|  | @ -44,7 +44,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 		}, | 		}, | ||||||
| 		save() { | 		save() { | ||||||
| 			os.apiWithDialog('admin/update-meta', { | 			os.apiWithDialog('admin/update-meta', { | ||||||
|  |  | ||||||
|  | @ -46,7 +46,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.proxyAccountId = meta.proxyAccountId; | 			this.proxyAccountId = meta.proxyAccountId; | ||||||
| 			if (this.proxyAccountId) { | 			if (this.proxyAccountId) { | ||||||
| 				this.proxyAccount = await os.api('users/show', { userId: this.proxyAccountId }); | 				this.proxyAccount = await os.api('users/show', { userId: this.proxyAccountId }); | ||||||
|  |  | ||||||
|  | @ -72,7 +72,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.summalyProxy = meta.summalyProxy; | 			this.summalyProxy = meta.summalyProxy; | ||||||
| 			this.enableHcaptcha = meta.enableHcaptcha; | 			this.enableHcaptcha = meta.enableHcaptcha; | ||||||
| 			this.enableRecaptcha = meta.enableRecaptcha; | 			this.enableRecaptcha = meta.enableRecaptcha; | ||||||
|  |  | ||||||
|  | @ -210,7 +210,7 @@ export default defineComponent({ | ||||||
| 
 | 
 | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('admin/meta'); | ||||||
| 			this.name = meta.name; | 			this.name = meta.name; | ||||||
| 			this.description = meta.description; | 			this.description = meta.description; | ||||||
| 			this.tosUrl = meta.tosUrl; | 			this.tosUrl = meta.tosUrl; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue