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')
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)
#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] == '':