@wahaha216/koishi-plugin-jmcomic
Version:
下载JM本子,无需python。支持pdf、zip加密。
94 lines (93 loc) • 3.43 kB
TypeScript
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;
}