-#!/usr/bin/python
+#! /usr/bin/python3
-import httplib
+from argparse import ArgumentParser
import os
import sys
-import urllib
-from urlparse import urljoin
+from urllib.parse import urljoin
+
+import requests
+
paste_host = 'paste.ubuntu.com'
paste_path = ''
-def http_post_form_with_auth(host, path, form):
- form_data = urllib.urlencode(form).strip()
- connection = httplib.HTTPConnection(host)
- connection.request('POST', path, form_data, {
- 'Host': host,
- 'Content-type': 'application/x-www-form-urlencoded',
- 'Content-length': str(len(form_data)),
- })
- return connection.getresponse()
if __name__ == '__main__':
poster = os.environ.get("USER")
- syntax = 'text'
- if len(sys.argv) > 1:
- title = sys.argv[1]
- else:
- title = "The loser %s didn't even add a title" % poster
- form = (('poster', poster), ('title', title), ('syntax', syntax), ('content', sys.stdin.read()))
- response = http_post_form_with_auth(paste_host, paste_path, form)
- location = response.getheader('Location')
+
+ parser = ArgumentParser()
+ parser.add_argument("-f", "--format", default="text", help="format of paste")
+ parser.add_argument("title", default="The loser %s didn't even add a title" % poster, nargs="?")
+ args = parser.parse_args()
+
+ form = (('poster', poster), ('title', args.title), ('syntax', args.format), ('content', sys.stdin.read()))
+ response = requests.post('https://%s/%s' % (paste_host, paste_path.lstrip('/')), data=form, allow_redirects=False)
+ location = response.headers['Location']
if location:
- print urljoin('http://' + paste_host, location)
+ print(urljoin('https://' + paste_host, location))
else:
- print 'Unexpected response:\n%s' % response.getheaders()
+ print('Unexpected response:\n%s' % response.headers)