diff --git a/shared/cache/cache.ts b/shared/cache/cache.ts index e0367514..2ec18d68 100644 --- a/shared/cache/cache.ts +++ b/shared/cache/cache.ts @@ -1,6 +1,10 @@ import { ChatConverseInfo, fetchConverseInfo } from '../model/converse'; import { findGroupInviteByCode, GroupInvite } from '../model/group'; -import { fetchRegistryPlugins } from '../model/plugin'; +import { + fetchGithubStaticRegistryPlugins, + fetchRegistryPlugins, + PluginManifest, +} from '../model/plugin'; import { fetchUserInfo, UserBaseInfo } from '../model/user'; import { queryClient } from './index'; @@ -51,10 +55,14 @@ export async function getCachedGroupInviteInfo( /** * 获取缓存的插件列表 */ -export async function getCachedRegistryPlugins() { +export async function getCachedRegistryPlugins(): Promise { const data = await queryClient.fetchQuery( ['pluginRegistry'], - () => fetchRegistryPlugins(), + () => + Promise.all([ + fetchRegistryPlugins(), + fetchGithubStaticRegistryPlugins(), + ]).then(([a, b]) => [...a, ...b]), { staleTime: 2 * 60 * 60 * 1000, // 缓存2小时 } diff --git a/shared/model/plugin.ts b/shared/model/plugin.ts index 87118f10..b73d812f 100644 --- a/shared/model/plugin.ts +++ b/shared/model/plugin.ts @@ -54,3 +54,16 @@ export async function fetchRegistryPlugins(): Promise { return data; } + +/** + * 获取官方Github注册表文件 + */ +export async function fetchGithubStaticRegistryPlugins(): Promise< + PluginManifest[] +> { + const data = await fetch( + 'https://raw.githubusercontent.com/msgbyte/tailchat/master/registry.json' + ); + + return await data.json(); +}