Updated mirrors, added docstrings
This commit is contained in:
parent
9b9b9d8841
commit
8b698c5ac9
10
README.md
10
README.md
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
## API Documentation:
|
## API Documentation:
|
||||||
* [Pastebin API](https://pastebin.com/doc_api)
|
* [Pastebin API](https://pastebin.com/doc_api)
|
||||||
* [Pastebin Scraping API](https://pastebin.com/doc_scraping_api)
|
|
||||||
|
|
||||||
## Example:
|
## Example:
|
||||||
```python
|
```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)
|
**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)
|
###### Mirrors
|
||||||
- [GitHub](https://github.com/acidvegas/pastebin)
|
[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)
|
||||||
- [GitLab](https://gitlab.com/acidvegas/pastebin)
|
|
||||||
|
287
pastebin.py
287
pastebin.py
@ -2,301 +2,29 @@
|
|||||||
# PasteBin API Class - Developed by acidvegas in Python (https://git.acid.vegas/pastebin)
|
# PasteBin API Class - Developed by acidvegas in Python (https://git.acid.vegas/pastebin)
|
||||||
|
|
||||||
'''
|
'''
|
||||||
API Documentation:
|
API Documentation: https://pastebin.com/doc_api
|
||||||
https://pastebin.com/doc_api
|
|
||||||
https://pastebin.com/doc_scraping_api
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
import urllib.request
|
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:
|
class PasteBin:
|
||||||
def __init__(self, api_dev_key, api_user_key=None):
|
def __init__(self, api_dev_key, api_user_key=None):
|
||||||
self.api_dev_key = api_dev_key
|
self.api_dev_key = api_dev_key
|
||||||
self.api_user_key = api_user_key
|
self.api_user_key = api_user_key
|
||||||
|
|
||||||
def api_call(self, method, params):
|
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)
|
response = urllib.request.urlopen('https://pastebin.com/api/' + method, urllib.parse.urlencode(params).encode('utf-8'), timeout=10)
|
||||||
return response.read().decode()
|
return response.read().decode()
|
||||||
|
|
||||||
def create_user_key(self, username, password):
|
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}
|
params = {'api_dev_key':self.api_dev_key, 'api_user_name':username, 'api_user_password':password}
|
||||||
return self.api_call('api_login.php', params)
|
return self.api_call('api_login.php', params)
|
||||||
|
|
||||||
def paste(self, data, guest=False, name=None, format=None, private=None, expire=None):
|
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}
|
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 not guest : params['api_user_key'] = self.api_user_key
|
||||||
if name : params['api_paste_name'] = name
|
if name : params['api_paste_name'] = name
|
||||||
@ -306,23 +34,28 @@ class PasteBin:
|
|||||||
return self.api_call('api_post.php', params)
|
return self.api_call('api_post.php', params)
|
||||||
|
|
||||||
def list_pastes(self, results_limit=None):
|
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'}
|
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
|
params['api_results_limit'] = results_limit
|
||||||
return self.api_call('api_post.php', params)
|
return self.api_call('api_post.php', params)
|
||||||
|
|
||||||
def trending_pastes(self):
|
def trending_pastes(self):
|
||||||
|
'''List trending pastes.'''
|
||||||
params = {'api_dev_key':self.api_dev_key, 'api_option':'trends'}
|
params = {'api_dev_key':self.api_dev_key, 'api_option':'trends'}
|
||||||
return self.api_call('api_post.php', params)
|
return self.api_call('api_post.php', params)
|
||||||
|
|
||||||
def delete_paste(self, paste_key):
|
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'}
|
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)
|
return self.api_call('api_post.php', params)
|
||||||
|
|
||||||
def user_info(self):
|
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'}
|
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)
|
return self.api_call('api_post.php', params)
|
||||||
|
|
||||||
def raw_pastes(self, paste_key):
|
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'}
|
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)
|
return self.api_call('api_raw.php', params)
|
Loading…
Reference in New Issue
Block a user