diff --git a/registry/lib/plugins/launch-bar/uid-search/index.md b/registry/lib/plugins/launch-bar/uid-search/index.md new file mode 100644 index 0000000000..d406eb8dfd --- /dev/null +++ b/registry/lib/plugins/launch-bar/uid-search/index.md @@ -0,0 +1 @@ +在输入 UID (用户 ID) 时, 提供对应的跳转选项. diff --git a/registry/lib/plugins/launch-bar/uid-search/index.ts b/registry/lib/plugins/launch-bar/uid-search/index.ts new file mode 100644 index 0000000000..1e52cfce5d --- /dev/null +++ b/registry/lib/plugins/launch-bar/uid-search/index.ts @@ -0,0 +1,32 @@ +import type { LaunchBarActionProvider } from '@/components/launch-bar/launch-bar-action' +import type { PluginMetadata } from '@/plugins/plugin' +import { getJson } from '@/core/ajax' +import { createLinkAction, matchInput } from '../common' + +export const plugin: PluginMetadata = { + name: 'launchBar.actions.uidSearch', + displayName: '搜索栏 - UID 跳转', + async setup({ addData }) { + addData('launchBar.actions', (providers: LaunchBarActionProvider[]) => { + providers.push({ + name: 'uidSearchProvider', + getActions: async input => { + const { match, id, indexer } = matchInput(input, /^(uid)(\d+)$/) + if (!match) { + return [] + } + const json = await getJson(`https://api.bilibili.com/x/space/wbi/acc/info?mid=${id}`) + const { name } = lodash.get(json, 'data', {}) + return [ + createLinkAction({ + name, + description: '用户跳转', + link: `https://space.bilibili.com/${id}`, + indexer, + }), + ] + }, + }) + }) + }, +}