Files
MoviePilot-Frontend/src/utils/imageUtils.ts
2025-09-11 15:03:12 +08:00

85 lines
2.7 KiB
TypeScript

/**
* 静态资源导入工具函数
* 用于在生产环境中正确引用静态资源
*/
// 导入所有 logo 图标
import qbittorrentLogo from '@/assets/images/logos/qbittorrent.png'
import transmissionLogo from '@/assets/images/logos/transmission.png'
import embyLogo from '@/assets/images/logos/emby.png'
import jellyfinLogo from '@/assets/images/logos/jellyfin.png'
import plexLogo from '@/assets/images/logos/plex.png'
import trimemediaLogo from '@/assets/images/logos/trimemedia.png'
import wechatLogo from '@/assets/images/logos/wechat.png'
import telegramLogo from '@/assets/images/logos/telegram.webp'
import slackLogo from '@/assets/images/logos/slack.webp'
import synologychatLogo from '@/assets/images/logos/synologychat.png'
import vocechatLogo from '@/assets/images/logos/vocechat.png'
import downloaderLogo from '@/assets/images/logos/downloader.png'
import mediaserverLogo from '@/assets/images/logos/mediaserver.png'
import notificationLogo from '@/assets/images/logos/notification.png'
import chromeLogo from '@/assets/images/logos/chrome.png'
import doubanLogo from '@/assets/images/logos/douban.png'
import githubLogo from '@/assets/images/logos/github.png'
import tmdbLogo from '@/assets/images/logos/tmdb.png'
import fanartLogo from '@/assets/images/logos/fanart.webp'
import pythonLogo from '@/assets/images/logos/python.png'
import pluginLogo from '@/assets/images/logos/plugin.png'
import siteLogo from '@/assets/images/logos/site.webp'
import bangumiLogo from '@/assets/images/logos/bangumi.png'
import doubanBlackLogo from '@/assets/images/logos/douban-black.png'
// 图标映射表
const logoMap: Record<string, string> = {
qbittorrent: qbittorrentLogo,
transmission: transmissionLogo,
emby: embyLogo,
jellyfin: jellyfinLogo,
plex: plexLogo,
trimemedia: trimemediaLogo,
wechat: wechatLogo,
telegram: telegramLogo,
slack: slackLogo,
synologychat: synologychatLogo,
vocechat: vocechatLogo,
downloader: downloaderLogo,
mediaserver: mediaserverLogo,
notification: notificationLogo,
chrome: chromeLogo,
douban: doubanLogo,
github: githubLogo,
tmdb: tmdbLogo,
fanart: fanartLogo,
python: pythonLogo,
plugin: pluginLogo,
site: siteLogo,
bangumi: bangumiLogo,
'douban-black': doubanBlackLogo,
}
/**
* 获取图标 URL
* @param logoName 图标名称
* @returns 图标的 URL
*/
export function getLogoUrl(logoName: string): string {
return logoMap[logoName] || ''
}
/**
* 获取所有可用的图标名称
* @returns 图标名称数组
*/
export function getAvailableLogos(): string[] {
return Object.keys(logoMap)
}
/**
* 检查图标是否存在
* @param logoName 图标名称
* @returns 是否存在
*/
export function hasLogo(logoName: string): boolean {
return logoName in logoMap
}