import { Card, CardBody } from '@heroui/card'; import { Image } from '@heroui/image'; import { Link } from '@heroui/link'; import { Skeleton } from '@heroui/skeleton'; 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.GetNapCatVersion); 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' )}
); }