Skip to content

WindowsNoEditor/CPP_Search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

漫展查询 API

基于PHP模拟请求"无差别同人站(CPP)"数据的漫展查询API

为什么制作这个?

因为以前用的API已经在Koishi插件内无法使用,且:

1.没有展会状态(进行中/倒计时/已取消)功能

2.不按照时间排序

遂自己抓包写了此项目用于替代旧的API (目前自用稳定使用)

✨ 特性

  • 🔍 支持关键词搜索漫展信息
  • 📅 自动标注展会状态(进行中/倒计时/已取消)
  • 📊 多页数据自动聚合
  • 🎯 智能时间排序
  • 🖼️ 完整的图片 URL 处理
  • 🐛 调试模式支持

📋 要求

  • PHP 7.0 或更高版本
  • cURL 扩展
  • 支持 JSON 处理

🚀 快速开始

安装

  1. 克隆项目到你的服务器
git clone https://github.com/Akagicv/CPP_Search.git
cd CPP_Search
  1. 确保 PHP 和 cURL 扩展已安装
php -v
php -m | grep curl
  1. 配置 Web 服务器(Apache/Nginx)指向项目目录

使用方法

最简单的办法(本人使用场景)

接入koishi的anime-convention-lizard(或2)插件 输入该PHP部署的地址

如果你只是为了漫展查询插件能正常使用——可以直接填写下面地址

本人搭建的接口地址: https://api.mihoyo.su/manzhan.php

基础查询

GET /CPP_Search.php?msg=上海

调试模式

查看原始 JSON 数据:

GET /CPP_Search.php?msg=上海&debug=raw

查看原始响应:

GET /CPP_Search.php?msg=上海&debug=response

📖 API 文档

请求参数

参数 类型 必填 说明
msg string 搜索关键词(地区、展会名称等)
debug string 调试模式:raw(原始数据)/ response(原始响应)

响应格式

成功响应(示例)

{
    "code": 200,
    "msg": "上海",
    "data": [
        {
            "id": 12345,
            "name": "2024上海CP展(还有3天开始)",
            "tag": "综合展",
            "location": "上海市 浦东新区",
            "address": "上海新国际博览中心",
            "url": "https://www.allcpp.cn/allcpp/event/event.do?event=12345",
            "type": "综合展",
            "wannaGoCount": 1500,
            "circleCount": 200,
            "doujinshiCount": 300,
            "time": "2024-12-28 08:00:00",
            "appLogoPicUrl": "https://imagecdn3.allcpp.cn/upload/xxx.jpg",
            "logoPicUrl": "https://imagecdn3.allcpp.cn/upload/xxx.jpg",
            "ended": "未结束",
            "isOnline": "线下"
        }
    ]
}

错误响应

{
    "code": 400,
    "msg": "请提供搜索关键词",
    "data": []
}

响应字段说明

字段 类型 说明
id int 展会 ID
name string 展会名称(含状态标签)
tag string 展会标签
location string 地理位置(省市区)
address string 详细地址
url string 展会详情页链接
type string 展会类型(综合展/ONLY/茶会等)
wannaGoCount int 想去人数
circleCount int 社团数量
doujinshiCount int 同人志数量
time string 开始时间
appLogoPicUrl string 应用 Logo 图片 URL
logoPicUrl string Logo 图片 URL
ended string 结束状态(未结束/已结束/筹备中/已取消)
isOnline string 展会形式(线上/线下)

状态码

状态码 说明
200 请求成功
400 请求参数错误
500 服务器错误

🎯 展会状态标签

API 会自动为展会名称添加状态标签:

  • (进行中) - 展会正在进行
  • (还有X天开始) - 展会即将开始的倒计时
  • (已取消) - 展会已被取消

📝 使用示例

JavaScript (Fetch)

fetch('https://your-domain.com/CPP_Search.php?msg=上海')
    .then(response => response.json())
    .then(data => {
        console.log(data.data); // 展会列表
    });

Python

import requests

response = requests.get('https://your-domain.com/CPP_Search.php', params={'msg': '上海'})
data = response.json()
print(data['data'])

cURL

curl "https://your-domain.com/CPP_Search.php?msg=上海"

⚠️ 注意事项

  1. 本项目仅供学习交流使用
  2. 数据来源于"无差别同人站"(allcpp.cn),请遵守其服务条款
  3. 建议添加缓存机制以减少服务器压力
  4. 生产环境建议添加访问频率限制

📄 开源协议

本项目采用 GPL3.0 开源协议

🔗 相关链接


⭐ 如果这个项目对你有帮助,欢迎给个 Star!

About

基于PHP模拟请求"无差别同人站(CPP)"数据的漫展查询API

Resources

License

Stars

Watchers

Forks

Languages