Crates.io | pi-hole-api |
lib.rs | pi-hole-api |
version | 0.3.3 |
source | src |
created_at | 2020-05-16 15:08:28.457013 |
updated_at | 2022-08-16 21:16:23.6483 |
description | Library for interacting with the Pi Hole PHP API |
homepage | |
repository | https://github.com/Scratchcat1/pi-hole-api |
max_upload_size | |
id | 242395 |
size | 90,605 |
Rust library for interacting with the Pi Hole PHP API.
use pi_hole_api::{PiHoleAPIConfig, UnauthenticatedPiHoleAPI};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let api = PiHoleAPIConfig::new("http://192.168.0.19".to_string());
let status = api.get_summary();
println!("{:?}", status);
Ok(())
}
use pi_hole_api::{AuthenticatedPiHoleAPI, PiHoleAPIConfigWithKey};
fn main() {
// Replace the address and key with those of your Pi Hole
let api = PiHoleAPIConfigWithKey::new(
"http://192.168.0.100".to_string(),
"0123456789abcedf0123456789abcedf0123456789abcedf0123456789abcedf".to_string(),
);
match api.get_queries_count() {
Ok(status) => println!("Total number of queries: {:?}", status),
Err(e) => panic!("Request failed, check your address and api key: {:?}", e),
};
}
The docker-compose file creates a Pi-Hole instance. You will need the API key of the instance to run the test. Store the key in the environment variable PI_HOLE_API_TEST_API_KEY
.
Environmental variables PI_HOLE_API_TEST_TARGET_HTTP_ADDRESS
and PI_HOLE_API_TEST_TARGET_DNS_ADDRESS
should contain the http address (e.g. http://localhost
) and the DNS IP:Port pair (e.g. 127.0.0.1:53
).
An envrc example with these variables is available in .envrc-example
.
Once the environmental variables are configured the tests can be run with cargo test
.