├── LICENSE ├── README.md └── pastebin.py /LICENSE: -------------------------------------------------------------------------------- 1 | ISC License 2 | 3 | Copyright (c) 2024, acidvegas 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pastebin 2 | > python wrapper for the pastebin api 3 | 4 | ## API Documentation: 5 | * [Pastebin API](https://pastebin.com/doc_api) 6 | 7 | ## Example: 8 | ```python 9 | #!/usr/bin/env python 10 | import pastebin 11 | api_key = 'CHANGEME' 12 | api = pastebin.PasteBin(api_key) 13 | data = open(__file__).read() 14 | result = api.paste(data, guest=True, name='Example Script', format='Python', private='1', expire='10M') 15 | print('PasteBin URL: ' + result) 16 | ``` 17 | 18 | **Note**: A posix shell script example can be found [here](https://github.com/acidvegas/random/blob/master/pastebin) 19 | 20 | ___ 21 | 22 | ###### Mirrors for this repository: [acid.vegas](https://git.acid.vegas/pastebin) • [SuperNETs](https://git.supernets.org/acidvegas/pastebin) • [GitHub](https://github.com/acidvegas/pastebin) • [GitLab](https://gitlab.com/acidvegas/pastebin) • [Codeberg](https://codeberg.org/acidvegas/pastebin) -------------------------------------------------------------------------------- /pastebin.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # PasteBin API Class - Developed by acidvegas in Python (https://git.acid.vegas/pastebin) 3 | 4 | ''' 5 | API Documentation: https://pastebin.com/doc_api 6 | ''' 7 | 8 | import urllib.parse 9 | import urllib.request 10 | 11 | class PasteBin: 12 | def __init__(self, api_dev_key, api_user_key=None): 13 | self.api_dev_key = api_dev_key 14 | self.api_user_key = api_user_key 15 | 16 | def api_call(self, method, params): 17 | '''Make a call to the PasteBin API.''' 18 | response = urllib.request.urlopen('https://pastebin.com/api/' + method, urllib.parse.urlencode(params).encode('utf-8'), timeout=10) 19 | return response.read().decode() 20 | 21 | def create_user_key(self, username, password): 22 | '''Create a user key for the PasteBin API.''' 23 | params = {'api_dev_key':self.api_dev_key, 'api_user_name':username, 'api_user_password':password} 24 | return self.api_call('api_login.php', params) 25 | 26 | def paste(self, data, guest=False, name=None, format=None, private=None, expire=None): 27 | '''Create a paste on PasteBin.''' 28 | params = {'api_dev_key':self.api_dev_key, 'api_option':'paste', 'api_paste_code':data} 29 | if not guest : params['api_user_key'] = self.api_user_key 30 | if name : params['api_paste_name'] = name 31 | if format : params['api_paste_format'] = format 32 | if private : params['api_paste_private'] = private 33 | if expire : params['api_paste_expire_date'] = expire 34 | return self.api_call('api_post.php', params) 35 | 36 | def list_pastes(self, results_limit=None): 37 | '''List pastes created by the user.''' 38 | params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_option':'list'} 39 | if results_limit: 40 | params['api_results_limit'] = results_limit 41 | return self.api_call('api_post.php', params) 42 | 43 | def trending_pastes(self): 44 | '''List trending pastes.''' 45 | params = {'api_dev_key':self.api_dev_key, 'api_option':'trends'} 46 | return self.api_call('api_post.php', params) 47 | 48 | def delete_paste(self, paste_key): 49 | '''Delete a paste.''' 50 | params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_paste_key':paste_key, 'api_option':'delete'} 51 | return self.api_call('api_post.php', params) 52 | 53 | def user_info(self): 54 | '''Get information about the user.''' 55 | params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_option':'userdetails'} 56 | return self.api_call('api_post.php', params) 57 | 58 | def raw_pastes(self, paste_key): 59 | '''Get the raw data of a paste.''' 60 | params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_paste_key':paste_key, 'api_option':'show_paste'} 61 | return self.api_call('api_raw.php', params) --------------------------------------------------------------------------------