Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.47 KB | None | 0 0
  1. pastebin/pastebin.py
  2.  
  3. #!/usr/bin/env python
  4. # PasteBin API Class
  5. # Developed by acidvegas in Python
  6. # https://github.com/acidvegas/pastebin
  7. # pastebin.py
  8.  
  9. '''
  10. API Documentation:
  11. * https://pastebin.com/api
  12. '''
  13.  
  14. import urllib.parse
  15. import urllib.request
  16.  
  17. # Values
  18. format_values = {
  19. '4cs' : '4CS',
  20. '6502acme' : '6502 ACME Cross Assembler',
  21. '6502kickass' : '6502 Kick Assembler',
  22. '6502tasm' : '6502 TASM/64TASS',
  23. 'abap' : 'ABAP',
  24. 'actionscript' : 'ActionScript',
  25. 'actionscript3' : 'ActionScript 3',
  26. 'ada' : 'Ada',
  27. 'aimms' : 'AIMMS',
  28. 'algol68' : 'ALGOL 68',
  29. 'apache' : 'Apache Log',
  30. 'applescript' : 'AppleScript',
  31. 'apt_sources' : 'APT Sources',
  32. 'arm' : 'ARM',
  33. 'asm' : 'ASM (NASM)',
  34. 'asp' : 'ASP',
  35. 'asymptote' : 'Asymptote',
  36. 'autoconf' : 'autoconf',
  37. 'autohotkey' : 'Autohotkey',
  38. 'autoit' : 'AutoIt',
  39. 'avisynth' : 'Avisynth',
  40. 'awk' : 'Awk',
  41. 'bascomavr' : 'BASCOM AVR',
  42. 'bash' : 'Bash',
  43. 'basic4gl' : 'Basic4GL',
  44. 'dos' : 'Batch',
  45. 'bibtex' : 'BibTeX',
  46. 'blitzbasic' : 'Blitz Basic',
  47. 'b3d' : 'Blitz3D',
  48. 'bmx' : 'BlitzMax',
  49. 'bnf' : 'BNF',
  50. 'boo' : 'BOO',
  51. 'bf' : 'BrainFuck',
  52. 'c' : 'C',
  53. 'c_winapi' : 'C (WinAPI)',
  54. 'c_mac' : 'C for Macs',
  55. 'cil' : 'C Intermediate Language',
  56. 'csharp' : 'C#',
  57. 'cpp' : 'C++',
  58. 'cpp-winapi' : 'C++ (WinAPI)',
  59. 'cpp-qt' : 'C++ (with Qt extensions)',
  60. 'c_loadrunner' : 'C: Loadrunner',
  61. 'caddcl' : 'CAD DCL',
  62. 'cadlisp' : 'CAD Lisp',
  63. 'ceylon' : 'Ceylon',
  64. 'cfdg' : 'CFDG',
  65. 'chaiscript' : 'ChaiScript',
  66. 'chapel' : 'Chapel',
  67. 'clojure' : 'Clojure',
  68. 'klonec' : 'Clone C',
  69. 'klonecpp' : 'Clone C++',
  70. 'cmake' : 'CMake',
  71. 'cobol' : 'COBOL',
  72. 'coffeescript' : 'CoffeeScript',
  73. 'cfm' : 'ColdFusion',
  74. 'css' : 'CSS',
  75. 'cuesheet' : 'Cuesheet',
  76. 'd' : 'D',
  77. 'dart' : 'Dart',
  78. 'dcl' : 'DCL',
  79. 'dcpu16' : 'DCPU-16',
  80. 'dcs' : 'DCS',
  81. 'delphi' : 'Delphi',
  82. 'oxygene' : 'Delphi Prism (Oxygene)',
  83. 'diff' : 'Diff',
  84. 'div' : 'DIV',
  85. 'dot' : 'DOT',
  86. 'e' : 'E',
  87. 'ezt' : 'Easytrieve',
  88. 'ecmascript' : 'ECMAScript',
  89. 'eiffel' : 'Eiffel',
  90. 'email' : 'Email',
  91. 'epc' : 'EPC',
  92. 'erlang' : 'Erlang',
  93. 'euphoria' : 'Euphoria',
  94. 'fsharp' : 'F#',
  95. 'falcon' : 'Falcon',
  96. 'filemaker' : 'Filemaker',
  97. 'fo' : 'FO Language',
  98. 'f1' : 'Formula One',
  99. 'fortran' : 'Fortran',
  100. 'freebasic' : 'FreeBasic',
  101. 'freeswitch' : 'FreeSWITCH',
  102. 'gambas' : 'GAMBAS',
  103. 'gml' : 'Game Maker',
  104. 'gdb' : 'GDB',
  105. 'genero' : 'Genero',
  106. 'genie' : 'Genie',
  107. 'gettext' : 'GetText',
  108. 'go' : 'Go',
  109. 'groovy' : 'Groovy',
  110. 'gwbasic' : 'GwBasic',
  111. 'haskell' : 'Haskell',
  112. 'haxe' : 'Haxe',
  113. 'hicest' : 'HicEst',
  114. 'hq9plus' : 'HQ9 Plus',
  115. 'html4strict' : 'HTML',
  116. 'html5' : 'HTML 5',
  117. 'icon' : 'Icon',
  118. 'idl' : 'IDL',
  119. 'ini' : 'INI file',
  120. 'inno' : 'Inno Script',
  121. 'intercal' : 'INTERCAL',
  122. 'io' : 'IO',
  123. 'ispfpanel' : 'ISPF Panel Definition',
  124. 'j' : 'J',
  125. 'java' : 'Java',
  126. 'java5' : 'Java 5',
  127. 'javascript' : 'JavaScript',
  128. 'jcl' : 'JCL',
  129. 'jquery' : 'jQuery',
  130. 'json' : 'JSON',
  131. 'julia' : 'Julia',
  132. 'kixtart' : 'KiXtart',
  133. 'kotlin' : 'Kotlin',
  134. 'latex' : 'Latex',
  135. 'ldif' : 'LDIF',
  136. 'lb' : 'Liberty BASIC',
  137. 'lsl2' : 'Linden Scripting',
  138. 'lisp' : 'Lisp',
  139. 'llvm' : 'LLVM',
  140. 'locobasic' : 'Loco Basic',
  141. 'logtalk' : 'Logtalk',
  142. 'lolcode' : 'LOL Code',
  143. 'lotusformulas' : 'Lotus Formulas',
  144. 'lotusscript' : 'Lotus Script',
  145. 'lscript' : 'LScript',
  146. 'lua' : 'Lua',
  147. 'm68k' : 'M68000 Assembler',
  148. 'magiksf' : 'MagikSF',
  149. 'make' : 'Make',
  150. 'mapbasic' : 'MapBasic',
  151. 'markdown' : 'Markdown',
  152. 'matlab' : 'MatLab',
  153. 'mirc' : 'mIRC',
  154. 'mmix' : 'MIX Assembler',
  155. 'modula2' : 'Modula 2',
  156. 'modula3' : 'Modula 3',
  157. '68000devpac' : 'Motorola 68000 HiSoft Dev',
  158. 'mpasm' : 'MPASM',
  159. 'mxml' : 'MXML',
  160. 'mysql' : 'MySQL',
  161. 'nagios' : 'Nagios',
  162. 'netrexx' : 'NetRexx',
  163. 'newlisp' : 'newLISP',
  164. 'nginx' : 'Nginx',
  165. 'nimrod' : 'Nimrod',
  166. 'text' : 'None',
  167. 'nsis' : 'NullSoft Installer',
  168. 'oberon2' : 'Oberon 2',
  169. 'objeck' : 'Objeck Programming Langua',
  170. 'objc' : 'Objective C',
  171. 'ocaml-brief' : 'OCalm Brief',
  172. 'ocaml' : 'OCaml',
  173. 'octave' : 'Octave',
  174. 'oorexx' : 'Open Object Rexx',
  175. 'pf' : 'OpenBSD PACKET FILTER',
  176. 'glsl' : 'OpenGL Shading',
  177. 'oobas' : 'Openoffice BASIC',
  178. 'oracle11' : 'Oracle 11',
  179. 'oracle8' : 'Oracle 8',
  180. 'oz' : 'Oz',
  181. 'parasail' : 'ParaSail',
  182. 'parigp' : 'PARI/GP',
  183. 'pascal' : 'Pascal',
  184. 'pawn' : 'Pawn',
  185. 'pcre' : 'PCRE',
  186. 'per' : 'Per',
  187. 'perl' : 'Perl',
  188. 'perl6' : 'Perl 6',
  189. 'php' : 'PHP',
  190. 'php-brief' : 'PHP Brief',
  191. 'pic16' : 'Pic 16',
  192. 'pike' : 'Pike',
  193. 'pixelbender' : 'Pixel Bender',
  194. 'pli' : 'PL/I',
  195. 'plsql' : 'PL/SQL',
  196. 'postgresql' : 'PostgreSQL',
  197. 'postscript' : 'PostScript',
  198. 'povray' : 'POV-Ray',
  199. 'powershell' : 'Power Shell',
  200. 'powerbuilder' : 'PowerBuilder',
  201. 'proftpd' : 'ProFTPd',
  202. 'progress' : 'Progress',
  203. 'prolog' : 'Prolog',
  204. 'properties' : 'Properties',
  205. 'providex' : 'ProvideX',
  206. 'puppet' : 'Puppet',
  207. 'purebasic' : 'PureBasic',
  208. 'pycon' : 'PyCon',
  209. 'python' : 'Python',
  210. 'pys60' : 'Python for S60',
  211. 'q' : 'q/kdb+',
  212. 'qbasic' : 'QBasic',
  213. 'qml' : 'QML',
  214. 'rsplus' : 'R',
  215. 'racket' : 'Racket',
  216. 'rails' : 'Rails',
  217. 'rbs' : 'RBScript',
  218. 'rebol' : 'REBOL',
  219. 'reg' : 'REG',
  220. 'rexx' : 'Rexx',
  221. 'robots' : 'Robots',
  222. 'rpmspec' : 'RPM Spec',
  223. 'ruby' : 'Ruby',
  224. 'gnuplot' : 'Ruby Gnuplot',
  225. 'rust' : 'Rust',
  226. 'sas' : 'SAS',
  227. 'scala' : 'Scala',
  228. 'scheme' : 'Scheme',
  229. 'scilab' : 'Scilab',
  230. 'scl' : 'SCL',
  231. 'sdlbasic' : 'SdlBasic',
  232. 'smalltalk' : 'Smalltalk',
  233. 'smarty' : 'Smarty',
  234. 'spark' : 'SPARK',
  235. 'sparql' : 'SPARQL',
  236. 'sqf' : 'SQF',
  237. 'sql' : 'SQL',
  238. 'standardml' : 'StandardML',
  239. 'stonescript' : 'StoneScript',
  240. 'sclang' : 'SuperCollider',
  241. 'swift' : 'Swift',
  242. 'systemverilog' : 'SystemVerilog',
  243. 'tsql' : 'T-SQL',
  244. 'tcl' : 'TCL',
  245. 'teraterm' : 'Tera Term',
  246. 'thinbasic' : 'thinBasic',
  247. 'typoscript' : 'TypoScript',
  248. 'unicon' : 'Unicon',
  249. 'uscript' : 'UnrealScript',
  250. 'upc' : 'UPC',
  251. 'urbi' : 'Urbi',
  252. 'vala' : 'Vala',
  253. 'vbnet' : 'VB.NET',
  254. 'vbscript' : 'VBScript',
  255. 'vedit' : 'Vedit',
  256. 'verilog' : 'VeriLog',
  257. 'vhdl' : 'VHDL',
  258. 'vim' : 'VIM',
  259. 'visualprolog' : 'Visual Pro Log',
  260. 'vb' : 'VisualBasic',
  261. 'visualfoxpro' : 'VisualFoxPro',
  262. 'whitespace' : 'WhiteSpace',
  263. 'whois' : 'WHOIS',
  264. 'winbatch' : 'Winbatch',
  265. 'xbasic' : 'XBasic',
  266. 'xml' : 'XML',
  267. 'xorg_conf' : 'Xorg Config',
  268. 'xpp' : 'XPP',
  269. 'yaml' : 'YAML',
  270. 'z80' : 'Z80 Assembler',
  271. 'zxbasic' : 'ZXBasic'
  272. }
  273.  
  274. expire_values = {
  275. 'N' : 'Never',
  276. '10M' : '10 Minutes',
  277. '1H' : '1 Hour',
  278. '1D' : '1 Day',
  279. '1W' : '1 Week',
  280. '2W' : '2 Weeks',
  281. '1M' : '1 Month'
  282. }
  283.  
  284. private_values = {
  285. '0' : 'Public',
  286. '1' : 'Unlisted',
  287. '2' : 'Private'
  288. }
  289.  
  290. class PasteBin:
  291. def __init__(self, api_dev_key, api_user_key=None, timeout=10):
  292. self.api_dev_key = api_dev_key
  293. self.api_user_key = api_user_key
  294. self.timeout = timeout
  295.  
  296. def api_call(self, method, params):
  297. response = urllib.request.urlopen('https://pastebin.com/api/' + method, urllib.parse.urlencode(params).encode('utf-8'), timeout=self.timeout)
  298. return response.read().decode()
  299.  
  300. def create_user_key(self, username, password):
  301. params = {'api_dev_key':self.api_dev_key, 'api_user_name':username, 'api_user_password':password}
  302. return self.api_call('api_login.php', params)
  303.  
  304. def paste(self, data, guest=False, name=None, format=None, private=None, expire=None):
  305. params = {'api_dev_key':self.api_dev_key, 'api_option':'paste', 'api_paste_code':data}
  306. if not guest : params['api_user_key'] = self.api_user_key
  307. if name : params['api_paste_name'] = name
  308. if format : params['api_paste_format'] = format
  309. if private : params['api_paste_private'] = private
  310. if expire : params['api_paste_expire_date'] = expire
  311. return self.api_call('api_post.php', params)
  312.  
  313. def list_pastes(self, results_limit=None):
  314. params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_option':'list'}
  315. if results_limit: # Default 50, Minimum 1, Maximum 1000
  316. params['api_results_limit'] = results_limit
  317. return self.api_call('api_post.php', params)
  318.  
  319. def trending_pastes(self):
  320. params = {'api_dev_key':self.api_dev_key, 'api_option':'trends'}
  321. return self.api_call('api_post.php', params)
  322.  
  323. def delete_paste(self, paste_key):
  324. params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_paste_key':paste_key, 'api_option':'delete'}
  325. return self.api_call('api_post.php', params)
  326.  
  327. def user_info(self):
  328. params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_option':'userdetails'}
  329. return self.api_call('api_post.php', params)
  330.  
  331. def raw_pastes(self, paste_key):
  332. params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_paste_key':paste_key, 'api_option':'show_paste'}
  333. return self.api_call('api_raw.php', params)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement