Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use v5.38;
- use feature 'class';
- use warnings qw( all -experimental );
- class WWW::Pastebin::Client 1.234 {
- use Carp;
- use HTTP::Tiny;
- field $dev_key :param;
- field $user_key :param = 0;
- field $API_PASTE_URL = "https://pastebin.com/api/api_post.php";
- field $API_LOGIN_URL = "https://pastebin.com/api/api_login.php";
- field $API_RAW_URL = "https://pastebin.com/api/api_raw.php";
- field $http = HTTP::Tiny->new();
- method set_user_key($key){ $user_key = $key }
- # returns the current user_key or
- # requests a new api_user_key (session) if there isn't one
- # this will invalidate the last key produced because
- # pastebin only allows one user key per user
- method get_user_key ($name, $pass) {
- if ($user_key){ return $user_key }
- # prepare the message to retrieve a user key
- my %params = (
- 'api_dev_key' => $dev_key,
- 'api_user_name' => $name,
- 'api_user_password' => $pass,
- );
- # make the request with url encoding
- return $http->post_form($API_LOGIN_URL, \%params);
- }
- method paste(%params){
- # croak if these required parameters are missing
- $user_key or croak "Missing or empty api_user_key parameter";
- $params{'api_paste_code'} or croak "Missing or empty 'api_paste_code' parameter";
- # add the needed keys
- $params{'api_dev_key'} = $dev_key;
- $params{'api_option'} = 'paste';
- # make the request with url encoding
- return $http->post_form($API_PASTE_URL, \%params);
- }
- method paste_anon(%params){
- # die if this required parameter is missing
- $params{'api_paste_code'} or croak "Missing or empty api_paste_code parameter";
- # remove any identifying keys if they are present
- delete $params{'api_user_key'};
- delete $params{'api_user_name'};
- delete $params{'api_user_password'};
- # add the needed keys from the Client object
- $params{'api_dev_key'} = $dev_key;
- $params{'api_option'} = 'paste';
- # make the request with url encoding
- return $http->post_form($API_PASTE_URL, \%params);
- }
- method list(%params){
- # croak if these required parameters are missing
- $params{'api_user_key'} or croak "Missing or empty api_user_key parameter";
- # set required parameters
- $params{api_dev_key} = $dev_key;
- $params{api_user_key} = $user_key;
- $params{api_option} = 'list';
- # make the request with url encoding
- return $http->post_form($API_PASTE_URL, \%params);
- }
- method del(%params){
- # croak if these required parameters are missing
- $user_key or croak "api_user_key is not set";
- $params{'api_paste_key'} or croak "Missing or empty api_paste_key parameter";
- # set required parameters
- $params{api_dev_key} = $dev_key;
- $params{api_user_key} = $user_key;
- $params{api_option} = 'delete';
- return $http->post_form($API_PASTE_URL, \%params);
- }
- method user_details(%params){
- # croak if these required parameters are missing
- $user_key or croak "api_user_key is not set";
- # set required parameters
- $params{api_dev_key} = $dev_key;
- $params{api_user_key} = $user_key;
- $params{api_option} = 'delete';
- return $http->post_form($API_PASTE_URL, \%params);
- }
- method get_raw_paste(%params){
- # croak if these required parameters are missing
- $user_key or croak "api_user_key is not set";
- $params{api_paste_key} or croak "Missing or empty api_paste_key parameter";
- # set required parameters
- $params{api_dev_key} = $dev_key;
- $params{api_user_key} = $user_key;
- $params{api_option} = 'show_paste';
- return $http->post_form($API_PASTE_URL, \%params);
- }
- method get_raw_public_paste($paste_key){
- return $http->get("https://pastebin.com/raw/$paste_key");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement