8 个版本 (4 个稳定版)
1.0.3 | 2024年7月17日 |
---|---|
0.2.0 | 2024年7月9日 |
0.1.2 | 2024年7月5日 |
0.1.1 | 2024年7月4日 |
0.1.0 | 2024年7月4日 |
在 网络编程 中排名 1149
每月下载量 475 次
88KB
2.5K SLoC
示例
use dotenvy::dotenv;
use std::env;
use vndb_api::client::VndbApiClient;
use vndb_api::request::query::{QueryBuilder, VnQuery, VnField, VnFieldChoices, SortField};
#[tokio::main]
async fn main() {
dotenv().ok();
let api_key = env::var("API_KEY").expect("API_KEY must be set");
let api_client = VndbApiClient::new(&String::from(api_key));
// For more examples see the ["examples" directory]
// (https://github.com/demeil1/vndb-api/tree/main/examples)
// in the github repo
// search for visual novel by name with autocomplete options
let query = QueryBuilder::<VnQuery>::new()
.filters(&r#"["search", "=", "DDLC"]"#.to_string())
.fields(VnFieldChoices::from(vec![VnField::Title]))
.results(3)
.build();
match api_client.vn_search(&query).await {
Ok(response) => {
response.results.iter()
.for_each(|vn| {
println!("{}", vn.title.as_ref().unwrap());
});
}
Err(error) => {
eprintln!("{:#?}", error);
}
}
// prints the name and rating for the top 3 visual novels on the site
let query = QueryBuilder::<VnQuery>::new()
.fields(VnFieldChoices::all())
.sort(SortField::Rating)
.results(3)
.page(1)
.reverse()
.build();
match api_client.vn_search(&query).await {
Ok(response) => {
response.results.iter()
.for_each(|vn| {
println!("{}: {}", vn.title.as_ref().unwrap(), vn.rating.unwrap());
});
}
Err(error) => eprintln!("{:#?}", error),
}
// using complex filters
let filters = r#"
[ "and"
, [ "or"
, [ "olang", "!=", "en" ]
, [ "olang", "!=", "ja" ]
]
, [ "released", ">=", "2020-01-01" ]
]
"#.to_string();
let query = QueryBuilder::<VnQuery>::new()
.filters(&filters)
.results(10)
.page(1)
.build();
match api_client.vn_search(&query).await {
Ok(response) => {
println!("{:#?}", response);
}
Err(error) => { eprintln!("{:#?}", error); }
}
}
VNDB
此 crate 允许从 VNDB 网站 收集数据。VNDB(视觉小说数据库)存储了关于视觉小说、角色、制作者、标签等信息。
文档
此 crate 的全部内容基于新的 HTTPS 基础 API 文档,旨在简化您从网站收集数据的方式。有关此 crate 的更多文档和使用案例,可以在 GitHub 上的 "examples" 目录 或您使用的 crate 部分的相应模块中找到。
要求
此 crate 仅需要 VNDB API 密钥即可使用。要获取 API 密钥,请按照以下说明操作,或单击此 链接(如果您已有账户,则请点击)(API 密钥文档)。
获取 API 密钥
- 注册 VNDB 账户(或如果您已有账户,请登录)
- 打开 "我的资料" 标签并导航到 "应用" 部分
- 创建新令牌并按照说明使用(请参阅 "examples" 目录)
递归查询
字段:此部分允许您选择从网站获取特定主题(视觉小说、制作者等)信息的内容。遗憾的是,由于视觉小说、发布和角色查询的递归性质,递归字段选择已被限制。虽然此 crate 中的结构体确实允许进行此类递归字段查询,但递归选择字段非常不切实际,并且会导致 VNDB 由于大小过大而拒绝提供响应。这些限制仅适用于视觉小说、发布和角色查询。您仍然可以使用上述查询填充所有结构体字段。结构体中的递归部分(如视觉小说查询中的相关视觉小说)将仍然具有其名称和 ID,以便稍后进行搜索以获取更多信息。
依赖项
约 6-21MB
~274K SLoC