Example #1
0
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)
Example #2
0
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']
            ))
Example #3
0
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")