UNPKG

@wahaha216/koishi-plugin-jmcomic

Version:

下载JM本子,无需python。支持pdf、zip加密。

94 lines (93 loc) 3.43 kB
import crypto from "crypto"; import { IJMSearchResult, IJMUser } from "../types/JMClient"; import { JMPhotoAbstract } from "./JMPhotoAbstract"; import { JMAlbumAbstract } from "./JMAlbumAbstract"; export declare abstract class JMClientAbstract { protected root: string; constructor(root: string); setRoot(root: string): void; getRoot(): string; /** * JM登录 * @param username 用户名 * @param password 密码 * @returns JM用户信息 */ abstract login(username: string, password: string): Promise<IJMUser>; /** * JM搜索 * @param keyword 关键词 * @returns JM搜索结果 */ abstract search(keyword: string): Promise<IJMSearchResult>; /** * 根据本子ID获取本子信息 * @param id 本子ID * @returns JM本子信息 */ abstract getAlbumById(id: string): Promise<JMAlbumAbstract>; /** * 根据章节ID获取章节信息 * @param id 章节ID * @returns JM章节信息 */ abstract getPhotoById(id: string): Promise<JMPhotoAbstract>; /** * 根据本子信息下载 * @param album 本子 */ abstract downloadByAlbum(album: JMAlbumAbstract): Promise<void>; /** * 根据章节信息下载 * @param photo 章节 * @param type 类型,章节或是本子 * @param albumId 类型为本子时,对应的本子ID * @param single 类型为本子时,该本子是否是单章节 */ abstract downloadByPhoto(photo: JMPhotoAbstract, type: "photo" | "album", albumId: string, single: boolean): Promise<void>; /** * 本子 -> PDF * @param album 本子信息 * @param password 可选:密码 */ abstract albumToPdf(album: JMAlbumAbstract, password?: string): Promise<string | string[]>; /** * 本子 -> 压缩包 * @param album 章节信息 * @param password 可选:密码 * @param level 可选:压缩等级 */ abstract albumToZip(album: JMAlbumAbstract, password?: string, level?: number): Promise<string>; /** * 章节 -> PDF * @param photo 章节 * @param pdfName PDF路径 * @param type 类型,章节或是本子 * @param albumId 类型为本子时,对应的本子ID * @param single 类型为本子时,该本子是否是单章节 * @param password 可选:密码 */ abstract photoToPdf(photo: JMPhotoAbstract, pdfName: string, type: "photo" | "album", albumId: string, single: boolean, password?: string): Promise<string>; /** * 章节 -> ZIP * @param photo 章节信息 * @param zipName zip名称 * @param password 可选,压缩包密码 * @param level 可选,压缩等级 */ abstract photoToZip(photo: JMPhotoAbstract, zipName: string, password?: string, level?: number): Promise<string>; /** * 解密章节图片 * @param photo 章节 * @param type 类型,章节或是本子 * @param albumId 类型为本子时,对应的本子ID * @param single 类型为本子时,该本子是否是单章节 */ abstract decodeByPhoto(photo: JMPhotoAbstract, type: "photo" | "album", albumId: string, single: boolean): Promise<void>; /** * 使用MD5将字符串加密成十六进制 * @param key 要计算MD5的字符串 * @returns 十六进制MD5 */ md5Hex(key: string, inputEncoding?: crypto.Encoding): string; }