9 releases
0.3.0-alpha.1 | Nov 9, 2019 |
---|---|
0.2.1 | Jun 30, 2019 |
0.1.4 | Jun 16, 2019 |
#172 in #api-wrapper
111 downloads per month
Used in 2 crates
310KB
776 lines
RustNAO
A Rust implementation of a wrapper for the SauceNAO API.
Installation
Add the following to your Cargo.toml
file:
[dependencies]
rustnao = "0.3.0-alpha.1"
Examples
Here's a simple example:
extern crate rustnao;
use rustnao::{HandlerBuilder, Sauce};
fn main() {
let api_key = "your_api_key";
let file = "https://i.imgur.com/W42kkKS.jpg";
// Specifying our key, testmode set to 0, only want to see Pixiv and Sankaku using a mask, nothing excluded, no one specific source, and 15 results at most
let handle = HandlerBuilder::default().api_key(api_key).db_mask([Handler::PIXIV, Handler::SANKAKU_CHANNEL].to_vec()).num_results(15).build();
// Set the minimum similarity to 45.
handle.set_min_similarity(45);
// Returns a vector of Sauce objects if successful
let result: Vec<Sauce> = handle.get_sauce(file, None, None).unwrap();
// Or perhaps you prefer a JSON output
let result_json: String = handle.get_sauce_as_pretty_json(file, None, None).unwrap();
// Or maybe you wish to only get 5 results with a min similarity of 50.0
let result_json_filtered: String = handle.get_sauce_as_pretty_json(file, Some(5), Some(50 as f64)).unwrap();
}
See more examples here. Or to see an actual project where it's used, you can look at this Discord bot that uses it.
Documentation
Further documentation can be found here. You can also see SauceNAO's API documentation here.
Development
Interested in helping? Found a problem/bug? Let me know!
Thanks/Credits
I was inspired by Sagiri, so a huge shoutout to that project. Furthermore, thanks to SauceNAO which provides this amazing functionality for free.
Also, credit to Pixiv user リン ☆ ユウ@1 日目 西れ 44b for this image I used frequently for examples and tests. I couldn't seem to find the image I used for local testing (SauceNAO failed me), if anyone knows let me know so I can credit them.
Dependencies
~3.5–8MB
~183K SLoC