Files
SaveAny-Bot/plugins/example_parser_basic.js

73 lines
2.5 KiB
JavaScript

// 这是一个最简示例解析器插件, 用于展示插件所需实现的基本功能
// 此插件将会模拟处理 YouTube 的视频链接
/**
* 插件元数据
* 版本号是 saveany-bot 本体支持的插件规范版本号, 必须提供
*/
const metadata = {
name: "Example Parser", // 插件名称
version: "1.0.0", // 插件版本号
description: "A parser for example links", // 插件描述
author: "Krau", // 插件作者
}
// 你可以使用 console.log 来在终端中使用 go 的 logger 打印信息
console.log("Parser loaded", "name", metadata.name);
/**
* canHandle 函数用于判断当前解析器能否解析给定的 URL
*/
const canHandle = function (url) {
// 这里我们简单地检查 URL 是否包含 "youtube.com/watch?v"
return url.includes("youtube.com/watch?v");
}
/**
* 解析 url 并返回一个 Item 对象, 类型定义在 pkg/parser.go 中
*/
const parse = function (url) {
var result = {
// 元信息
site: "YouTube",
url: url,
title: "测试 YouTube 视频",
author: "某视频作者",
description: "这是一个测试视频",
tags: ["test", "youtube"],
// 资源(可下载的文件)列表
resources: [
{
url: "https://example.com/video1.mp4", // 文件直链
filename: "somevideo.mp4", // 文件名
mime_type: "video/mp4", // 文件 MIME 类型, 可选
extension: "mp4", // 文件扩展名, 可选
size: 100 * 1024 * 1024, // 文件大小, 单位为字节, 未知可以设置为 0
hash: {}, // 文件哈希, 可选, 格式为 {"md5": "xxx", "sha256": "xxx"} 等
headers: {}, // 下载文件时所需的 HTTP 头部, 可选, 例如 {"User-Agent": "Mozilla/5.0"}
extra: {} // 额外信息, 可选, 可以包含任何自定义数据
},
{
url: "https://example.com/picture1.png",
filename: "picture1.png",
mime_type: "image/png",
extension: "png",
size: 1 * 1024 * 1024,
hash: {},
headers: {},
extra: {}
}
],
extra: {}
};
return result;
}
// 最后需要调用 registerParser 来注册这个解析器
registerParser({
metadata,
canHandle,
parse
});
// 更进一步的插件编写信息, 请查看 plugins/example_parser_danbooru.js