RustNAO

A Rust implementation of a wrapper for the SauceNAO API.

Build Status crates.io link Documentation

Installation

Add the following to your Cargo.toml file:

toml [dependencies] rustnao = "0.3.0-alpha.1"

Examples

Here's a simple example:

```rust extern crate rustnao; use rustnao::{HandlerBuilder, Sauce};

fn main() { let apikey = "yourapi_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().apikey(apikey).dbmask([Handler::PIXIV, Handler::SANKAKUCHANNEL].tovec()).numresults(15).build();

// Set the minimum similarity to 45. handle.setminsimilarity(45);

// Returns a vector of Sauce objects if successful let result: Vec = handle.get_sauce(file, None, None).unwrap();

// Or perhaps you prefer a JSON output let resultjson: String = handle.getsauceaspretty_json(file, None, None).unwrap();

// Or maybe you wish to only get 5 results with a min similarity of 50.0 let resultjsonfiltered: String = handle.getsauceasprettyjson(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.