rustnao 0.2.1

A Rust implementation of a wrapper for the SauceNAO API.
Documentation

RustNAO

A Rust implementation of a wrapper for the SauceNAO API.

Build Status crates.io link

Installation

Add the following to your Cargo.toml file:

[dependencies]
rustnao = "0.2"

Then, add the following to your main.rs file:

extern crate rustnao;

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::new().api_key(api_key).db_mask([Handler::PIXIV, Handler::SANKAKU_CHANNEL].to_vec()).num_results(15).build();

	// Set the minimum similiarity 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.