pastebin

- python wrapper for the pastebin api
git clone git://git.acid.vegas/pastebin.git
Log | Files | Refs | Archive | README | LICENSE

commit 8b698c5ac905ecbb62366b1d7df78ad2d9336fcb
parent 9b9b9d88414c00046b65cf1e8686b496f6bddaa0
Author: acidvegas <acid.vegas@acid.vegas>
Date: Sat, 19 Aug 2023 21:42:38 -0400

Updated mirrors, added docstrings

Diffstat:
MREADME.md | 10++++------
Mpastebin.py | 287+++----------------------------------------------------------------------------

2 files changed, 14 insertions(+), 283 deletions(-)

diff --git a/README.md b/README.md
@@ -3,7 +3,6 @@
 
 ## API Documentation:
 * [Pastebin API](https://pastebin.com/doc_api)
-* [Pastebin Scraping API](https://pastebin.com/doc_scraping_api)
 
 ## Example:
 ```python
@@ -18,8 +17,7 @@ print('PasteBin URL: ' + result)
 
 **Note**: A posix shell script example can be found [here](https://github.com/acidvegas/random/blob/master/pastebin)
 
-## Mirrors
-- [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)
+___
+
+###### Mirrors
+[acid.vegas](https://git.acid.vegas/pastebin) • [GitHub](https://github.com/acidvegas/pastebin) • [GitLab](https://gitlab.com/acidvegas/pastebin) • [SuperNETs](https://git.supernets.org/acidvegas/pastebin)
diff --git a/pastebin.py b/pastebin.py
@@ -2,301 +2,29 @@
 # PasteBin API Class - Developed by acidvegas in Python (https://git.acid.vegas/pastebin)
 
 '''
-API Documentation:
-	https://pastebin.com/doc_api
-	https://pastebin.com/doc_scraping_api
+API Documentation: https://pastebin.com/doc_api
 '''
 
 import urllib.parse
 import urllib.request
 
-# Values
-format_values = {
-	'4cs'           : '4CS',
-	'6502acme'      : '6502 ACME Cross Assembler',
-	'6502kickass'   : '6502 Kick Assembler',
-	'6502tasm'      : '6502 TASM/64TASS',
-	'abap'          : 'ABAP',
-	'actionscript'  : 'ActionScript',
-	'actionscript3' : 'ActionScript 3',
-	'ada'           : 'Ada',
-	'aimms'         : 'AIMMS',
-	'algol68'       : 'ALGOL 68',
-	'apache'        : 'Apache Log',
-	'applescript'   : 'AppleScript',
-	'apt_sources'   : 'APT Sources',
-	'arm'           : 'ARM',
-	'asm'           : 'ASM (NASM)',
-	'asp'           : 'ASP',
-	'asymptote'     : 'Asymptote',
-	'autoconf'      : 'autoconf',
-	'autohotkey'    : 'Autohotkey',
-	'autoit'        : 'AutoIt',
-	'avisynth'      : 'Avisynth',
-	'awk'           : 'Awk',
-	'bascomavr'     : 'BASCOM AVR',
-	'bash'          : 'Bash',
-	'basic4gl'      : 'Basic4GL',
-	'dos'           : 'Batch',
-	'bibtex'        : 'BibTeX',
-	'blitzbasic'    : 'Blitz Basic',
-	'b3d'           : 'Blitz3D',
-	'bmx'           : 'BlitzMax',
-	'bnf'           : 'BNF',
-	'boo'           : 'BOO',
-	'bf'            : 'BrainFuck',
-	'c'             : 'C',
-	'c_winapi'      : 'C (WinAPI)',
-	'c_mac'         : 'C for Macs',
-	'cil'           : 'C Intermediate Language',
-	'csharp'        : 'C#',
-	'cpp'           : 'C++',
-	'cpp-winapi'    : 'C++ (WinAPI)',
-	'cpp-qt'        : 'C++ (with Qt extensions)',
-	'c_loadrunner'  : 'C: Loadrunner',
-	'caddcl'        : 'CAD DCL',
-	'cadlisp'       : 'CAD Lisp',
-	'ceylon'        : 'Ceylon',
-	'cfdg'          : 'CFDG',
-	'chaiscript'    : 'ChaiScript',
-	'chapel'        : 'Chapel',
-	'clojure'       : 'Clojure',
-	'klonec'        : 'Clone C',
-	'klonecpp'      : 'Clone C++',
-	'cmake'         : 'CMake',
-	'cobol'         : 'COBOL',
-	'coffeescript'  : 'CoffeeScript',
-	'cfm'           : 'ColdFusion',
-	'css'           : 'CSS',
-	'cuesheet'      : 'Cuesheet',
-	'd'             : 'D',
-	'dart'          : 'Dart',
-	'dcl'           : 'DCL',
-	'dcpu16'        : 'DCPU-16',
-	'dcs'           : 'DCS',
-	'delphi'        : 'Delphi',
-	'oxygene'       : 'Delphi Prism (Oxygene)',
-	'diff'          : 'Diff',
-	'div'           : 'DIV',
-	'dot'           : 'DOT',
-	'e'             : 'E',
-	'ezt'           : 'Easytrieve',
-	'ecmascript'    : 'ECMAScript',
-	'eiffel'        : 'Eiffel',
-	'email'         : 'Email',
-	'epc'           : 'EPC',
-	'erlang'        : 'Erlang',
-	'euphoria'      : 'Euphoria',
-	'fsharp'        : 'F#',
-	'falcon'        : 'Falcon',
-	'filemaker'     : 'Filemaker',
-	'fo'            : 'FO Language',
-	'f1'            : 'Formula One',
-	'fortran'       : 'Fortran',
-	'freebasic'     : 'FreeBasic',
-	'freeswitch'    : 'FreeSWITCH',
-	'gambas'        : 'GAMBAS',
-	'gml'           : 'Game Maker',
-	'gdb'           : 'GDB',
-	'genero'        : 'Genero',
-	'genie'         : 'Genie',
-	'gettext'       : 'GetText',
-	'go'            : 'Go',
-	'groovy'        : 'Groovy',
-	'gwbasic'       : 'GwBasic',
-	'haskell'       : 'Haskell',
-	'haxe'          : 'Haxe',
-	'hicest'        : 'HicEst',
-	'hq9plus'       : 'HQ9 Plus',
-	'html4strict'   : 'HTML',
-	'html5'         : 'HTML 5',
-	'icon'          : 'Icon',
-	'idl'           : 'IDL',
-	'ini'           : 'INI file',
-	'inno'          : 'Inno Script',
-	'intercal'      : 'INTERCAL',
-	'io'            : 'IO',
-	'ispfpanel'     : 'ISPF Panel Definition',
-	'j'             : 'J',
-	'java'          : 'Java',
-	'java5'         : 'Java 5',
-	'javascript'    : 'JavaScript',
-	'jcl'           : 'JCL',
-	'jquery'        : 'jQuery',
-	'json'          : 'JSON',
-	'julia'         : 'Julia',
-	'kixtart'       : 'KiXtart',
-	'kotlin'        : 'Kotlin',
-	'latex'         : 'Latex',
-	'ldif'          : 'LDIF',
-	'lb'            : 'Liberty BASIC',
-	'lsl2'          : 'Linden Scripting',
-	'lisp'          : 'Lisp',
-	'llvm'          : 'LLVM',
-	'locobasic'     : 'Loco Basic',
-	'logtalk'       : 'Logtalk',
-	'lolcode'       : 'LOL Code',
-	'lotusformulas' : 'Lotus Formulas',
-	'lotusscript'   : 'Lotus Script',
-	'lscript'       : 'LScript',
-	'lua'           : 'Lua',
-	'm68k'          : 'M68000 Assembler',
-	'magiksf'       : 'MagikSF',
-	'make'          : 'Make',
-	'mapbasic'      : 'MapBasic',
-	'markdown'      : 'Markdown',
-	'matlab'        : 'MatLab',
-	'mirc'          : 'mIRC',
-	'mmix'          : 'MIX Assembler',
-	'modula2'       : 'Modula 2',
-	'modula3'       : 'Modula 3',
-	'68000devpac'   : 'Motorola 68000 HiSoft Dev',
-	'mpasm'         : 'MPASM',
-	'mxml'          : 'MXML',
-	'mysql'         : 'MySQL',
-	'nagios'        : 'Nagios',
-	'netrexx'       : 'NetRexx',
-	'newlisp'       : 'newLISP',
-	'nginx'         : 'Nginx',
-	'nimrod'        : 'Nimrod',
-	'text'          : 'None',
-	'nsis'          : 'NullSoft Installer',
-	'oberon2'       : 'Oberon 2',
-	'objeck'        : 'Objeck Programming Langua',
-	'objc'          : 'Objective C',
-	'ocaml-brief'   : 'OCalm Brief',
-	'ocaml'         : 'OCaml',
-	'octave'        : 'Octave',
-	'oorexx'        : 'Open Object Rexx',
-	'pf'            : 'OpenBSD PACKET FILTER',
-	'glsl'          : 'OpenGL Shading',
-	'oobas'         : 'Openoffice BASIC',
-	'oracle11'      : 'Oracle 11',
-	'oracle8'       : 'Oracle 8',
-	'oz'            : 'Oz',
-	'parasail'      : 'ParaSail',
-	'parigp'        : 'PARI/GP',
-	'pascal'        : 'Pascal',
-	'pawn'          : 'Pawn',
-	'pcre'          : 'PCRE',
-	'per'           : 'Per',
-	'perl'          : 'Perl',
-	'perl6'         : 'Perl 6',
-	'php'           : 'PHP',
-	'php-brief'     : 'PHP Brief',
-	'pic16'         : 'Pic 16',
-	'pike'          : 'Pike',
-	'pixelbender'   : 'Pixel Bender',
-	'pli'           : 'PL/I',
-	'plsql'         : 'PL/SQL',
-	'postgresql'    : 'PostgreSQL',
-	'postscript'    : 'PostScript',
-	'povray'        : 'POV-Ray',
-	'powershell'    : 'Power Shell',
-	'powerbuilder'  : 'PowerBuilder',
-	'proftpd'       : 'ProFTPd',
-	'progress'      : 'Progress',
-	'prolog'        : 'Prolog',
-	'properties'    : 'Properties',
-	'providex'      : 'ProvideX',
-	'puppet'        : 'Puppet',
-	'purebasic'     : 'PureBasic',
-	'pycon'         : 'PyCon',
-	'python'        : 'Python',
-	'pys60'         : 'Python for S60',
-	'q'             : 'q/kdb+',
-	'qbasic'        : 'QBasic',
-	'qml'           : 'QML',
-	'rsplus'        : 'R',
-	'racket'        : 'Racket',
-	'rails'         : 'Rails',
-	'rbs'           : 'RBScript',
-	'rebol'         : 'REBOL',
-	'reg'           : 'REG',
-	'rexx'          : 'Rexx',
-	'robots'        : 'Robots',
-	'rpmspec'       : 'RPM Spec',
-	'ruby'          : 'Ruby',
-	'gnuplot'       : 'Ruby Gnuplot',
-	'rust'          : 'Rust',
-	'sas'           : 'SAS',
-	'scala'         : 'Scala',
-	'scheme'        : 'Scheme',
-	'scilab'        : 'Scilab',
-	'scl'           : 'SCL',
-	'sdlbasic'      : 'SdlBasic',
-	'smalltalk'     : 'Smalltalk',
-	'smarty'        : 'Smarty',
-	'spark'         : 'SPARK',
-	'sparql'        : 'SPARQL',
-	'sqf'           : 'SQF',
-	'sql'           : 'SQL',
-	'standardml'    : 'StandardML',
-	'stonescript'   : 'StoneScript',
-	'sclang'        : 'SuperCollider',
-	'swift'         : 'Swift',
-	'systemverilog' : 'SystemVerilog',
-	'tsql'          : 'T-SQL',
-	'tcl'           : 'TCL',
-	'teraterm'      : 'Tera Term',
-	'thinbasic'     : 'thinBasic',
-	'typoscript'    : 'TypoScript',
-	'unicon'        : 'Unicon',
-	'uscript'       : 'UnrealScript',
-	'upc'           : 'UPC',
-	'urbi'          : 'Urbi',
-	'vala'          : 'Vala',
-	'vbnet'         : 'VB.NET',
-	'vbscript'      : 'VBScript',
-	'vedit'         : 'Vedit',
-	'verilog'       : 'VeriLog',
-	'vhdl'          : 'VHDL',
-	'vim'           : 'VIM',
-	'visualprolog'  : 'Visual Pro Log',
-	'vb'            : 'VisualBasic',
-	'visualfoxpro'  : 'VisualFoxPro',
-	'whitespace'    : 'WhiteSpace',
-	'whois'         : 'WHOIS',
-	'winbatch'      : 'Winbatch',
-	'xbasic'        : 'XBasic',
-	'xml'           : 'XML',
-	'xorg_conf'     : 'Xorg Config',
-	'xpp'           : 'XPP',
-	'yaml'          : 'YAML',
-	'z80'           : 'Z80 Assembler',
-	'zxbasic'       : 'ZXBasic'
-}
-
-expire_values = {
-	'N'   : 'Never',
-	'10M' : '10 Minutes',
-	'1H'  : '1 Hour',
-	'1D'  : '1 Day',
-	'1W'  : '1 Week',
-	'2W'  : '2 Weeks',
-	'1M'  : '1 Month'
-}
-
-private_values = {
-	'0' : 'Public',
-    '1' : 'Unlisted',
-    '2' : 'Private'
-}
-
 class PasteBin:
 	def __init__(self, api_dev_key, api_user_key=None):
 		self.api_dev_key  = api_dev_key
 		self.api_user_key = api_user_key
 
 	def api_call(self, method, params):
+		'''Make a call to the PasteBin API.'''
 		response = urllib.request.urlopen('https://pastebin.com/api/' + method, urllib.parse.urlencode(params).encode('utf-8'), timeout=10)
 		return response.read().decode()
 
 	def create_user_key(self, username, password):
+		'''Create a user key for the PasteBin API.'''
 		params = {'api_dev_key':self.api_dev_key, 'api_user_name':username, 'api_user_password':password}
 		return self.api_call('api_login.php', params)
 
 	def paste(self, data, guest=False, name=None, format=None, private=None, expire=None):
+		'''Create a paste on PasteBin.'''
 		params = {'api_dev_key':self.api_dev_key, 'api_option':'paste', 'api_paste_code':data}
 		if not guest : params['api_user_key']          = self.api_user_key
 		if name      : params['api_paste_name']        = name
@@ -306,23 +34,28 @@ class PasteBin:
 		return self.api_call('api_post.php', params)
 
 	def list_pastes(self, results_limit=None):
+		'''List pastes created by the user.'''
 		params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_option':'list'}
-		if results_limit: # Default 50, Minimum 1, Maximum 1000
+		if results_limit:
 			params['api_results_limit'] = results_limit
 		return self.api_call('api_post.php', params)
 
 	def trending_pastes(self):
+		'''List trending pastes.'''
 		params = {'api_dev_key':self.api_dev_key, 'api_option':'trends'}
 		return self.api_call('api_post.php', params)
 
 	def delete_paste(self, paste_key):
+		'''Delete a paste.'''
 		params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_paste_key':paste_key, 'api_option':'delete'}
 		return self.api_call('api_post.php', params)
 
 	def user_info(self):
+		'''Get information about the user.'''
 		params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_option':'userdetails'}
 		return self.api_call('api_post.php', params)
 
 	def raw_pastes(self, paste_key):
+		'''Get the raw data of a paste.'''
 		params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_paste_key':paste_key, 'api_option':'show_paste'}
 		return self.api_call('api_raw.php', params)
 \ No newline at end of file