import { Card, CardBody } from '@heroui/card' import { Image } from '@heroui/image' import { Link } from '@heroui/link' import { Spinner } from '@heroui/spinner' import { useRequest } from 'ahooks' import { useMemo } from 'react' import { BsTelegram, BsTencentQq } from 'react-icons/bs' import { IoDocument } from 'react-icons/io5' import HoverTiltedCard from '@/components/hover_titled_card' import NapCatRepoInfo from '@/components/napcat_repo_info' import RotatingText from '@/components/rotating_text' import { usePreloadImages } from '@/hooks/use-preload-images' import { useTheme } from '@/hooks/use-theme' import logo from '@/assets/images/logo.png' import WebUIManager from '@/controllers/webui_manager' function VersionInfo() { const { data, loading, error } = useRequest(WebUIManager.getPackageInfo) return (
NapCat
{error ? ( error.message ) : loading ? ( ) : ( )}
) } export default function AboutPage() { const { isDark } = useTheme() const imageUrls = useMemo( () => [ 'https://next.ossinsight.io/widgets/official/compose-recent-active-contributors/thumbnail.png?repo_id=777721566&limit=30&image_size=auto&color_scheme=light', 'https://next.ossinsight.io/widgets/official/compose-recent-active-contributors/thumbnail.png?repo_id=777721566&limit=30&image_size=auto&color_scheme=dark', 'https://next.ossinsight.io/widgets/official/compose-activity-trends/thumbnail.png?repo_id=41986369&image_size=auto&color_scheme=light', 'https://next.ossinsight.io/widgets/official/compose-activity-trends/thumbnail.png?repo_id=41986369&image_size=auto&color_scheme=dark' ], [] ) const { loadedUrls, isLoading } = usePreloadImages(imageUrls) const getImageUrl = useMemo( () => (baseUrl: string) => { const theme = isDark ? 'dark' : 'light' const fullUrl = baseUrl.replace( /color_scheme=(?:light|dark)/, `color_scheme=${theme}` ) return isLoading ? null : loadedUrls[fullUrl] ? fullUrl : null }, [isDark, isLoading, loadedUrls] ) const renderImage = useMemo( () => (baseUrl: string, alt: string) => { const imageUrl = getImageUrl(baseUrl) if (!imageUrl) { return (
) } return ( {alt} ) }, [getImageUrl] ) return ( <> 关于 NapCat WebUI

NapCat 是什么?

基于TypeScript构建的Bot框架,通过相应的启动器或者框架,主动调用QQ Node模块提供给客户端的接口,实现Bot的功能.

魔法版介绍

猫猫框架通过魔法的手段获得了 QQ 的发送消息、接收消息等接口。 为了方便使用,猫猫框架将通过一种名为 OneBot 的约定将你的 HTTP / WebSocket 请求按照规范读取, 再去调用猫猫框架所获得的QQ发送接口之类的接口。

官方社群1 官方社群2 Telegram 使用文档
{renderImage( 'https://next.ossinsight.io/widgets/official/compose-recent-active-contributors/thumbnail.png?repo_id=777721566&limit=30&image_size=auto&color_scheme=light', 'Contributors' )} {renderImage( 'https://next.ossinsight.io/widgets/official/compose-activity-trends/thumbnail.png?repo_id=41986369&image_size=auto&color_scheme=light', 'Activity Trends' )}
) }