Răsfoiți Sursa

add paste.fedoraproject.org paster

raylu 9 ani în urmă
părinte
comite
225839bf6a
1 a modificat fișierele cu 45 adăugiri și 0 ștergeri
  1. 45 0
      fpaste

+ 45 - 0
fpaste

@@ -0,0 +1,45 @@
+#!/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