mirror of
https://github.com/lanyeeee/bilibili-video-downloader.git
synced 2026-06-02 14:10:07 +08:00
55 lines
1.8 KiB
Rust
55 lines
1.8 KiB
Rust
use bilibili_video_downloader_plugin_sdk::{
|
|
AfterPreparePayloadV1, BeforeVideoProcessPayloadV1, HookInputV1, HookOutputV1, HookPayloadV1,
|
|
HookPointV1, OnCompletedPayloadV1, PluginDescriptorV1, PluginFailurePolicy, PluginV1,
|
|
SDK_API_VERSION, export_plugin_v1, eyre, host,
|
|
};
|
|
|
|
#[derive(Default)]
|
|
struct MacroSmokePlugin;
|
|
|
|
impl PluginV1 for MacroSmokePlugin {
|
|
fn descriptor(&self) -> PluginDescriptorV1 {
|
|
PluginDescriptorV1 {
|
|
sdk_api_version: SDK_API_VERSION,
|
|
id: "macro-smoke".to_string(),
|
|
name: "Macro Smoke".to_string(),
|
|
version: env!("CARGO_PKG_VERSION").to_string(),
|
|
hooks: vec![HookPointV1::BeforeVideoProcess],
|
|
failure_policy: PluginFailurePolicy::FailOpen,
|
|
description: "Compile-time macro smoke test".to_string(),
|
|
}
|
|
}
|
|
|
|
fn on_hook(&mut self, input: HookInputV1) -> eyre::Result<HookOutputV1> {
|
|
let payload = match input.payload {
|
|
HookPayloadV1::BeforeVideoProcess(payload) => {
|
|
HookPayloadV1::BeforeVideoProcess(BeforeVideoProcessPayloadV1 {
|
|
progress: payload.progress,
|
|
})
|
|
}
|
|
HookPayloadV1::AfterPrepare(payload) => {
|
|
HookPayloadV1::AfterPrepare(AfterPreparePayloadV1 {
|
|
progress: payload.progress,
|
|
})
|
|
}
|
|
HookPayloadV1::OnCompleted(payload) => {
|
|
HookPayloadV1::OnCompleted(OnCompletedPayloadV1 {
|
|
progress: payload.progress,
|
|
})
|
|
}
|
|
};
|
|
|
|
Ok(HookOutputV1 { payload })
|
|
}
|
|
}
|
|
|
|
export_plugin_v1!(MacroSmokePlugin);
|
|
|
|
#[test]
|
|
fn macro_smoke_builds() {
|
|
assert_eq!(SDK_API_VERSION, 1);
|
|
|
|
let err = host::get_config().unwrap_err();
|
|
assert!(err.to_string().contains("host api 未注册"));
|
|
}
|