diff --git a/README.md b/README.md
@@ -1,11 +1,25 @@
-###### Requirements
-* [Python](https://www.python.org/downloads/) *(**Note:** This script was developed to be used with the latest version of Python.)*
+# pastebin
+> python wrapper for the pastebin api
-###### API Documentation:
-* [Pastebin API](https://pastebin.com/api)
+## API Documentation:
+* [Pastebin API](https://pastebin.com/doc_api)
+* [Pastebin Scraping API](https://pastebin.com/doc_scraping_api)
-###### Mirrors
-- [acid.vegas](https://acid.vegas/pastebin) *(main)*
+## Example:
+```python
+#!/usr/bin/env python
+import pastebin
+api_dev_key = 'CHANGEME'
+api = pastebin.PasteBin(api_dev_key)
+data = open(__file__).read()
+result = api.paste(data, guest=True, name='Example Script', format='Python', private='1', expire='10M')
+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)
diff --git a/pastebin.py b/pastebin.py
@@ -0,0 +1,329 @@
+#!/usr/bin/env python
+# 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
+'''
+
+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
+ self.timeout = timeout
+
+ def api_call(self, method, params):
+ 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):
+ 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):
+ 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
+ if format : params['api_paste_format'] = format
+ if private : params['api_paste_private'] = private
+ if expire : params['api_paste_expire_date'] = expire
+ return self.api_call('api_post.php', params)
+
+ def list_pastes(self, results_limit=None):
+ 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
+ params['api_results_limit'] = results_limit
+ return self.api_call('api_post.php', params)
+
+ def trending_pastes(self):
+ 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):
+ 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):
+ 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):
+ 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
diff --git a/pastebin/example.py b/pastebin/example.py
@@ -1,32 +0,0 @@
-#!/usr/bin/env python
-# PasteBin API Class - Developed by acidvegas in Python (https://acid.vegas/pastebin)
-
-import getpass
-
-import pastebin
-
-# API Settings
-api_dev_key = 'CHANGEME'
-api_user_key = None
-
-# Define API
-if api_user_key:
- api = pastebin.PasteBin(api_dev_key, api_user_key)
-else:
- api = pastebin.PasteBin(api_dev_key)
- username = input('[?] - Username: ')
- password = getpass.getpass('[?] - Password: ')
- api_user_key = api.create_user_key(username, password)
- if 'Bad API request' not in api_user_key:
- print('[+] - You API user key is: ' + api_user_key)
- api = pastebin.PasteBin(api_dev_key, api_user_key)
- else:
- raise SystemExit('[!] - Failed to create API user key! ({0})'.format(api_user_key.split(', ')[1]))
-
-# Create a Paste
-data = open(__file__).read()
-result = api.paste(data, guest=True, name='Example Script', format='Python', private='1', expire='10M')
-if 'Bad API request' not in result:
- print('[+] - PasteBin URL: ' + result)
-else:
- raise SystemExit('[!] - Failed to create paste! ({0})'.format(api_user_key.split(', ')[1]))
-\ No newline at end of file
diff --git a/pastebin/pastebin.py b/pastebin/pastebin.py
@@ -1,328 +0,0 @@
-#!/usr/bin/env python
-# PasteBin API Class - Developed by acidvegas in Python (https://acid.vegas/pastebin)
-
-'''
-API Documentation:
- https://pastebin.com/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, timeout=10):
- self.api_dev_key = api_dev_key
- self.api_user_key = api_user_key
- self.timeout = timeout
-
- def api_call(self, method, params):
- response = urllib.request.urlopen('https://pastebin.com/api/' + method, urllib.parse.urlencode(params).encode('utf-8'), timeout=self.timeout)
- return response.read().decode()
-
- def create_user_key(self, username, 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)
-
- def paste(self, data, guest=False, name=None, format=None, private=None, expire=None):
- 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
- if format : params['api_paste_format'] = format
- if private : params['api_paste_private'] = private
- if expire : params['api_paste_expire_date'] = expire
- return self.api_call('api_post.php', params)
-
- def list_pastes(self, results_limit=None):
- 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
- params['api_results_limit'] = results_limit
- return self.api_call('api_post.php', params)
-
- def trending_pastes(self):
- 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):
- 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):
- 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):
- 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
| | | |