MCPcopy Create free account
hub / github.com/TeleBoxOrg/TeleBox_Plugins / validateConfig

Method validateConfig

outdated/gemini/gemini.ts:197–253  ·  view source on GitHub ↗
(key: string, value: string)

Source from the content-addressed store, hash-verified

195 }
196
197 static validateConfig(key: string, value: string): { isValid: boolean; error?: string } {
198 if (value.length > 10000) {
199 return { isValid: false, error: "输入值过长,最大允许10000字符" };
200 }
201
202 const validators = {
203 [CONFIG_KEYS.GEMINI_API_KEY]: (v: string) => {
204 if (!v || v.trim().length === 0) return "API密钥不能为空";
205 if (v.length < 10) return "API密钥格式无效";
206 if (!/^[A-Za-z0-9_-]+$/.test(v)) return "API密钥包含无效字符";
207 return null;
208 },
209 [CONFIG_KEYS.GEMINI_MAX_TOKENS]: (v: string) => {
210 const tokens = parseInt(v);
211 if (isNaN(tokens) || tokens < 0) return "Token数量必须为非负整数";
212 if (tokens > 1000000) return "Token数量过大,最大允许1000000";
213 return null;
214 },
215 [CONFIG_KEYS.GEMINI_BASE_URL]: (v: string) => {
216 if (v && !v.startsWith('http')) return "URL必须以http://或https://开头";
217 if (v && v.length > 500) return "URL长度过长";
218
219 if (v) {
220 try {
221 new URL(v);
222 } catch {
223 return "URL格式无效";
224 }
225 }
226 return null;
227 },
228 [CONFIG_KEYS.GEMINI_TELEGRAPH_LIMIT]: (v: string) => {
229 const limit = parseInt(v);
230 if (isNaN(limit) || limit < 0) return "限制必须为非负整数";
231 if (limit > 100000) return "限制值过大,最大允许100000";
232 return null;
233 },
234 [CONFIG_KEYS.GEMINI_CONTEXT_ENABLED]: (v: string) => {
235 if (v !== "on" && v !== "off") return "值必须为 'on' 或 'off'";
236 return null;
237 },
238 [CONFIG_KEYS.GEMINI_TELEGRAPH_ENABLED]: (v: string) => {
239 if (v !== "on" && v !== "off") return "值必须为 'on' 或 'off'";
240 return null;
241 },
242 [CONFIG_KEYS.GEMINI_COLLAPSIBLE_QUOTE_ENABLED]: (v: string) => {
243 if (v !== "on" && v !== "off") return "值必须为 'on' 或 'off'";
244 return null;
245 }
246 };
247 const validator = validators[key];
248 if (validator) {
249 const error = validator(value);
250 return error ? { isValid: false, error } : { isValid: true };
251 }
252 return { isValid: true };
253 }
254

Callers 2

handleTelegraphFunction · 0.80
handleGeminiRequestFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected