FIT2CLOUD
追番插件 的图标

追番插件

14,413
6,827

为主题提供从哔哩哔哩爬取到的追番数据,提供追番页面路由

Halo 2.0 追番插件

Halo version Roozen LICENSE MIT LICENSE MIT

Halo 2.0 的追番插件,支持在 Console 进行管理以及为主题端提供 /bangumis 页面路由。

本插件目前有halo-theme-haohalo-theme-auroratheme-clarity主题支持

使用方式

  1. 下载,目前提供以下下载方式:
  2. 安装,插件安装和更新方式可参考:https://docs.halo.run/user-guide/plugins
  3. 安装完成之后,访问 Console 左侧的插件菜单项打开追番插件基本设置界面,填写你的bilibiliID
  4. 前台访问地址为 /bangumis,需要注意的是,此插件需要主题提供模板bangumis.html)才能访问 /bangumis

注意,请打开以下开关!!!

本插件后续将支持其他 bilibili api 数据的获取,开源不易,喜欢请给个star,这是对我最大的鼓励!

开发环境

git clone git@github.com:Roozenlz/plugin-bilibili-bangumi.git

# 或者当你 fork 之后

git clone git@github.com:{your_github_id}/plugin-bilibili-bangumi.git
cd path/to/plugin-bilibili-bangumi
# macOS / Linux
./gradlew watch

# Windows
./gradlew.bat watch

主题适配

插件为主题端提供了 /bangumis 路由,模板为 bangumis.html

模板变量

路由信息

模板路径 访问路径
/templates/bangumis.html /bangumis

路由可选参数

参数名 描述 示例
page 分页页码 /bangumis?page=1/bangumis/page/1
typeNum 番剧类型(1.追番,2.追剧) /bangumis?typeNum=1
status 番剧状态(0.全部,1.想看,2.在看,3.已看) /bangumis?status=2
size 每页显示数量 /bangumis?size=20

变量

变量名 类型 描述
bangumis BangumiListResult 追番列表数据,包含分页信息

示例

<ul>
    <li th:each="bangumi : ${bangumis.items}">
        <img th:src="${bangumi.spec.cover}" th:alt="${bangumi.spec.title}" width="280">
        <h3 th:text="${bangumi.spec.title}"></h3>
        <p th:text="${bangumi.spec.type}"></p>
        <p th:text="${bangumi.spec.area}"></p>
        <p th:text="${bangumi.spec.score}"></p>
    </li>
</ul>
<div th:if="${bangumis.hasPrevious() || bangumis.hasNext()}">
   <a th:href="@{${bangumis.prevUrl}}">
      <span>上一页</span>
   </a>
   <span th:text="${bangumis.page}"></span>
   <a th:href="@{${bangumis.nextUrl}}">
      <span>下一页</span>
   </a>
</div>

Finder API

list(typeNum, status, page, size)

描述:根据分页参数获取番剧列表

参数

  • typeNum:int - 番剧类型(1.追番,2.追剧)
  • status:int - 番剧状态(0.全部,1.想看,2.在看,3.已看)
  • page:int - 分页页码,从 1 开始
  • size:int - 分页条数

返回值BangumiListResult

示例

<th:block th:with="bangumis = ${bangumiFinder.list(1, 0, 1, 10)}">
    <ul>
        <li th:each="bangumi : ${bangumis.items}">
            <img th:src="${bangumi.spec.cover}" th:alt="${bangumi.spec.title}" width="280">
        </li>
    </ul>
    <div>
        <span th:text="${bangumis.page}"></span>
    </div>
</th:block>

list({…})

描述:统一参数的番剧列表查询方法,支持分页、类型、状态等参数,且均为可选参数。

参数

  • params:Map - 查询参数,包含:
    • page:int - 分页页码,从 1 开始(默认值:1)
    • size:int - 分页条数(默认值:10)
    • typeNum:int - 番剧类型(1.追番,2.追剧)(默认值:1)
    • status:int - 番剧状态(0.全部,1.想看,2.在看,3.已看)(默认值:0)

返回值BangumiListResult

示例

<ul th:with="bangumis = ${bangumiFinder.list({
  page: 1,
  size: 10,
  typeNum: 1,
  status: 2
})}">
    <li th:each="bangumi : ${bangumis.items}">
        <a th:href="${bangumi.spec.url}" th:text="${bangumi.spec.title}"></a>
    </li>
</ul>

getBiliData(typeNum, status, ps, pn)

描述:根据分页参数获取B站番剧数据

参数

  • typeNum:int - 番剧类型(1.追番,2.追剧)
  • status:int - 番剧状态(0.全部,1.想看,2.在看,3.已看)
  • ps:int - 每页数量
  • pn:int - 页码

返回值List<Bangumi>

示例

<ul>
    <li th:each="bangumi : ${bangumiFinder.getBiliData(1, 0, 10, 1)}">
        <img th:src="${bangumi.spec.cover}" th:alt="${bangumi.spec.title}" width="280">
    </li>
</ul>

getBiliDataAll(typeNum, status)

描述:获取所有B站番剧数据

参数

  • typeNum:int - 番剧类型(1.追番,2.追剧)
  • status:int - 番剧状态(0.全部,1.想看,2.在看,3.已看)

返回值List<Bangumi>

示例

<ul>
    <li th:each="bangumi : ${bangumiFinder.getBiliDataAll(1, 0)}">
        <img th:src="${bangumi.spec.cover}" th:alt="${bangumi.spec.title}" width="280">
    </li>
</ul>

类型定义

Bangumi

{
  "spec": {
    "title": "string",                                  // 番剧名称
    "type": "string",                                   // 番剧类型
    "area": "string",                                   // 地区
    "cover": "string",                                  // 封面图片链接
    "totalCount": "string",                             // 总集数
    "id": "string",                                     // 番剧ID
    "follow": "string",                                 // 追番人数
    "view": "string",                                   // 播放量
    "danmaku": "string",                                // 弹幕数
    "coin": "string",                                   // 硬币数
    "score": "string",                                  // 评分
    "des": "string",                                    // 描述
    "url": "string"                                     // 番剧链接
  }
}

BangumiListResult

{
  "items": [Bangumi],                                     // 番剧列表数据
  "page": 1,                                              // 当前页码
  "size": 10,                                             // 每页大小
  "total": 100,                                           // 总记录数
  "typeNum": 1,                                           // 类型编号
  "status": 0,                                            // 状态码
  "hasPrevious": true,                                    // 是否有上一页
  "hasNext": true,                                        // 是否有下一页
  "prevUrl": "/bangumis/page/1?typeNum=1&status=0",       // 上一页URL
  "nextUrl": "/bangumis/page/3?typeNum=1&status=0",       // 下一页URL
  "totalPages": 10                                        // 总页数
}

讨论(4)

这是一个开源应用,我们推荐优先在开源仓库中提交 issue,以便开发者更好地接收和跟进问题。

去提交 issue