added an api_post method, and a get_api_user_key method for retrieving a session key which is required for listing user pastes.
This commit is contained in:
parent
da6c789a5c
commit
447dc1f003
1 changed files with 40 additions and 22 deletions
|
@ -3,14 +3,19 @@
|
||||||
# a ruby wrapper around all of the methods pastebin provides with its api
|
# a ruby wrapper around all of the methods pastebin provides with its api
|
||||||
# official docs from pastebin on their api can be found at https://pastebin.com/api
|
# official docs from pastebin on their api can be found at https://pastebin.com/api
|
||||||
require 'rest-client'
|
require 'rest-client'
|
||||||
module PasteBin
|
|
||||||
class PasteBinner
|
module Pastebin
|
||||||
|
class Pastebinner
|
||||||
|
attr_reader :api_user_key
|
||||||
|
|
||||||
# PasteBinner.new(api_dev_key)
|
# PasteBinner.new(api_dev_key)
|
||||||
def initialize(api_dev_key)
|
def initialize(api_dev_key, username, password)
|
||||||
@api_dev_key = api_dev_key
|
@api_dev_key = api_dev_key
|
||||||
|
@username = username
|
||||||
|
@password = password
|
||||||
@base_api_url = 'https://pastebin.com/api'
|
@base_api_url = 'https://pastebin.com/api'
|
||||||
@scraping_api_url = 'https://scrape.pastebin.com'
|
@scraping_api_url = 'https://scrape.pastebin.com'
|
||||||
|
@api_user_key = self.get_api_user_key
|
||||||
end
|
end
|
||||||
|
|
||||||
# this should be a hash of { endpoint_name: '/url_endpoint.php'}
|
# this should be a hash of { endpoint_name: '/url_endpoint.php'}
|
||||||
|
@ -36,21 +41,34 @@ module PasteBin
|
||||||
# api_paste_private - this makes a paste public, unlisted, or private, public = 0, unlisted = 1, private = 2
|
# api_paste_private - this makes a paste public, unlisted, or private, public = 0, unlisted = 1, private = 2
|
||||||
# api_paste_expire_date - this sets the expiration date of your paste, the values are explained further down the page
|
# api_paste_expire_date - this sets the expiration date of your paste, the values are explained further down the page
|
||||||
|
|
||||||
|
# example - params = { "api_dev_key": api_dev_key, "api_option": "paste", "api_paste_code": paste_data }
|
||||||
def create_paste(params)
|
def create_paste(params)
|
||||||
response = RestClient::Request.execute(
|
self.api_post(params)
|
||||||
method: :post,
|
|
||||||
url: @base_api_url + ENDPOINTS[:post],
|
|
||||||
payload: params )
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_api_user_key(username, password)
|
def get_api_user_key
|
||||||
# returns a user session key that can be used as the api_user_key param
|
# returns a user session key that can be used as the api_user_key param
|
||||||
@response ||= RestClient::Request.execute({
|
@response ||= RestClient::Request.execute({
|
||||||
method: :post,
|
method: :post,
|
||||||
url: @base_api_url + ENDPOINTS[:login],
|
url: @base_api_url + ENDPOINTS[:login],
|
||||||
payload: { 'api_dev_key': @api_dev_key,
|
payload: { 'api_dev_key': @api_dev_key,
|
||||||
'api_user_name': username,
|
'api_user_name': @username,
|
||||||
'api_user_password': password }})
|
'api_user_password': @password }})
|
||||||
|
end
|
||||||
|
|
||||||
|
def list_user_pastes
|
||||||
|
params = { 'api_dev_key': @api_dev_key,
|
||||||
|
'api_user_key': @api_user_key,
|
||||||
|
'api_results_limit': '100',
|
||||||
|
'api_option': 'list'}
|
||||||
|
self.api_post(params)
|
||||||
|
end
|
||||||
|
|
||||||
|
def api_post(params)
|
||||||
|
response = RestClient::Request.execute(
|
||||||
|
method: :post,
|
||||||
|
url: @base_api_url + ENDPOINTS[:post],
|
||||||
|
payload: params)
|
||||||
end
|
end
|
||||||
|
|
||||||
# params is optional for now. to query specific language ?lang=ruby as an example
|
# params is optional for now. to query specific language ?lang=ruby as an example
|
||||||
|
@ -75,22 +93,22 @@ end
|
||||||
|
|
||||||
######################## TESTING ####################################################
|
######################## TESTING ####################################################
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
#
|
|
||||||
# CREATE PASTE
|
#### INITIAL STEPS
|
||||||
#
|
|
||||||
# setup our api key
|
|
||||||
api_dev_key = ENV['pastebin_api_key']
|
|
||||||
|
|
||||||
# setup our object and grab a session key
|
# setup our object and grab a session key
|
||||||
pb = PasteBin::PasteBinner.new(api_dev_key)
|
pb = Pastebin::Pastebinner.new(ENV['pastebin_api_key'], ENV['pastebin_username'], ENV['pastebin_password'])
|
||||||
#api_user_key = pb.get_api_user_key(ENV['pastebin_username'], ENV['pastebin_password'])
|
|
||||||
|
|
||||||
# here is some paste content
|
#### CREATE PASTE
|
||||||
|
# prepare some sample paste data to send
|
||||||
paste_data = 'this is a test paste two two two.'
|
paste_data = 'this is a test paste two two two.'
|
||||||
# prepare our paste params
|
# prepare our paste params
|
||||||
#params = { "api_dev_key": api_dev_key, "api_option": "paste", "api_paste_code": paste_data }
|
|
||||||
params = { "api_dev_key": api_dev_key, "api_option": "paste", "api_paste_code": paste_data }
|
params = { "api_dev_key": api_dev_key, "api_option": "paste", "api_paste_code": paste_data }
|
||||||
|
#puts pb.execute_query(:create_paste, params)
|
||||||
|
|
||||||
#puts pb.create_paste(params)
|
#### SCRAPE PUBLIC PASTES
|
||||||
#public_pastes = pb.execute_query(pb.scrape_public_pastes)
|
#public_pastes = pb.execute_query(:scrape_public_pastes)
|
||||||
puts pb.execute_query(:create_paste, params)
|
#puts public_pastes
|
||||||
|
|
||||||
|
#### LIST USER PASTES
|
||||||
|
#puts pb.execute_query(:list_user_pastes)
|
||||||
|
|
Loading…
Add table
Reference in a new issue