| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #!/usr/bin/env python
- import argparse
- import os.path
- import requests
- import sys
- parser = argparse.ArgumentParser(description='paste a file to paste.fedoraproject.org')
- parser.add_argument('filename', metavar='file', type=str, nargs='?',
- help='file to paste; if not specified, read from stdin')
- parser.add_argument('--language', '-l', dest='language',
- help='the language to use (default: Text if stdin, autodetect based on extension otherwise)')
- args = parser.parse_args()
- if args.filename is None:
- args.filename = ''
- f = sys.stdin
- if args.language is None:
- args.language = 'text'
- else:
- f = open(args.filename, 'r')
- args.filename = os.path.basename(args.filename)
- if args.language is None:
- r = requests.get('https://gist.github.com/detect_language',
- params={'filename': args.filename}, headers={'Accept': 'application/json'})
- language = r.json()['language']
- args.language = language.lower()
- content = f.read()
- data = {
- 'paste_data': content,
- 'paste_lang': args.language,
- 'paste_private': 'on',
- 'paste_expire': 2592000, # 30 days in seconds
- 'paste_submit': 'Paste',
- }
- url_base = 'https://paste.fedoraproject.org'
- r = requests.post(url_base + '/', data=data, allow_redirects=False)
- try:
- print url_base + r.headers['location']
- except:
- print r.headers
- print r.content
- raise
|