From 6ee181ed3845afab68739d1b07145ec5a9e5b99f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=87=AA=E7=94=B1=E7=9A=84=E4=B8=96=E7=95=8C=E4=BA=BA?= <3196812536@qq.com> Date: Sun, 11 May 2025 00:37:01 +0800 Subject: [PATCH] fix: clean up code (#5851) --- scripts/notarize.js | 1 - src/main/mcpServers/dify-knowledge.ts | 3 --- src/main/services/ProtocolClient.ts | 1 - .../src/hooks/useMessageOperations.ts | 3 --- .../pages/home/Messages/MessageMenubar.tsx | 1 - .../providers/AiProvider/AnthropicProvider.ts | 5 ++--- .../providers/AiProvider/GeminiProvider.ts | 7 +++---- .../providers/AiProvider/OpenAIProvider.ts | 3 +-- .../src/providers/WebSearchProvider/index.ts | 4 +--- src/renderer/src/utils/api.ts | 6 +----- .../src/utils/blacklistMatchPattern.ts | 10 ++-------- src/renderer/src/utils/messageUtils/create.ts | 19 ++++++++++--------- .../src/utils/messageUtils/filters.ts | 5 +---- src/renderer/src/utils/queue.ts | 1 + 14 files changed, 22 insertions(+), 47 deletions(-) diff --git a/scripts/notarize.js b/scripts/notarize.js index 671605a0b..985da3c37 100644 --- a/scripts/notarize.js +++ b/scripts/notarize.js @@ -7,7 +7,6 @@ exports.default = async function notarizing(context) { } if (!process.env.APPLE_ID || !process.env.APPLE_APP_SPECIFIC_PASSWORD || !process.env.APPLE_TEAM_ID) { - console.log('Skipping notarization') return } diff --git a/src/main/mcpServers/dify-knowledge.ts b/src/main/mcpServers/dify-knowledge.ts index c84d4fe3c..33c61820c 100644 --- a/src/main/mcpServers/dify-knowledge.ts +++ b/src/main/mcpServers/dify-knowledge.ts @@ -56,7 +56,6 @@ class DifyKnowledgeServer { private config: DifyKnowledgeServerConfig constructor(difyKey: string, args: string[]) { - console.log('DifyKnowledgeServer args', args) if (args.length === 0) { throw new Error('DifyKnowledgeServer requires at least one argument') } @@ -113,8 +112,6 @@ class DifyKnowledgeServer { const errorDetails = JSON.stringify(parsed.error.format(), null, 2) throw new Error(`无效的参数:\n${errorDetails}`) } - - console.log('DifyKnowledgeServer search_knowledge parsed', parsed.data) return await this.performSearchKnowledge( parsed.data.id, parsed.data.query, diff --git a/src/main/services/ProtocolClient.ts b/src/main/services/ProtocolClient.ts index 1d98f31c9..f37c61bb3 100644 --- a/src/main/services/ProtocolClient.ts +++ b/src/main/services/ProtocolClient.ts @@ -25,7 +25,6 @@ export function handleProtocolUrl(url: string) { if (!url) return // Process the URL that was used to open the app // The url will be in the format: cherrystudio://data?param1=value1¶m2=value2 - console.log('Received URL:', url) // Parse the URL and extract parameters const urlObj = new URL(url) diff --git a/src/renderer/src/hooks/useMessageOperations.ts b/src/renderer/src/hooks/useMessageOperations.ts index 8cc82063b..86cfd89b8 100644 --- a/src/renderer/src/hooks/useMessageOperations.ts +++ b/src/renderer/src/hooks/useMessageOperations.ts @@ -88,7 +88,6 @@ export function useMessageOperations(topic: Topic) { console.error('[editMessage] Topic prop is not valid.') return } - console.log(`[useMessageOperations] Editing message ${messageId} with updates:`, updates) const messageUpdates: Partial & Pick = { id: messageId, @@ -274,12 +273,10 @@ export function useMessageOperations(topic: Topic) { } dispatch(updateOneBlock({ id: blockId, changes })) await dispatch(updateTranslationBlockThunk(blockId, '', false)) - console.log('[getTranslationUpdater] update existing translation block:', blockId) } else { blockId = await dispatch( initiateTranslationThunk(messageId, topic.id, targetLanguage, sourceBlockId, sourceLanguage) ) - console.log('[getTranslationUpdater] create new translation block:', blockId) } if (!blockId) { diff --git a/src/renderer/src/pages/home/Messages/MessageMenubar.tsx b/src/renderer/src/pages/home/Messages/MessageMenubar.tsx index 17368eae0..fa685006a 100644 --- a/src/renderer/src/pages/home/Messages/MessageMenubar.tsx +++ b/src/renderer/src/pages/home/Messages/MessageMenubar.tsx @@ -88,7 +88,6 @@ const MessageMenubar: FC = (props) => { const onCopy = useCallback( (e: React.MouseEvent) => { e.stopPropagation() - console.log('mainTextContent', mainTextContent) navigator.clipboard.writeText(removeTrailingDoubleSpaces(mainTextContent.trimStart())) window.message.success({ content: t('message.copied'), key: 'copy-message' }) diff --git a/src/renderer/src/providers/AiProvider/AnthropicProvider.ts b/src/renderer/src/providers/AiProvider/AnthropicProvider.ts index 1f9fdfbe7..1bb58c22a 100644 --- a/src/renderer/src/providers/AiProvider/AnthropicProvider.ts +++ b/src/renderer/src/providers/AiProvider/AnthropicProvider.ts @@ -495,7 +495,7 @@ export default class AnthropicProvider extends BaseProvider { /** * Translate a message - * @param message - The message + * @param content * @param assistant - The assistant * @param onResponse - The onResponse callback * @returns The translated message @@ -622,8 +622,7 @@ export default class AnthropicProvider extends BaseProvider { ) .finally(cleanup) - const responseContent = response.content[0].type === 'text' ? response.content[0].text : '' - return responseContent + return response.content[0].type === 'text' ? response.content[0].text : '' } /** diff --git a/src/renderer/src/providers/AiProvider/GeminiProvider.ts b/src/renderer/src/providers/AiProvider/GeminiProvider.ts index 9ccef9b28..db30fa6c4 100644 --- a/src/renderer/src/providers/AiProvider/GeminiProvider.ts +++ b/src/renderer/src/providers/AiProvider/GeminiProvider.ts @@ -620,7 +620,7 @@ export default class GeminiProvider extends BaseProvider { /** * Translate a message - * @param message - The message + * @param content * @param assistant - The assistant * @param onResponse - The onResponse callback * @returns The translated message @@ -827,7 +827,7 @@ export default class GeminiProvider extends BaseProvider { /** * 处理Gemini图像响应 - * @param response - Gemini响应 + * @param chunk * @param onChunk - 处理生成块的回调 */ private processGeminiImageResponse( @@ -961,7 +961,7 @@ export default class GeminiProvider extends BaseProvider { if ('toolUseId' in mcpToolResponse && mcpToolResponse.toolUseId) { return mcpToolCallResponseToGeminiMessage(mcpToolResponse, resp, isVisionModel(model)) } else if ('toolCallId' in mcpToolResponse) { - const toolCallOut = { + return { role: 'user', parts: [ { @@ -976,7 +976,6 @@ export default class GeminiProvider extends BaseProvider { } ] } satisfies Content - return toolCallOut } return } diff --git a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts index 7d70e05aa..51c690ee4 100644 --- a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts @@ -1239,12 +1239,11 @@ export default class OpenAIProvider extends BaseOpenAiProvider { if ('toolUseId' in mcpToolResponse && mcpToolResponse.toolUseId) { return mcpToolCallResponseToOpenAIMessage(mcpToolResponse, resp, isVisionModel(model)) } else if ('toolCallId' in mcpToolResponse && mcpToolResponse.toolCallId) { - const toolCallOut: OpenAI.Responses.ResponseInputItem = { + return { type: 'function_call_output', call_id: mcpToolResponse.toolCallId, output: JSON.stringify(resp.content) } - return toolCallOut } return } diff --git a/src/renderer/src/providers/WebSearchProvider/index.ts b/src/renderer/src/providers/WebSearchProvider/index.ts index 9391d8d70..a2d73f57b 100644 --- a/src/renderer/src/providers/WebSearchProvider/index.ts +++ b/src/renderer/src/providers/WebSearchProvider/index.ts @@ -17,8 +17,6 @@ export default class WebSearchEngineProvider { httpOptions?: RequestInit ): Promise { const result = await this.sdk.search(query, websearch, httpOptions) - const filteredResult = await filterResultWithBlacklist(result, websearch) - - return filteredResult + return await filterResultWithBlacklist(result, websearch) } } diff --git a/src/renderer/src/utils/api.ts b/src/renderer/src/utils/api.ts index 77dd21f81..91022a255 100644 --- a/src/renderer/src/utils/api.ts +++ b/src/renderer/src/utils/api.ts @@ -4,11 +4,7 @@ export function formatApiHost(host: string) { return true } - if (host.endsWith('volces.com/api/v3')) { - return true - } - - return false + return host.endsWith('volces.com/api/v3') } return forceUseOriginalHost() ? host : `${host}/v1/` diff --git a/src/renderer/src/utils/blacklistMatchPattern.ts b/src/renderer/src/utils/blacklistMatchPattern.ts index 03e86ad4e..1c4db35d9 100644 --- a/src/renderer/src/utils/blacklistMatchPattern.ts +++ b/src/renderer/src/utils/blacklistMatchPattern.ts @@ -190,12 +190,10 @@ export async function parseSubscribeContent(url: string): Promise { const lines = content.split('\n') // 过滤出有效的匹配模式 - const patterns = lines + return lines .filter((line) => line.trim() !== '' && !line.startsWith('#')) .map((line) => line.trim()) .filter((pattern) => parseMatchPattern(pattern) !== null) - - return patterns } catch (error) { console.error('Error parsing subscribe content:', error) throw error @@ -264,11 +262,7 @@ export async function filterResultWithBlacklist( // 检查URL是否匹配任何匹配模式规则 const matchesPattern = patternMap.get(result.url).length > 0 - if (matchesPattern) { - return false - } - - return true + return !matchesPattern } catch (error) { console.error('Error processing URL:', result.url, error) return true // 如果URL解析失败,保留该结果 diff --git a/src/renderer/src/utils/messageUtils/create.ts b/src/renderer/src/utils/messageUtils/create.ts index fdd90c3fd..e2333f52f 100644 --- a/src/renderer/src/utils/messageUtils/create.ts +++ b/src/renderer/src/utils/messageUtils/create.ts @@ -13,8 +13,12 @@ import type { ToolMessageBlock, TranslationMessageBlock } from '@renderer/types/newMessage' -import { AssistantMessageStatus, UserMessageStatus } from '@renderer/types/newMessage' -import { MessageBlockStatus, MessageBlockType } from '@renderer/types/newMessage' +import { + AssistantMessageStatus, + MessageBlockStatus, + MessageBlockType, + UserMessageStatus +} from '@renderer/types/newMessage' import { v4 as uuidv4 } from 'uuid' type PartialBy = Omit & Partial> @@ -184,7 +188,7 @@ export function createFileBlock( /** * Creates an Error Message Block. * @param messageId - The ID of the parent message. - * @param error - The error object/details. + * @param errorData * @param overrides - Optional properties to override the defaults. * @returns An ErrorMessageBlock object. */ @@ -273,7 +277,6 @@ export function createCitationBlock( * @param role - The role of the message sender ('user' or 'assistant'). * @param topicId - The ID of the topic this message belongs to. * @param assistantId - The ID of the assistant (relevant for assistant messages). - * @param type - The type of the message ('text', '@', 'clear'). * @param overrides - Optional properties to override the defaults. Initial blocks can be passed here. * @returns A Message object. */ @@ -311,8 +314,8 @@ export function createMessage( /** * Creates a new Assistant Message object (stub) based on the LATEST definition. * Contains only metadata, no content or block data initially. - * @param assistant - The assistant configuration. - * @param topic - The topic this message belongs to. + * @param assistantId + * @param topicId * @param overrides - Optional properties to override the defaults (e.g., model, askId). * @returns An Assistant Message stub object. */ @@ -395,7 +398,7 @@ export const resetAssistantMessage = ( } // Create the base reset message - const resetMsg: Message = { + return { // --- Retain Core Identifiers --- id: originalMessage.id, // Keep the same message ID topicId: originalMessage.topicId, @@ -420,8 +423,6 @@ export const resetAssistantMessage = ( // --- Apply Overrides --- ...updates // Apply any specific updates passed in (e.g., a different status) } - - return resetMsg } // 需要一个重置助手消息 diff --git a/src/renderer/src/utils/messageUtils/filters.ts b/src/renderer/src/utils/messageUtils/filters.ts index 8a7ce4243..6422ad076 100644 --- a/src/renderer/src/utils/messageUtils/filters.ts +++ b/src/renderer/src/utils/messageUtils/filters.ts @@ -135,10 +135,7 @@ export function filterUsefulMessages(messages: Message[]): Message[] { // Filter adjacent user messages, keeping only the last one _messages = _messages.filter((message, index, origin) => { - if (message.role === 'user' && index + 1 < origin.length && origin[index + 1].role === 'user') { - return false - } - return true + return !(message.role === 'user' && index + 1 < origin.length && origin[index + 1].role === 'user') }) return _messages diff --git a/src/renderer/src/utils/queue.ts b/src/renderer/src/utils/queue.ts index c08cea365..cbc6ec9c5 100644 --- a/src/renderer/src/utils/queue.ts +++ b/src/renderer/src/utils/queue.ts @@ -6,6 +6,7 @@ const requestQueues: { [topicId: string]: PQueue } = {} /** * Get or create a queue for a specific topic * @param topicId The ID of the topic + * @param options * @returns A PQueue instance for the topic */ export const getTopicQueue = (topicId: string, options = {}): PQueue => {