def handle_unauthorized_commands(factory, action): imgur = factory.build_api() req = None if action == 'upload': req = factory.build_request_upload_from_path(sys.argv[2]) res = imgur.retrieve(req) print(res['link']) else: if action == 'list-comments': thash = sys.argv[2] req = factory.build_request(('gallery', thash, 'comments')) if action == 'get-album': id = sys.argv[2] req = factory.build_request(('album', id)) if action == 'get-comment': (thash, cid) = sys.argv[2:4] req = factory.build_request(('gallery', thash, 'comments', cid)) if action == 'get-gallery': imgur = factory.build_api() id = sys.argv[2] req = factory.build_request(('gallery', id)) res = imgur.retrieve(req) print(res)
def handle_oauth_commands(factory, config, action): imgur = factory.build_api() if action == 'credits': req = factory.build_request(('credits',)) res = imgur.retrieve(req) print(res) if action == 'refresh': token = sys.argv[2] req = factory.build_request_oauth_refresh(token) try: res = imgur.retrieve_raw(req) except HTTPError as e: print("Error %d\n%s" % (e.code, e.read().decode('utf8'))) raise e print('Access Token: %s\nRefresh Token: %s\nExpires: %d seconds from now.' % ( res[1]['access_token'], res[1]['refresh_token'], res[1]['expires_in'] )) if action == 'authorize': if len(sys.argv) == 2: print("Visit this URL to get a PIN to authorize: " + factory.get_api_url() + "oauth2/authorize?client_id=" + config['client_id'] + "&response_type=pin") if len(sys.argv) == 3: pin = sys.argv[2] imgur = factory.build_api() req = factory.build_request_oauth_token_swap('pin', pin) try: res = imgur.retrieve_raw(req) except HTTPError as e: print("Error %d\n%s" % (e.code, e.read().decode('utf8'))) raise e print("Access Token: %s\nRefresh Token: %s\nExpires: %d seconds from now." % ( res[1]['access_token'], res[1]['refresh_token'], res[1]['expires_in'] ))
def handle_authorized_commands(factory, action): token = sys.argv[2] auth = factory.build_oauth(token, None) imgur = factory.build_api(auth) if action == 'upload-auth': path = sys.argv[3] req = factory.build_request_upload_from_path(path) if action == 'comment': thash = sys.argv[3] text = ' '.join(sys.argv[4:]) if len(text) > 140: print("Comment too long (trim by %d characters)." % (len(text) - 140)) sys.exit(1) req = factory.build_request(('gallery', thash, 'comment'), { 'comment': text }) if action == 'vote-gallery' or action == 'vote-comment': (tid, vote) = sys.argv[3:] target = None if action == 'vote-gallery': target = ('gallery', tid, 'vote', vote) else: target = ('comment', tid, 'vote', vote) req = factory.build_request(target) try: res = imgur.retrieve(req) if action == 'upload-auth': print(res['link']) else: if action == 'comment': print("Success! https://www.imgur.com/gallery/%s/comment/%s" % (thash, res['id'])) else: print(res) except expired: print("Expired access token")