Skip to content

rafmagana/prowly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

prowly

Yet another Ruby interface to Prowl with command line utility

Installation

gem install prowly

Usage as a Gem

Sending a notification via prowly gem

Prowly.notify do |n| # :notify is an alias of :add n.apikey = “apikey” or n.apikeys = [“apikey_1”, “apikey_2”, “apikey_n”] n.priority = Prowly::Notification::Priority::MODERATE n.application = “Prowly” n.event = “Notification” n.description = “Your server is under attack!!!” n.url = “www.myserver.com” end notification = Prowly::Notification.new(:apikey => “apikey”, :application => “Prowly”, :description => “Testing…”) notification = Prowly::Notification.new(:apikeys => [“apikey_1”, “apikey_2”, “apikey_n”], :application => “Prowly”, :description => “Testing…”) result = Prowly.notify(notification)

Obtaining a user’s API key with the prowly gem is a three step process:

  • provider gets a token with their provider key via the retrieve_token call

  • user approves the request at a special web URL (in their browser)

  • provider gets user’s API key with their provider key and the token via retrieve_apikey

This is somewhat similar to the OAuth scheme.

# obtain a token first with your provider key first
provider_key = "2b33d3f3f8522aaed4b2fc44382f1519791db6a2"
token_result = Prowly.retrieve_token(provider_key)
if token_result.succeeded?
  # if the call succeeded, the user will need to approve the request in their browser
  puts "go to this #{token_result.url} to approve this request"
  puts "then press <ENTER> to continue "
  dummy = STDIN.gets

  apikey_result = Prowly.retrieve_apikey(options[:provider], token_result.token)

  if apikey_result.succeeded?
    puts "The user apikey is #{apikey_result.apikey}"
  end
end

Usage in the command line

$prowly -h # help $prowly -k one_apikey -a “the application” -e “the event” -d “the description” -p NORMAL $prowly -k key_1,key_2,key_n -a “the application” -e “the event” Options: -k, –api-key APIKEY Prowl API Key -d, –description DESCRIPTION Description -e, –event EVENT Event -p, –priority PRIORITY VERY_LOW, MODERATE, NORMAL (default), HIGH, EMERGENCY -u, –url URL for redirect (v1.2 feature) -v, –version Print the version number and exit

If you only specify the apikey prowly will use the defaults:

:description => “I am testing Prowly, and it works!” :event => “Prowly notification” :application => “Prowly” :priority => NORMAL :url => nil

Handling the Prowl API response

ON SUCCESS result.status # => “success” result.code # => “200”

if result.succeeded? result.remaining # => “977” result.resetdate # => “1266272588” else result.message # => end ON ERROR result.status # => “error” result.code # => “401” <= This depends on the error code sent by the prowl API

if result.succeeded? result.remaining # => result.resetdate # => else result.message # => “Invalid API Key(s)” <= This depends on the message sent by the prowl API end

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

See LICENSE for details

About

Yet another Ruby interface to Prowl

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages