Exemple #1
0
def main():
    wf = Workflow()
    error = None
    try:
        # initialize client
        access_token = wf.get_password('pocket_access_token')
        pocket_instance = Pocket(config.CONSUMER_KEY, access_token)

        since = wf.cached_data('pocket_since', max_age=0) or 0
        links = wf.cached_data('pocket_list', max_age=0) or {}

        next_since = 0
        offset = 0
        while True:
            get = pocket_instance.get(
                detailType='complete',
                since=since,
                state='all',
                count=LINK_LIMIT,
                offset=offset
            )[0]

            data = get['list']
            next_since = get['since']

            if get['status'] != 1 or len(data) == 0:
                break

            links.update(data)
            offset += LINK_LIMIT

        # Delete obsolete entries
        for item_id in links.keys():
            if links[item_id]['status'] == '2':
                del links[item_id]

        wf.cache_data('pocket_since', next_since)
        wf.cache_data('pocket_list', links)
        tags = list(set([t for l in links.values() if 'tags' in l
                         for t in l['tags'].keys()]))
        wf.cache_data('pocket_tags', tags)

        # update fulltext search index
        for item_id in links.keys():
            url = links[item_id]['given_url']
            if not FullText.has_link(url):
                FullText.get_instance().add_page(url)
            time.sleep(.1)

    except (AuthException, URLError, PocketException, PasswordNotFound), e:
        error = type(e).__name__
        wf.cache_data('pocket_error', error)

        # delete token if authentication failed
        if error == 'AuthException':
            wf.delete_password('pocket_access_token')
def main():
    wf = Workflow()
    error = None
    try:
        # initialize client
        access_token = wf.get_password('pocket_access_token')
        pocket_instance = Pocket(config.CONSUMER_KEY, access_token)

        state = None
        since = wf.cached_data('pocket_since', max_age=0) or 0
        links = {}
        # fetch cached links if since is not 0
        if since > 0:
            links = wf.cached_data('pocket_list', max_age=0) or {}
            
            # Only use delta syncing if dict is not empty
            if links:
                state = 'all'

        next_since = 0
        offset = 0
        while True:
            get = pocket_instance.get(
                sort='newest',
                detailType='complete',
                since=since,
                state=state,
                count=LINK_LIMIT,
                offset=offset
            )[0]

            data = get['list']
            next_since = get['since']

            if get['status'] != 1 or len(data) == 0:
                break

            links = sync_data(links, data)
            offset += LINK_LIMIT

        wf.cache_data('pocket_since', next_since)
        wf.cache_data('pocket_list', links)

    except (AuthException, URLError, PocketException, PasswordNotFound), e:
        error = type(e).__name__
        wf.cache_data('pocket_error', error)

        # delete token if authentication failed
        if error == 'AuthException':
            wf.delete_password('pocket_access_token')
Exemple #3
0
def main():
    wf = Workflow()
    error = None
    try:
        # initialize client
        access_token = wf.get_password('pocket_access_token')
        pocket_instance = Pocket(config.CONSUMER_KEY, access_token)

        since = wf.cached_data('pocket_since', max_age=0) or 0
        links = wf.cached_data('pocket_list', max_age=0) or {}

        next_since = 0
        offset = 0
        while True:
            get = pocket_instance.get(
                detailType='complete',
                since=since,
                state='all',
                count=LINK_LIMIT,
                offset=offset
            )[0]

            data = get['list']
            next_since = get['since']

            if get['status'] != 1 or len(data) == 0:
                break

            links.update(data)
            offset += LINK_LIMIT

        # Delete obsolete entries
        for item_id in links.keys():
            if links[item_id]['status'] == '2':
                del links[item_id]

        wf.cache_data('pocket_since', next_since)
        wf.cache_data('pocket_list', links)
        tags = list(set([t for l in links.values() if 'tags' in l
                        for t in l['tags'].keys()]))
        wf.cache_data('pocket_tags', tags)

    except (AuthException, URLError, PocketException, PasswordNotFound), e:
        error = type(e).__name__
        wf.cache_data('pocket_error', error)

        # delete token if authentication failed
        if error == 'AuthException':
            wf.delete_password('pocket_access_token')
def main():
    wf = Workflow()
    error = None
    try:
        # initialize client
        access_token = wf.get_password('pocket_access_token')
        pocket_instance = Pocket(config.CONSUMER_KEY, access_token)

        since = wf.cached_data('pocket_since', max_age=0) or 0
        links = wf.cached_data('pocket_list', max_age=0) or {}

        next_since = 0
        offset = 0
        while True:
            get = pocket_instance.get(detailType='complete',
                                      since=since,
                                      state='all',
                                      count=LINK_LIMIT,
                                      offset=offset)[0]

            data = get['list']
            next_since = get['since']

            if get['status'] != 1 or len(data) == 0:
                break

            links.update(data)
            offset += LINK_LIMIT

        # Delete obsolete entries
        for item_id in links.keys():
            if links[item_id]['status'] == '2':
                del links[item_id]

        wf.cache_data('pocket_since', next_since)
        wf.cache_data('pocket_list', links)

    except (AuthException, URLError, PocketException, PasswordNotFound), e:
        error = type(e).__name__
        wf.cache_data('pocket_error', error)

        # delete token if authentication failed
        if error == 'AuthException':
            wf.delete_password('pocket_access_token')
            offset += LINK_LIMIT
            next_since = get['since']

            if get['status'] != 1 or get['list'] == []:
                break

            # Unpack and sort items
            for item in sorted(get['list'].values(), key=lambda x: int(x['item_id'])):
                if item['status'] == u'0':
                    item_list.append(item)
                else:
                    # Remove item
                    item_list[:] = [
                        d for d in item_list if d.get('item_id') != item['item_id']]

        if next_since > since:
            wf.cache_data('pocket_since', next_since)
            wf.cache_data('pocket_list', item_list)

    except AuthException:
        error = 'AuthException'
        wf.cache_data('pocket_list', error)
        wf.delete_password('pocket_access_token')

    except (URLError, PocketException, PasswordNotFound), e:
        error = type(e).__name__
        wf.cache_data('pocket_list', error)

    if error:
        wf.logger.error(error)
Exemple #6
0
    #Parse some arguments so we better understand what the user is here to do
    parser = argparse.ArgumentParser()
    parser.add_argument('--default-project', dest='default_project', nargs='?', default=None)
    parser.add_argument('--create-issue', dest='issue', nargs='?', default=None)
    parser.add_argument('--open-issue', dest='open_issue', nargs='?', default=None)
    parser.add_argument('--set', dest='set', nargs='?', default=None)
    parser.add_argument('--reset', dest='reset', nargs='?', default=None)
    parser.add_argument('query', nargs='?', default=None)

    ## Save the parsed arguments in the wf object for later access
    wf.pargs = parser.parse_args(wf.args)

    #Check if the user wants to initiate settings saving
    if wf.pargs.reset:
        wf.delete_password(u'yt_password')
        wf.reset()
        sys.exit()

    if wf.pargs.set:
        params = split_query_to_params(wf.pargs.set)
        if len(params) == 3:
            # if we have 3 params, means the user already chose a setting and filled it
            log.error('User wants to save something!! %s' % wf.pargs)
            if params[0] == 'yt_password':
                wf.save_password(u'yt_password', params[1])
            else:
                wf.store_data(params[0], params[1])
            print "Saved %s sucesfully!" % yt_title(params[0])
            sys.exit()
        if params[1] == '':