9 releases

0.2.5 Sep 5, 2022
0.2.4 Sep 5, 2022
0.2.0 Aug 25, 2022
0.1.1 Aug 11, 2022
0.0.0 Aug 11, 2022

#1329 in Web programming

Download history 143/week @ 2024-02-26 14/week @ 2024-03-04 14/week @ 2024-03-11 9/week @ 2024-03-18 44/week @ 2024-04-01

70 downloads per month
Used in prowl-queue

MIT license

12KB
126 lines

Prowl Rust API

A library with some structure around the Prowl API. This is an alternative to things like PushBullet or PushOver, using a one time fee instead of subscription based model. Additional nicities are being able to set notification priorities and a generous default of 1,000 API calls per hour with the option to allow-list for more.

Example

After getting your Prowl API Key from https://www.prowlapp.com/. You can start sending notifications to devices you are logged into,

From examples/add.rs:

let ice_cube_reciepe = "".to_owned()
    + "Empty the ice cubes that are left in the trays (if there are any left) into the bin."
    + "Take the trays over to the sink and fill them with cold water. (Hot water will freeze faster and more clear)."
    + "Place the water filled ice trays back in the freezer."
    + "Replace the ice bin if you had to remove it."
    + "Shut the door to the freezer."
    + "Be sure to leave for around 4-6 hours at least to make sure it is frozen."
    + "If you want to experiment, you can freeze things like fruit infused waters or juices."
    + "\n\n"
    + "from https://www.food.com/recipe/ice-cubes-420398";

let notification_description = format!("The automated system has detected low ice cube count. Please order or make more! The reciepe is as follows:\n\n{ice_cube_reciepe}");

let notification = prowl::Notification::new(
    vec!["REPLACE-ME-WITH-YOUR-PROWL-API-KEY".to_string()],
    Some(prowl::Priority::VeryLow),
    Some("https://www.food.com/recipe/ice-cubes-420398".to_string()),
    "My Rust Sample".to_string(),
    "Low Ice Cubes".to_string(),
    notification_description,
)
.expect("Invalid notification");

notification
    .add()
    .await
    .expect("Failed to send notification");

Dependencies

~4–18MB
~251K SLoC