Advertisement
MeaCulpa

binpaste.py

May 5th, 2011
528
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.08 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import sys
  5. from optparse import OptionParser
  6. from urllib import urlopen, urlencode
  7. from chardet import detect
  8.  
  9. utf8string = lambda str: unicode(str, detect(str)["encoding"]).encode("utf-8")
  10.  
  11. parser = OptionParser()
  12.  
  13. parser.add_option("-u", "--username", dest="username", default="")
  14. parser.add_option("-p", "--password", dest="password", default="")
  15. parser.add_option("-v", "--private", dest="private", default="0", help="default:0. Options: 0=public 1=private")
  16. parser.add_option("-n", "--name", dest="name", default="", help="name of your paste")
  17. parser.add_option("-o", "--option", dest="option", default="paste", help="Default: paste. Options: paste, list, delete, userdetails")
  18. parser.add_option("-f", "--format", dest="format", default="text", help="Default: text. Defines syntax highlight, see http://pastebin.com/api")
  19. parser.add_option("-e", "--expiry", dest="expiry", default="1D", help="default: 1 day. Options: N, 10M, 1H, 1D, 1M (Never, 10 Minutes, 1 Hour, 1 Day, 1 Month)")
  20. parser.add_option("-k", "--devkey", dest="devkey", default="3a5e36bc3da62d8f36034c164b4a5610", help="your api_developer_key")
  21.  
  22. (options, args) = parser.parse_args()
  23.  
  24. API_USER_KEY = "" # if invalid, paste will be posted as guest
  25. PASTEBIN_URL_POST = "http://pastebin.com/api/api_post.php"
  26. PASTEBIN_URL_LOGIN = "http://pastebin.com/api/api_login.php"
  27.  
  28. # Get user key
  29. login_data = {
  30.     "api_dev_key": options.devkey,
  31.     "api_user_name": options.username,
  32.     "api_user_password": options.password
  33. }
  34.  
  35. f = urlopen(PASTEBIN_URL_LOGIN, urlencode(login_data))
  36. API_USER_KEY = f.read()
  37. f.close()
  38.  
  39. # Post data from sys.stdin.read()
  40. paste_data = {
  41.     "api_option": options.option,
  42.     "api_user_key": API_USER_KEY,
  43.     "api_paste_private": options.private,
  44.     "api_paste_name": options.name,
  45.     "api_paste_expire_date": options.expiry,
  46.     "api_paste_format": options.format,
  47.     "api_dev_key": options.devkey,
  48.     "api_paste_code": utf8string(sys.stdin.read())
  49. }
  50.  
  51. f = urlopen(PASTEBIN_URL_POST, urlencode(paste_data))
  52. print f.read()
  53. f.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement