0.0.4 • Published 1 year ago

@catlair/bilicomic-dataflow v0.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

manga dataflow

  • 生成 Manga 数据流
  • 使用 node https 发送数据流

Types

export class Bilicomic {
  /**
   * @param {string | number} mid - 用户 ID
   * @param {string | number} manga_id - 漫画 ID
   * @param {string | number} manga_num - 漫画集数 ID
   */
  constructor(
    mid: string | number,
    manga_id: string | number,
    manga_num: string | number
  );
  /**
   * 发送一次数据包
   * @param {number} n 数据大小,每两个增加一分钟阅读进度,默认 `1`
   * @description 该函数只有两种情况,返回 true 或者 抛出异常。希望由调用者自行处理异常。
   * @returns {Promise<true>} 在没有异常的情况下始终返回 true,即使没有增加时间(因为原本接口就是如此)
   */
  read(n?: number): Promise<true>;
  /**
   * 用于发送的数据
   */
  readonly dataflow: Uint8Array;
}

使用方式

const { Bilicomic } = require('@catlair/bilicomic-dataflow');

// 自行获取 manga_id, manga_num,如果 mid 太长,可以使用字符串
const bilicomic = new Bilicomic(114514, 123456, 12231);

async function run1() {
  // 发送两次增加 1 分钟,至于检查需要多少时间,以及是否完成,不在本项目的范畴。
  for (let index = 0; index < 32; index++) {
    // 异常处理略
    try {
      await bilicomic.read();
    } catch {}
    // 间隔 1 分钟
    await sleep(1000);
  }
}

async function run2() {
  // 直接一次性完成 30 分钟
  await bilicomic.read(60);
}

run1().catch(console.error);

function sleep(time) {
  return new Promise((resolve) => setTimeout(resolve, time));
}

mangaId 和 mangaNum 如何获取?

你可以参考 snippets 目录下定义的代码,其中有获取漫画 ID 和漫画集数 ID 的方法。它们没有被项目用到,但是我将其作为测试用例的一部分,所以保留了。

说明

  • 本项目仅用于学习交流,不得用于商业用途。
  • 暂时没有完全开放源码的计划(毕竟这些不是光明正大的)。
  • 本项目仅使用到 mid,不包含任何其它用户信息,可以放心使用。