#!/usr/bin/python3 import sys import base64 import json import os import urllib.request as request import urllib.parse import urllib.error CLIENT_ID = 'c707e3d4b9311f2' def base64_image(path): with open(path, 'rb') as f: return base64.b64encode(f.read()) def imgur_upload(path): params = urllib.parse.urlencode({ 'image': base64_image(path) }) params = params.encode('utf8') req = request.Request('https://api.imgur.com/3/image', params) req.add_header('Authorization', 'Client-ID ' + CLIENT_ID) res = None try: res = request.urlopen(req) res = res.read() except urllib.error.HTTPError as ex: print(ex) if res: res = json.loads(str(res)[2:-1]) # strip b'' from the str() url = res['data']['link'].replace('\\', '') delete = res['data']['deletehash'] os.system('echo "' + url + '" | xclip -i') os.system('echo "' + delete + '\n" >> ~/.imgur_deletes') if __name__ == "__main__": print(imgur_upload(sys.argv[1]))