Merge pull request #760 from Jasonzhu1207/main

feat:AI见解支持结合社交媒体平台消息以进行综合分析
This commit is contained in:
cc
2026-04-14 23:03:49 +08:00
committed by GitHub
9 changed files with 1155 additions and 50 deletions

View File

@@ -1,4 +1,4 @@
// 配置服务 - 封装 Electron Store
// 配置服务 - 封装 Electron Store
import { config } from './ipc'
import type { ExportDefaultDateRangeConfig } from '../utils/exportDateRange'
import type { ExportAutomationTask } from '../types/exportAutomation'
@@ -95,15 +95,19 @@ export const CONFIG_KEYS = {
AI_INSIGHT_API_MODEL: 'aiInsightApiModel',
AI_INSIGHT_SILENCE_DAYS: 'aiInsightSilenceDays',
AI_INSIGHT_ALLOW_CONTEXT: 'aiInsightAllowContext',
AI_INSIGHT_ALLOW_SOCIAL_CONTEXT: 'aiInsightAllowSocialContext',
AI_INSIGHT_WHITELIST_ENABLED: 'aiInsightWhitelistEnabled',
AI_INSIGHT_WHITELIST: 'aiInsightWhitelist',
AI_INSIGHT_COOLDOWN_MINUTES: 'aiInsightCooldownMinutes',
AI_INSIGHT_SCAN_INTERVAL_HOURS: 'aiInsightScanIntervalHours',
AI_INSIGHT_CONTEXT_COUNT: 'aiInsightContextCount',
AI_INSIGHT_SOCIAL_CONTEXT_COUNT: 'aiInsightSocialContextCount',
AI_INSIGHT_SYSTEM_PROMPT: 'aiInsightSystemPrompt',
AI_INSIGHT_TELEGRAM_ENABLED: 'aiInsightTelegramEnabled',
AI_INSIGHT_TELEGRAM_TOKEN: 'aiInsightTelegramToken',
AI_INSIGHT_TELEGRAM_CHAT_IDS: 'aiInsightTelegramChatIds',
AI_INSIGHT_WEIBO_COOKIE: 'aiInsightWeiboCookie',
AI_INSIGHT_WEIBO_BINDINGS: 'aiInsightWeiboBindings',
// AI 足迹
AI_FOOTPRINT_ENABLED: 'aiFootprintEnabled',
@@ -118,6 +122,12 @@ export interface WxidConfig {
updatedAt?: number
}
export interface AiInsightWeiboBinding {
uid: string
screenName?: string
updatedAt: number
}
export interface ExportDefaultMediaConfig {
images: boolean
videos: boolean
@@ -1876,6 +1886,15 @@ export async function setAiInsightAllowContext(allow: boolean): Promise<void> {
await config.set(CONFIG_KEYS.AI_INSIGHT_ALLOW_CONTEXT, allow)
}
export async function getAiInsightAllowSocialContext(): Promise<boolean> {
const value = await config.get(CONFIG_KEYS.AI_INSIGHT_ALLOW_SOCIAL_CONTEXT)
return value === true
}
export async function setAiInsightAllowSocialContext(allow: boolean): Promise<void> {
await config.set(CONFIG_KEYS.AI_INSIGHT_ALLOW_SOCIAL_CONTEXT, allow)
}
export async function getAiInsightWhitelistEnabled(): Promise<boolean> {
const value = await config.get(CONFIG_KEYS.AI_INSIGHT_WHITELIST_ENABLED)
return value === true
@@ -1921,6 +1940,15 @@ export async function setAiInsightContextCount(count: number): Promise<void> {
await config.set(CONFIG_KEYS.AI_INSIGHT_CONTEXT_COUNT, count)
}
export async function getAiInsightSocialContextCount(): Promise<number> {
const value = await config.get(CONFIG_KEYS.AI_INSIGHT_SOCIAL_CONTEXT_COUNT)
return typeof value === 'number' && value > 0 ? value : 3
}
export async function setAiInsightSocialContextCount(count: number): Promise<void> {
await config.set(CONFIG_KEYS.AI_INSIGHT_SOCIAL_CONTEXT_COUNT, count)
}
export async function getAiInsightSystemPrompt(): Promise<string> {
const value = await config.get(CONFIG_KEYS.AI_INSIGHT_SYSTEM_PROMPT)
return typeof value === 'string' ? value : ''
@@ -1957,6 +1985,25 @@ export async function setAiInsightTelegramChatIds(chatIds: string): Promise<void
await config.set(CONFIG_KEYS.AI_INSIGHT_TELEGRAM_CHAT_IDS, chatIds)
}
export async function getAiInsightWeiboCookie(): Promise<string> {
const value = await config.get(CONFIG_KEYS.AI_INSIGHT_WEIBO_COOKIE)
return typeof value === 'string' ? value : ''
}
export async function setAiInsightWeiboCookie(cookieValue: string): Promise<void> {
await config.set(CONFIG_KEYS.AI_INSIGHT_WEIBO_COOKIE, cookieValue)
}
export async function getAiInsightWeiboBindings(): Promise<Record<string, AiInsightWeiboBinding>> {
const value = await config.get(CONFIG_KEYS.AI_INSIGHT_WEIBO_BINDINGS)
if (!value || typeof value !== 'object') return {}
return value as Record<string, AiInsightWeiboBinding>
}
export async function setAiInsightWeiboBindings(bindings: Record<string, AiInsightWeiboBinding>): Promise<void> {
await config.set(CONFIG_KEYS.AI_INSIGHT_WEIBO_BINDINGS, bindings)
}
export async function getAiFootprintEnabled(): Promise<boolean> {
const value = await config.get(CONFIG_KEYS.AI_FOOTPRINT_ENABLED)
return value === true
@@ -1983,3 +2030,4 @@ export async function getAiInsightDebugLogEnabled(): Promise<boolean> {
export async function setAiInsightDebugLogEnabled(enabled: boolean): Promise<void> {
await config.set(CONFIG_KEYS.AI_INSIGHT_DEBUG_LOG_ENABLED, enabled)
}