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
| |