Beispiel #1
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("-c",
                        "--client-api-key",
                        help="your app's client api key",
                        action="store",
                        required=True)
    parser.add_argument("-t",
                        "--token",
                        help="your app's access token",
                        action="store",
                        required=True)
    parser.add_argument("-b",
                        "--board-id",
                        help="your trello board id",
                        action="store",
                        required=True)
    args = vars(parser.parse_args())

    log_format = '%(asctime)s - %(name)s - %(levelname)s %(message)s'
    logging.basicConfig(format=log_format, level=logging.WARN)

    trello = TrelloApi(args['client_api_key'])
    trello.set_token(args['token'])

    fields = 'fields=id,idMembers,idLabels,idList,shortUrl,dateLastActivity,\
name'

    cards = trello.boards.get_card(args['board_id'], fields=fields)
    cards = trello_add_card_creation_date(cards)
    cards.sort(key=lambda c: c['timeDelta'])
    lists = group_by_list(cards)
    lists = replace_id_by_label(lists, trello)

    members = trello.boards.get('{}/members'.format(args['board_id']))
    for member in members:
        board_members[member['id']] = member['fullName']

    last_week = Delorean() - timedelta(weeks=1)
    print("Since {} - {}".format(last_week.humanize(), last_week.date))

    action_filter = 'filter=createCard,deleteCard,updateCard:closed,\
addMemberToCard,removeMemberFromCard,updateCard:idList'

    actions = trello.boards.get(
        '{}/actions?limit=1000&filter={}&since={}'.format(
            args['board_id'], action_filter, last_week.date))
    # TODO add paging support if we go over 1000
    if len(actions) == 1000:
        logging.warn('the number of retried actions is over 1000, you may \
be missing other actions that occurred during the last week, \
please support paging')

    simple_actions = map(lambda a: transform_action(a), actions)
    describe_last_week_actions(simple_actions)
    print "---"
    for action in simple_actions:
        print action