def client(self): if self._client: return self._client client = Client(TrelloUpdater.APP_KEY, self.token) data = client.fetchJson('/members/me') sys.stderr.write('token found to be valid for user %s\n' % data['username']) self._client = client return client
def test_token(self): self._client = Client(TrelloUpdater.APP_KEY, self.token) try: data = self._client.fetchJson('/members/me') sys.stderr.write('token found to be valid for user %s\n' % data['username']) except trolly.Unauthorised: self.client
def setUp(self): self.client = Client(api_key, user_auth_token) self.org = Organisation(self.client, organisation) self.board = Board(self.client, board_id) self.list = List(self.client, list_id) self.card = Card(self.client, card_id) self.checklist = Checklist(self.client, checklist_id) self.member = Member(self.client, member_id)
def create_user(self, user_auth_token): """ Initiates trello client for the user and also stores list of open boards for the user and stores locally as instance variable. """ self.trello_client = Client(self.api_key, user_auth_token) member = Member(self.trello_client, 'me') self.get_open_boards(member)
def __init__(self, trConfig): super(TrelloClient, self).__init__() self.trConfig = trConfig self.trClient = Client(self.trConfig['key'], self.trConfig['token']) self.org = Organisation(self.trClient, self.trConfig['orgid']) self.getBoards(self.trConfig['boards'].keys())
class TrelloUpdater(object): APP_KEY = '10533337e4b5778c1c356c39dd3c79e9' AUTH_URL = "https://trello.com/1/authorize?key=" + APP_KEY + "&name=trello-card-updater&response_type=token&scope=read,write" def __init__(self, filename=os.path.expanduser('~/.trelloupdate')): self.filename = filename self._board_id = None self._card_names_and_ids = [] self._client = None self._token = None def clear_cache(self): self.save_key('board_id', None) self.save_key('token', None) self.save_key('card_names_and_ids', []) sys.exit(0) # in memory caches don't match disc cache, so die to kill the memory cache def save_key(self, key, value): try: with open(self.filename, 'r') as f: data = json.load(f) except IOError: data = {} if key == 'card_names_and_ids': data[key] = [(card[0].encode('rot13'), card[1]) for card in value] else: data[key] = value try: with open(self.filename, 'w') as f: json.dump(data, f) except IOError: sys.stderr.write('Error saving data to %r\n' % self.filename) # to allow platforms that can't save, just disable this next line raise def load_key(self, key): try: with open(self.filename, 'r') as f: data = json.load(f) except IOError: data = {} if key == 'card_names_and_ids': # ROT13 encoded so names of cards don't get indexed return [(card[0].decode('rot13'), card[1]) for card in data.get(key, [])] else: return data.get(key, None) @property @cached_accessor @retry_on_bad_auth def board_id(self): board_id = self.ask_for_board_id() Board(self.client, board_id).getBoardInformation() # raises errors if bad board id return board_id def ask_for_board_id(self): """Factored out in case interface isn't keyboard""" board_id = raw_input("paste in board id or url: ").strip() m = re.search(r"(?:https?://)?(?:trello.com)?/?b?/?([a-zA-Z]{8})/(?:.*)", board_id) if m: board_id = m.group(1) return board_id @property @cached_accessor def token(self): webbrowser.open(TrelloUpdater.AUTH_URL) token = raw_input("paste in token: ").strip() return token @property @cached_accessor @retry_on_bad_auth def card_names_and_ids(self): """Returns [(name, id), ...] pairs of cards from current board""" b = Board(self.client, self.board_id) cards = b.getCards() card_names_and_ids = [(unidecode(c.name.decode('utf8')), c.id) for c in cards] return card_names_and_ids @property @retry_on_bad_auth def client(self): if self._client: return self._client client = Client(TrelloUpdater.APP_KEY, self.token) data = client.fetchJson('/members/me') sys.stderr.write('token found to be valid for user %s\n' % data['username']) self._client = client return client @property @cached_accessor('card_names_and_ids') def cached_card_names_and_ids(self): return [] @retry_on_bad_auth def add_comment_to_card(self, card_id, comment, move_to_bottom=False): c = Card(self.client, card_id) c.addComments(comment) sys.stderr.write('card comment added\n') if move_to_bottom: c.updateCard({'pos':'bottom'}) sys.stderr.write('card moved to bottom of list\n') def set_board(self): old_board_id = self._board_id or self.load_key('board_id') if old_board_id: sys.stderr.write('current board id: %s, https://trello.com/b/%s\n' % (old_board_id, old_board_id)) else: sys.stderr.write('no board currently selected\n') try: self._board_id = None self.save_key('board_id', None) self.save_key('card_names_and_ids', []) self.board_id except KeyboardInterrupt: self._board_id = old_board_id self.save_key('board_id', old_board_id) sys.stderr.write('\n') sys.exit(1) sys.stderr.write('board id set\n') def test_token(self): self._client = Client(TrelloUpdater.APP_KEY, self.token) try: data = self._client.fetchJson('/members/me') sys.stderr.write('token found to be valid for user %s\n' % data['username']) except trolly.Unauthorised: self.client def generate_token(self): self._client = None self._token = None self.save_key('token', None) self.client
class TrelloUpdater(object): APP_KEY = '10533337e4b5778c1c356c39dd3c79e9' AUTH_URL = "https://trello.com/1/authorize?key=" + APP_KEY + "&name=trello-card-updater&response_type=token&scope=read,write" def __init__(self, filename=os.path.expanduser('~/.trelloupdate')): self.filename = filename self._board_id = None self._card_names_and_ids = [] self._client = None self._token = None def clear_cache(self): self.save_key('board_id', None) self.save_key('token', None) self.save_key('card_names_and_ids', []) sys.exit( 0 ) # in memory caches don't match disc cache, so die to kill the memory cache def save_key(self, key, value): try: with open(self.filename, 'r') as f: data = json.load(f) except IOError: data = {} if key == 'card_names_and_ids': data[key] = [(card[0].encode('rot13'), card[1]) for card in value] else: data[key] = value try: with open(self.filename, 'w') as f: json.dump(data, f) except IOError: sys.stderr.write('Error saving data to %r\n' % self.filename) # to allow platforms that can't save, just disable this next line raise def load_key(self, key): try: with open(self.filename, 'r') as f: data = json.load(f) except IOError: data = {} if key == 'card_names_and_ids': # ROT13 encoded so names of cards don't get indexed return [(card[0].decode('rot13'), card[1]) for card in data.get(key, [])] else: return data.get(key, None) @property @cached_accessor @retry_on_bad_auth def board_id(self): board_id = self.ask_for_board_id() Board(self.client, board_id).getBoardInformation() # raises errors if bad board id return board_id def ask_for_board_id(self): """Factored out in case interface isn't keyboard""" board_id = raw_input("paste in board id or url: ").strip() m = re.search( r"(?:https?://)?(?:trello.com)?/?b?/?([a-zA-Z]{8})/(?:.*)", board_id) if m: board_id = m.group(1) return board_id @property @cached_accessor def token(self): webbrowser.open(TrelloUpdater.AUTH_URL) token = raw_input("paste in token: ").strip() return token @property @cached_accessor @retry_on_bad_auth def card_names_and_ids(self): """Returns [(name, id), ...] pairs of cards from current board""" b = Board(self.client, self.board_id) cards = b.getCards() card_names_and_ids = [(unidecode(c.name), c.id) for c in cards] return card_names_and_ids @property @retry_on_bad_auth def client(self): if self._client: return self._client client = Client(TrelloUpdater.APP_KEY, self.token) data = client.fetchJson('/members/me') sys.stderr.write('token found to be valid for user %s\n' % data['username']) self._client = client return client @property @cached_accessor('card_names_and_ids') def cached_card_names_and_ids(self): return [] @retry_on_bad_auth def add_comment_to_card(self, card_id, comment, move_to_bottom=False): c = Card(self.client, card_id) c.addComments(comment) sys.stderr.write('card comment added\n') if move_to_bottom: c.updateCard({'pos': 'bottom'}) sys.stderr.write('card moved to bottom of list\n') def set_board(self): old_board_id = self._board_id or self.load_key('board_id') if old_board_id: sys.stderr.write( 'current board id: %s, https://trello.com/b/%s\n' % (old_board_id, old_board_id)) else: sys.stderr.write('no board currently selected\n') try: self._board_id = None self.save_key('board_id', None) self.save_key('card_names_and_ids', []) self.board_id except KeyboardInterrupt: self._board_id = old_board_id self.save_key('board_id', old_board_id) sys.stderr.write('\n') sys.exit(1) sys.stderr.write('board id set\n') def test_token(self): self._client = Client(TrelloUpdater.APP_KEY, self.token) try: data = self._client.fetchJson('/members/me') sys.stderr.write('token found to be valid for user %s\n' % data['username']) except trolly.Unauthorised: self.client def generate_token(self): self._client = None self._token = None self.save_key('token', None) self.client
def __init__(self, apiKey, userAuthToken): Client.__init__(self, apiKey, userAuthToken)
configFile = open(options.config, "r").read() configSpecs = open("options.schema.json").read() specs = json.loads(configSpecs) config = json.loads(configFile) configstatus = validate_options(specs, config) except IOError as e: log(0, "error opening config file " +str(e)) exit(1) if not configstatus['status'] == "valid": log(0, "error, config not valid: " + str(configstatus)) defaultCardFields = config['fields'] lists = config['lists'] trello = Client(config['apikey'], config['token']) result = {} for list in lists: if 'cardFields' in list: cardFields = list['cardFields'] else: cardFields = defaultCardFields cardParams = {} listResult = {} myList = trello.get_list(list['id']) myListInfo = myList.get_list_information() listResult['id'] = list['id'] listResult['cards'] = []
def __init__(self, apiKey, userAuthToken): Client.__init__(self, apiKey, userAuthToken )
def __init__(self): #self.conn = TrelloConnection('3dd167f33e6de7d4f13fcd138346210c', 'ba57d7a637f46d664b8e30a0d8f50642c55c117dadf23cf7c699c51be5e36cbd') self.client = Client(api_key=os.getenv('TRELLO_APP_KEY'), user_auth_token=os.getenv('TRELLO_OAUTH_TOKEN')) self.board = Board(self.client, os.getenv('TRELLO_BOARD'))
def __init__(self): self.client = Client(api_key, user_auth_token) self.board = Board(self.client, board_id)