diff --git a/trello-stats.py b/trello-stats.py index 9c49ebc..5b20c24 100755 --- a/trello-stats.py +++ b/trello-stats.py @@ -45,7 +45,7 @@ def search_cards(session, org_id, days, author): query = TRELLO_SEARCH_QUERY.format(days, author) - card_request = session.get("https://api.trello.com/1/search", params={'query': query, 'idOrganizations': org_id, 'card_fields': 'name,idMembers,idLabels', 'board_fields': 'name,idOrganization', 'card_board': 'true', 'cards_limit': 1000}) + card_request = session.get("https://api.trello.com/1/search", params={'query': query, 'idOrganizations': org_id, 'card_fields': 'name,idMembers,idLabels,shortLink', 'board_fields': 'name,idOrganization', 'card_board': 'true', 'cards_limit': 1000}) card_request.raise_for_status() return card_request.json() @@ -59,9 +59,6 @@ def get_member(session, member_id): return memberCache.get(member_id) -# member_request = session.get("https://api.trello.com/1/members/{0}".format(member_id)) -# member_request.raise_for_status() -# return member_request.json() def plural_items(text, obj): if obj is not None and (isinstance(obj, collections.Iterable) and len(obj) == 1) or obj == 1: @@ -83,6 +80,12 @@ def encode_text(text): return text +def preload_member_cache(session, org_id): + members = session.get("https://api.trello.com/1/organizations/{0}/members".format(org_id)) + members.raise_for_status() + for member in members.json(): + memberCache[member['id']]=member + trello_api_key = os.environ.get(TRELLO_API_KEY_NAME) trello_api_token = os.environ.get(TRELLO_API_TOKEN_NAME) @@ -122,6 +125,8 @@ def encode_text(text): cards = {} members_items = {} +preload_member_cache(session, org_id) + for card in resp_cards['cards']: if not card['board']['idOrganization'] or card['board']['idOrganization'] != org_id: