├── .gitignore ├── LICENSE ├── README.md ├── aaiotrello ├── __init__.py ├── actions.py ├── boards.py ├── cards.py ├── checklists.py ├── lists.py ├── members.py ├── notifications.py ├── organizations.py ├── tokens.py ├── types.py ├── utils.py └── webhooks.py ├── requirements.txt └── setup.py /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | .history 3 | dist/ 4 | aaiotrello.egg-info 5 | .pypirc 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 DeveloperEva 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## English 2 | 3 | # aaiotrello 4 | Async Trello API Client 5 | 6 | Python 3.7+ 7 | 8 | ## Install 9 | 10 | ```bash 11 | pip install aaiotrello 12 | ``` 13 | 14 | ## Auth 15 | 16 | #### TRELLO_APP_KEY: https://trello.com/app-key/ 17 | #### TRELLO_APP_TOKEN: 18 | 19 | First you need gen auth url: 20 | ```python 21 | from aaiotrello import TrelloApi 22 | 23 | trello = TrelloApi(config.TRELLO_KEY) 24 | trello.set_token(config.TRELLO_TOKEN) 25 | ``` 26 | Than you need copy value of token_url and auth your trello account in webbrowser 27 | After that you will get token 28 | 29 | #### Apply token in your app: 30 | ```python 31 | trello_app.set_token(TRELLO_APP_TOKEN) 32 | ``` 33 | 34 | #### Sample usage 35 | 36 | Get board info: 37 | ```python 38 | board = await trello_app.boards.get("5c49c07e48557d4e29414936") 39 | ``` 40 | -------------------------------------------------------------------------------- /aaiotrello/__init__.py: -------------------------------------------------------------------------------- 1 | try: 2 | from urllib import quote_plus # Python 2.X 3 | except ImportError: 4 | from urllib.parse import quote_plus # Python 3+ 5 | from .actions import Actions 6 | from .boards import Boards 7 | from .cards import Cards 8 | from .checklists import Checklists 9 | from .lists import Lists 10 | from .members import Members 11 | from .notifications import Notifications 12 | from .organizations import Organizations 13 | from .tokens import Tokens 14 | from .types import Types 15 | from .webhooks import Webhooks 16 | 17 | 18 | class TrelloApi(object): 19 | def __init__(self, apikey, token=None): 20 | self._apikey = apikey 21 | self._token = token 22 | self.actions = Actions(apikey, token) 23 | self.boards = Boards(apikey, token) 24 | self.cards = Cards(apikey, token) 25 | self.checklists = Checklists(apikey, token) 26 | self.lists = Lists(apikey, token) 27 | self.members = Members(apikey, token) 28 | self.notifications = Notifications(apikey, token) 29 | self.organizations = Organizations(apikey, token) 30 | self.tokens = Tokens(apikey, token) 31 | self.types = Types(apikey, token) 32 | self.webhooks = Webhooks(apikey, token) 33 | 34 | def set_token(self, token): 35 | self._token = token 36 | self.actions._token = token 37 | self.boards._token = token 38 | self.cards._token = token 39 | self.checklists._token = token 40 | self.lists._token = token 41 | self.members._token = token 42 | self.notifications._token = token 43 | self.organizations._token = token 44 | self.tokens._token = token 45 | self.types._token = token 46 | self.webhooks._token = token 47 | 48 | def get_token_url(self, app_name, expires='never', write_access=True): 49 | return 'https://trello.com/1/authorize?key=%s&name=%s&expiration=%s&response_type=token&scope=%s' % (self._apikey, quote_plus(app_name), expires, 'read,write' if write_access else 'read') 50 | -------------------------------------------------------------------------------- /aaiotrello/actions.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Actions(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, action_id, fields=None, member=None, member_fields=None, memberCreator=None, memberCreator_fields=None): 13 | resp = await request.get("https://api.trello.com/1/actions/%s" % (action_id), params=dict(key=self._apikey, token=self._token, fields=fields, member=member, member_fields=member_fields, memberCreator=memberCreator, memberCreator_fields=memberCreator_fields), data=None) 14 | return resp 15 | 16 | async def get_field(self, field, action_id): 17 | resp = await request.get("https://api.trello.com/1/actions/%s/%s" % (action_id, field), params=dict(key=self._apikey, token=self._token), data=None) 18 | return resp 19 | 20 | async def get_board(self, action_id, fields=None): 21 | resp = await request.get("https://api.trello.com/1/actions/%s/board" % (action_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 22 | return resp 23 | 24 | async def get_board_field(self, field, action_id): 25 | resp = await request.get("https://api.trello.com/1/actions/%s/board/%s" % (action_id, field), params=dict(key=self._apikey, token=self._token), data=None) 26 | return resp 27 | 28 | async def get_card(self, action_id, fields=None): 29 | resp = await request.get("https://api.trello.com/1/actions/%s/card" % (action_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 30 | return resp 31 | 32 | async def get_card_field(self, field, action_id): 33 | resp = await request.get("https://api.trello.com/1/actions/%s/card/%s" % (action_id, field), params=dict(key=self._apikey, token=self._token), data=None) 34 | return resp 35 | 36 | async def get_list(self, action_id, fields=None): 37 | resp = await request.get("https://api.trello.com/1/actions/%s/list" % (action_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 38 | return resp 39 | 40 | async def get_list_field(self, field, action_id): 41 | resp = await request.get("https://api.trello.com/1/actions/%s/list/%s" % (action_id, field), params=dict(key=self._apikey, token=self._token), data=None) 42 | return resp 43 | 44 | async def get_member(self, action_id, fields=None): 45 | resp = await request.get("https://api.trello.com/1/actions/%s/member" % (action_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 46 | return resp 47 | 48 | async def get_member_field(self, field, action_id): 49 | resp = await request.get("https://api.trello.com/1/actions/%s/member/%s" % (action_id, field), params=dict(key=self._apikey, token=self._token), data=None) 50 | return resp 51 | 52 | async def get_memberCreator(self, action_id, fields=None): 53 | resp = await request.get("https://api.trello.com/1/actions/%s/memberCreator" % (action_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 54 | return resp 55 | 56 | async def get_memberCreator_field(self, field, action_id): 57 | resp = await request.get("https://api.trello.com/1/actions/%s/memberCreator/%s" % (action_id, field), params=dict(key=self._apikey, token=self._token), data=None) 58 | return resp 59 | 60 | async def get_organization(self, action_id, fields=None): 61 | resp = await request.get("https://api.trello.com/1/actions/%s/organization" % (action_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 62 | return resp 63 | 64 | async def get_organization_field(self, field, action_id): 65 | resp = await request.get("https://api.trello.com/1/actions/%s/organization/%s" % (action_id, field), params=dict(key=self._apikey, token=self._token), data=None) 66 | return resp 67 | 68 | 69 | -------------------------------------------------------------------------------- /aaiotrello/boards.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Boards(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, board_id, actions=None, action_fields=None, action_limit=None, cards=None, card_fields=None, lists=None, list_fields=None, members=None, member_fields=None, membersInvited=None, membersInvited_fields=None, checklists=None, checklist_fields=None, organization=None, organization_fields=None, myPrefs=None, fields=None): 13 | resp = await request.get("https://api.trello.com/1/boards/%s" % (board_id), params=dict(key=self._apikey, token=self._token, actions=actions, action_fields=action_fields, action_limit=action_limit, cards=cards, card_fields=card_fields, lists=lists, list_fields=list_fields, members=members, member_fields=member_fields, membersInvited=membersInvited, membersInvited_fields=membersInvited_fields, checklists=checklists, checklist_fields=checklist_fields, organization=organization, organization_fields=organization_fields, myPrefs=myPrefs, fields=fields), data=None) 14 | return resp 15 | 16 | async def get_field(self, field, board_id): 17 | resp = await request.get("https://api.trello.com/1/boards/%s/%s" % (board_id, field), params=dict(key=self._apikey, token=self._token), data=None) 18 | return resp 19 | 20 | async def get_action(self, board_id, filter=None, fields=None, limit=None, page=None, idModels=None): 21 | resp = await request.get("https://api.trello.com/1/boards/%s/actions" % (board_id), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields, limit=limit, page=page, idModels=idModels), data=None) 22 | return resp 23 | 24 | async def get_card(self, board_id, actions=None, attachments=None, members=None, checkItemStates=None, checklists=None, filter=None, fields=None): 25 | resp = await request.get("https://api.trello.com/1/boards/%s/cards" % (board_id), params=dict(key=self._apikey, token=self._token, actions=actions, attachments=attachments, members=members, checkItemStates=checkItemStates, checklists=checklists, filter=filter, fields=fields), data=None) 26 | return resp 27 | 28 | async def get_card_filter(self, filter, board_id): 29 | resp = await request.get("https://api.trello.com/1/boards/%s/cards/%s" % (board_id, filter), params=dict(key=self._apikey, token=self._token), data=None) 30 | return resp 31 | 32 | async def get_card_idCard(self, idCard, board_id, actions=None, action_fields=None, action_limit=None, members=None, member_fields=None, checkItemStates=None, checkItemState_fields=None, labels=None, checklists=None, checklist_fields=None, fields=None): 33 | resp = await request.get("https://api.trello.com/1/boards/%s/cards/%s" % (board_id, idCard), params=dict(key=self._apikey, token=self._token, actions=actions, action_fields=action_fields, action_limit=action_limit, members=members, member_fields=member_fields, checkItemStates=checkItemStates, checkItemState_fields=checkItemState_fields, labels=labels, checklists=checklists, checklist_fields=checklist_fields, fields=fields), data=None) 34 | return resp 35 | 36 | async def get_checklist(self, board_id, cards=None, card_fields=None, checkItems=None, checkItem_fields=None, filter=None, fields=None): 37 | resp = await request.get("https://api.trello.com/1/boards/%s/checklists" % (board_id), params=dict(key=self._apikey, token=self._token, cards=cards, card_fields=card_fields, checkItems=checkItems, checkItem_fields=checkItem_fields, filter=filter, fields=fields), data=None) 38 | return resp 39 | 40 | async def get_list(self, board_id, cards=None, card_fields=None, filter=None, fields=None): 41 | resp = await request.get("https://api.trello.com/1/boards/%s/lists" % (board_id), params=dict(key=self._apikey, token=self._token, cards=cards, card_fields=card_fields, filter=filter, fields=fields), data=None) 42 | return resp 43 | 44 | async def get_list_filter(self, filter, board_id): 45 | resp = await request.get("https://api.trello.com/1/boards/%s/lists/%s" % (board_id, filter), params=dict(key=self._apikey, token=self._token), data=None) 46 | return resp 47 | 48 | async def get_member(self, board_id, filter=None, fields=None): 49 | resp = await request.get("https://api.trello.com/1/boards/%s/members" % (board_id), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields), data=None) 50 | return resp 51 | 52 | async def get_member_filter(self, filter, board_id): 53 | resp = await request.get("https://api.trello.com/1/boards/%s/members/%s" % (board_id, filter), params=dict(key=self._apikey, token=self._token), data=None) 54 | return resp 55 | 56 | async def get_membersInvited(self, board_id, fields=None): 57 | resp = await request.get("https://api.trello.com/1/boards/%s/membersInvited" % (board_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 58 | return resp 59 | 60 | async def get_membersInvited_field(self, field, board_id): 61 | resp = await request.get("https://api.trello.com/1/boards/%s/membersInvited/%s" % (board_id, field), params=dict(key=self._apikey, token=self._token), data=None) 62 | return resp 63 | 64 | async def get_myPref(self, board_id): 65 | resp = await request.get("https://api.trello.com/1/boards/%s/myPrefs" % (board_id), params=dict(key=self._apikey, token=self._token), data=None) 66 | return resp 67 | 68 | async def get_organization(self, board_id, fields=None): 69 | resp = await request.get("https://api.trello.com/1/boards/%s/organization" % (board_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 70 | return resp 71 | 72 | async def get_organization_field(self, field, board_id): 73 | resp = await request.get("https://api.trello.com/1/boards/%s/organization/%s" % (board_id, field), params=dict(key=self._apikey, token=self._token), data=None) 74 | return resp 75 | 76 | async def update(self, board_id, name=None, desc=None, closed=None): 77 | resp = await request.put("https://api.trello.com/1/boards/%s" % (board_id), params=dict(key=self._apikey, token=self._token), data=dict(name=name, desc=desc, closed=closed)) 78 | return resp 79 | 80 | async def update_closed(self, board_id, value): 81 | resp = await request.put("https://api.trello.com/1/boards/%s/closed" % (board_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 82 | return resp 83 | 84 | async def update_desc(self, board_id, value): 85 | resp = await request.put("https://api.trello.com/1/boards/%s/desc" % (board_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 86 | return resp 87 | 88 | async def update_name(self, board_id, value): 89 | resp = await request.put("https://api.trello.com/1/boards/%s/name" % (board_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 90 | return resp 91 | 92 | async def new(self, name, desc=None, idOrganization=None): 93 | resp = await request.post("https://api.trello.com/1/boards" % (), params=dict(key=self._apikey, token=self._token), data=dict(name=name, desc=desc, idOrganization=idOrganization)) 94 | return resp 95 | 96 | async def new_checklist(self, board_id, name): 97 | resp = await request.post("https://api.trello.com/1/boards/%s/checklists" % (board_id), params=dict(key=self._apikey, token=self._token), data=dict(name=name)) 98 | return resp 99 | 100 | async def new_list(self, board_id, name): 101 | resp = await request.post("https://api.trello.com/1/boards/%s/lists" % (board_id), params=dict(key=self._apikey, token=self._token), data=dict(name=name)) 102 | return resp 103 | 104 | async def new_myPref(self, board_id, name, value): 105 | resp = await request.post("https://api.trello.com/1/boards/%s/myPrefs" % (board_id), params=dict(key=self._apikey, token=self._token), data=dict(name=name, value=value)) 106 | return resp 107 | -------------------------------------------------------------------------------- /aaiotrello/cards.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Cards(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, card_id, actions=None, action_fields=None, action_limit=None, attachments=None, attachment_fields=None, members=None, member_fields=None, checkItemStates=None, checkItemState_fields=None, checklists=None, checklist_fields=None, fields=None): 13 | resp = await request.get("https://api.trello.com/1/cards/%s" % (card_id), params=dict(key=self._apikey, token=self._token, actions=actions, action_fields=action_fields, action_limit=action_limit, attachments=attachments, attachment_fields=attachment_fields, members=members, member_fields=member_fields, checkItemStates=checkItemStates, checkItemState_fields=checkItemState_fields, checklists=checklists, checklist_fields=checklist_fields, fields=fields), data=None) 14 | return resp 15 | 16 | async def get_field(self, field, card_id): 17 | resp = await request.get("https://api.trello.com/1/cards/%s/%s" % (card_id, field), params=dict(key=self._apikey, token=self._token), data=None) 18 | return resp 19 | 20 | async def get_action(self, card_id, filter=None, fields=None, limit=None, page=None, idModels=None): 21 | resp = await request.get("https://api.trello.com/1/cards/%s/actions" % (card_id), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields, limit=limit, page=page, idModels=idModels), data=None) 22 | return resp 23 | 24 | async def get_attachment(self, card_id, fields=None): 25 | resp = await request.get("https://api.trello.com/1/cards/%s/attachments" % (card_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 26 | return resp 27 | 28 | async def get_board(self, card_id, fields=None): 29 | resp = await request.get("https://api.trello.com/1/cards/%s/board" % (card_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 30 | return resp 31 | 32 | async def get_board_field(self, field, card_id): 33 | resp = await request.get("https://api.trello.com/1/cards/%s/board/%s" % (card_id, field), params=dict(key=self._apikey, token=self._token), data=None) 34 | return resp 35 | 36 | async def get_checkItemState(self, card_id, fields=None): 37 | resp = await request.get("https://api.trello.com/1/cards/%s/checkItemStates" % (card_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 38 | return resp 39 | 40 | async def get_checklist(self, card_id, cards=None, card_fields=None, checkItems=None, checkItem_fields=None, filter=None, fields=None): 41 | resp = await request.get("https://api.trello.com/1/cards/%s/checklists" % (card_id), params=dict(key=self._apikey, token=self._token, cards=cards, card_fields=card_fields, checkItems=checkItems, checkItem_fields=checkItem_fields, filter=filter, fields=fields), data=None) 42 | return resp 43 | 44 | async def get_list(self, card_id, fields=None): 45 | resp = await request.get("https://api.trello.com/1/cards/%s/list" % (card_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 46 | return resp 47 | 48 | async def get_list_field(self, field, card_id): 49 | resp = await request.get("https://api.trello.com/1/cards/%s/list/%s" % (card_id, field), params=dict(key=self._apikey, token=self._token), data=None) 50 | return resp 51 | 52 | async def get_member(self, card_id, fields=None): 53 | resp = await request.get("https://api.trello.com/1/cards/%s/members" % (card_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 54 | return resp 55 | 56 | async def update(self, card_id, name=None, desc=None, closed=None, idList=None, due=None): 57 | resp = await request.put("https://api.trello.com/1/cards/%s" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(name=name, desc=desc, closed=closed, idList=idList, due=due)) 58 | return resp 59 | 60 | async def update_closed(self, card_id, value): 61 | resp = await request.put("https://api.trello.com/1/cards/%s/closed" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 62 | return resp 63 | 64 | async def update_desc(self, card_id, value): 65 | resp = await request.put("https://api.trello.com/1/cards/%s/desc" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 66 | return resp 67 | 68 | async def update_due(self, card_id, value): 69 | resp = await request.put("https://api.trello.com/1/cards/%s/due" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 70 | return resp 71 | 72 | async def update_idList(self, card_id, value): 73 | resp = await request.put("https://api.trello.com/1/cards/%s/idList" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 74 | return resp 75 | 76 | async def update_name(self, card_id, value): 77 | resp = await request.put("https://api.trello.com/1/cards/%s/name" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 78 | return resp 79 | 80 | async def new(self, name, idList, desc=None): 81 | resp = await request.post("https://api.trello.com/1/cards" % (), params=dict(key=self._apikey, token=self._token), data=dict(name=name, idList=idList, desc=desc)) 82 | return resp 83 | 84 | async def new_action_comment(self, card_id, text): 85 | resp = await request.post("https://api.trello.com/1/cards/%s/actions/comments" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(text=text)) 86 | return resp 87 | 88 | async def new_attachment(self, card_id, url, name): 89 | resp = await request.post("https://api.trello.com/1/cards/%s/attachments" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(url=url, name=name)) 90 | return resp 91 | 92 | async def new_checklist(self, card_id, value): 93 | resp = await request.post("https://api.trello.com/1/cards/%s/checklists" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 94 | return resp 95 | 96 | async def new_label(self, card_id, value): 97 | resp = await request.post("https://api.trello.com/1/cards/%s/labels" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 98 | return resp 99 | 100 | async def new_member(self, card_id, value): 101 | resp = await request.post("https://api.trello.com/1/cards/%s/members" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 102 | return resp 103 | 104 | async def new_membersVoted(self, card_id, value): 105 | resp = await request.post("https://api.trello.com/1/cards/%s/membersVoted" % (card_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 106 | return resp 107 | 108 | async def delete(self, card_id): 109 | resp = await request.delete("https://api.trello.com/1/cards/%s" % (card_id), params=dict(key=self._apikey, token=self._token), data=None) 110 | return resp 111 | 112 | async def delete_checklist_idChecklist(self, idChecklist, card_id): 113 | resp = await request.delete("https://api.trello.com/1/cards/%s/checklists/%s" % (card_id, idChecklist), params=dict(key=self._apikey, token=self._token), data=None) 114 | return resp 115 | 116 | async def delete_label_color(self, color, card_id): 117 | resp = await request.delete("https://api.trello.com/1/cards/%s/labels/%s" % (card_id, color), params=dict(key=self._apikey, token=self._token), data=None) 118 | return resp 119 | 120 | async def delete_member_idMember(self, idMember, card_id): 121 | resp = await request.delete("https://api.trello.com/1/cards/%s/members/%s" % (card_id, idMember), params=dict(key=self._apikey, token=self._token), data=None) 122 | return resp 123 | 124 | async def delete_membersVoted_idMember(self, idMember, card_id): 125 | resp = await request.delete("https://api.trello.com/1/cards/%s/membersVoted/%s" % (card_id, idMember), params=dict(key=self._apikey, token=self._token), data=None) 126 | return resp 127 | -------------------------------------------------------------------------------- /aaiotrello/checklists.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Checklists(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, checklist_id, cards=None, card_fields=None, checkItems=None, checkItem_fields=None, fields=None): 13 | resp = await request.get("https://api.trello.com/1/checklists/%s" % (checklist_id), params=dict(key=self._apikey, token=self._token, cards=cards, card_fields=card_fields, checkItems=checkItems, checkItem_fields=checkItem_fields, fields=fields), data=None) 14 | return resp 15 | 16 | async def get_field(self, field, checklist_id): 17 | resp = await request.get("https://api.trello.com/1/checklists/%s/%s" % (checklist_id, field), params=dict(key=self._apikey, token=self._token), data=None) 18 | return resp 19 | 20 | async def get_board(self, checklist_id, fields=None): 21 | resp = await request.get("https://api.trello.com/1/checklists/%s/board" % (checklist_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 22 | return resp 23 | 24 | async def get_board_field(self, field, checklist_id): 25 | resp = await request.get("https://api.trello.com/1/checklists/%s/board/%s" % (checklist_id, field), params=dict(key=self._apikey, token=self._token), data=None) 26 | return resp 27 | 28 | async def get_card(self, checklist_id, actions=None, attachments=None, members=None, checkItemStates=None, checklists=None, filter=None, fields=None): 29 | resp = await request.get("https://api.trello.com/1/checklists/%s/cards" % (checklist_id), params=dict(key=self._apikey, token=self._token, actions=actions, attachments=attachments, members=members, checkItemStates=checkItemStates, checklists=checklists, filter=filter, fields=fields), data=None) 30 | return resp 31 | 32 | async def get_card_filter(self, filter, checklist_id): 33 | resp = await request.get("https://api.trello.com/1/checklists/%s/cards/%s" % (checklist_id, filter), params=dict(key=self._apikey, token=self._token), data=None) 34 | return resp 35 | 36 | async def get_checkItem(self, checklist_id, filter=None, fields=None): 37 | resp = await request.get("https://api.trello.com/1/checklists/%s/checkItems" % (checklist_id), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields), data=None) 38 | return resp 39 | 40 | async def update(self, checklist_id, name=None): 41 | resp = await request.put("https://api.trello.com/1/checklists/%s" % (checklist_id), params=dict(key=self._apikey, token=self._token), data=dict(name=name)) 42 | return resp 43 | 44 | async def update_name(self, checklist_id, value): 45 | resp = await request.put("https://api.trello.com/1/checklists/%s/name" % (checklist_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 46 | return resp 47 | 48 | async def new(self, name, idBoard): 49 | resp = await request.post("https://api.trello.com/1/checklists" % (), params=dict(key=self._apikey, token=self._token), data=dict(name=name, idBoard=idBoard)) 50 | return resp 51 | 52 | async def new_checkItem(self, checklist_id, name): 53 | resp = await request.post("https://api.trello.com/1/checklists/%s/checkItems" % (checklist_id), params=dict(key=self._apikey, token=self._token), data=dict(name=name)) 54 | return resp 55 | 56 | async def delete_checkItem_idCheckItem(self, idCheckItem, checklist_id): 57 | resp = await request.delete("https://api.trello.com/1/checklists/%s/checkItems/%s" % (checklist_id, idCheckItem), params=dict(key=self._apikey, token=self._token), data=None) 58 | return resp 59 | 60 | 61 | -------------------------------------------------------------------------------- /aaiotrello/lists.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Lists(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, list_id, cards=None, card_fields=None, fields=None): 13 | resp = await request.get("https://api.trello.com/1/lists/%s" % (list_id), params=dict(key=self._apikey, token=self._token, cards=cards, card_fields=card_fields, fields=fields), data=None) 14 | return resp 15 | 16 | async def get_field(self, field, list_id): 17 | resp = await request.get("https://api.trello.com/1/lists/%s/%s" % (list_id, field), params=dict(key=self._apikey, token=self._token), data=None) 18 | return resp 19 | 20 | async def get_action(self, list_id, filter=None, fields=None, limit=None, page=None, idModels=None): 21 | resp = await request.get("https://api.trello.com/1/lists/%s/actions" % (list_id), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields, limit=limit, page=page, idModels=idModels), data=None) 22 | return resp 23 | 24 | async def get_board(self, list_id, fields=None): 25 | resp = await request.get("https://api.trello.com/1/lists/%s/board" % (list_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 26 | return resp 27 | 28 | async def get_board_field(self, field, list_id): 29 | resp = await request.get("https://api.trello.com/1/lists/%s/board/%s" % (list_id, field), params=dict(key=self._apikey, token=self._token), data=None) 30 | return resp 31 | 32 | async def get_card(self, list_id, actions=None, attachments=None, members=None, checkItemStates=None, checklists=None, filter=None, fields=None): 33 | resp = await request.get("https://api.trello.com/1/lists/%s/cards" % (list_id), params=dict(key=self._apikey, token=self._token, actions=actions, attachments=attachments, members=members, checkItemStates=checkItemStates, checklists=checklists, filter=filter, fields=fields), data=None) 34 | return resp 35 | 36 | async def get_card_filter(self, filter, list_id): 37 | resp = await request.get("https://api.trello.com/1/lists/%s/cards/%s" % (list_id, filter), params=dict(key=self._apikey, token=self._token), data=None) 38 | return resp 39 | 40 | async def update(self, list_id, name=None, closed=None): 41 | resp = await request.put("https://api.trello.com/1/lists/%s" % (list_id), params=dict(key=self._apikey, token=self._token), data=dict(name=name, closed=closed)) 42 | return resp 43 | 44 | async def update_closed(self, list_id, value): 45 | resp = await request.put("https://api.trello.com/1/lists/%s/closed" % (list_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 46 | return resp 47 | 48 | async def update_name(self, list_id, value): 49 | resp = await request.put("https://api.trello.com/1/lists/%s/name" % (list_id), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 50 | return resp 51 | 52 | async def new(self, name, idBoard): 53 | resp = await request.post("https://api.trello.com/1/lists" % (), params=dict(key=self._apikey, token=self._token), data=dict(name=name, idBoard=idBoard)) 54 | return resp 55 | 56 | async def new_card(self, list_id, name, desc=None, due=None, idMembers=None, pos=None): 57 | resp = await request.post("https://api.trello.com/1/lists/%s/cards" % (list_id), params=dict(key=self._apikey, token=self._token), data=dict(name=name, desc=desc, due=due, idMembers=idMembers, pos=pos)) 58 | return resp 59 | 60 | async def move_list_to_board(self, list_id, value): 61 | resp = await request.get("https://api.trello.com/1/lists/%s/idBoard" % (list_id), params=dict(value=value, key=self._apikey, token=self._token), data=None) 62 | return resp 63 | 64 | 65 | -------------------------------------------------------------------------------- /aaiotrello/members.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Members(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, member_id_or_username, actions=None, action_fields=None, action_limit=None, cards=None, card_fields=None, boards=None, board_fields=None, boardsInvited=None, boardsInvited_fields=None, organizations=None, organization_fields=None, organizationsInvited=None, organizationsInvited_fields=None, notifications=None, notification_fields=None, notification_limit=None, fields=None): 13 | resp = await request.get("https://api.trello.com/1/members/%s" % (member_id_or_username), params=dict(key=self._apikey, token=self._token, actions=actions, action_fields=action_fields, action_limit=action_limit, cards=cards, card_fields=card_fields, boards=boards, board_fields=board_fields, boardsInvited=boardsInvited, boardsInvited_fields=boardsInvited_fields, organizations=organizations, organization_fields=organization_fields, organizationsInvited=organizationsInvited, organizationsInvited_fields=organizationsInvited_fields, notifications=notifications, notification_fields=notification_fields, notification_limit=notification_limit, fields=fields), data=None) 14 | return resp 15 | 16 | async def get_field(self, field, member_id_or_username): 17 | resp = await request.get("https://api.trello.com/1/members/%s/%s" % (member_id_or_username, field), params=dict(key=self._apikey, token=self._token), data=None) 18 | return resp 19 | 20 | async def get_action(self, member_id_or_username, filter=None, fields=None, limit=None, page=None, idModels=None): 21 | resp = await request.get("https://api.trello.com/1/members/%s/actions" % (member_id_or_username), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields, limit=limit, page=page, idModels=idModels), data=None) 22 | return resp 23 | 24 | async def get_board(self, member_id_or_username, filter=None, fields=None, actions=None, action_fields=None, action_limit=None): 25 | resp = await request.get("https://api.trello.com/1/members/%s/boards" % (member_id_or_username), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields, actions=actions, action_fields=action_fields, action_limit=action_limit), data=None) 26 | return resp 27 | 28 | async def get_board_filter(self, filter, member_id_or_username): 29 | resp = await request.get("https://api.trello.com/1/members/%s/boards/%s" % (member_id_or_username, filter), params=dict(key=self._apikey, token=self._token), data=None) 30 | return resp 31 | 32 | async def get_boardsInvited(self, member_id_or_username, fields=None): 33 | resp = await request.get("https://api.trello.com/1/members/%s/boardsInvited" % (member_id_or_username), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 34 | return resp 35 | 36 | async def get_boardsInvited_field(self, field, member_id_or_username): 37 | resp = await request.get("https://api.trello.com/1/members/%s/boardsInvited/%s" % (member_id_or_username, field), params=dict(key=self._apikey, token=self._token), data=None) 38 | return resp 39 | 40 | async def get_card(self, member_id_or_username, actions=None, attachments=None, members=None, checkItemStates=None, checklists=None, filter=None, fields=None): 41 | resp = await request.get("https://api.trello.com/1/members/%s/cards" % (member_id_or_username), params=dict(key=self._apikey, token=self._token, actions=actions, attachments=attachments, members=members, checkItemStates=checkItemStates, checklists=checklists, filter=filter, fields=fields), data=None) 42 | return resp 43 | 44 | async def get_card_filter(self, filter, member_id_or_username): 45 | resp = await request.get("https://api.trello.com/1/members/%s/cards/%s" % (member_id_or_username, filter), params=dict(key=self._apikey, token=self._token), data=None) 46 | return resp 47 | 48 | async def get_notification(self, member_id_or_username, filter=None, read_filter=None, fields=None, limit=None, page=None): 49 | resp = await request.get("https://api.trello.com/1/members/%s/notifications" % (member_id_or_username), params=dict(key=self._apikey, token=self._token, filter=filter, read_filter=read_filter, fields=fields, limit=limit, page=page), data=None) 50 | return resp 51 | 52 | async def get_notification_filter(self, filter, member_id_or_username): 53 | resp = await request.get("https://api.trello.com/1/members/%s/notifications/%s" % (member_id_or_username, filter), params=dict(key=self._apikey, token=self._token), data=None) 54 | return resp 55 | 56 | async def get_organization(self, member_id_or_username, filter=None, fields=None): 57 | resp = await request.get("https://api.trello.com/1/members/%s/organizations" % (member_id_or_username), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields), data=None) 58 | return resp 59 | 60 | async def get_organization_filter(self, filter, member_id_or_username): 61 | resp = await request.get("https://api.trello.com/1/members/%s/organizations/%s" % (member_id_or_username, filter), params=dict(key=self._apikey, token=self._token), data=None) 62 | return resp 63 | 64 | async def get_organizationsInvited(self, member_id_or_username, fields=None): 65 | resp = await request.get("https://api.trello.com/1/members/%s/organizationsInvited" % (member_id_or_username), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 66 | return resp 67 | 68 | async def get_organizationsInvited_field(self, field, member_id_or_username): 69 | resp = await request.get("https://api.trello.com/1/members/%s/organizationsInvited/%s" % (member_id_or_username, field), params=dict(key=self._apikey, token=self._token), data=None) 70 | return resp 71 | 72 | async def update(self, member_id_or_username, fullName=None, initials=None, bio=None): 73 | resp = await request.put("https://api.trello.com/1/members/%s" % (member_id_or_username), params=dict(key=self._apikey, token=self._token), data=dict(fullName=fullName, initials=initials, bio=bio)) 74 | return resp 75 | 76 | async def update_bio(self, member_id_or_username, value): 77 | resp = await request.put("https://api.trello.com/1/members/%s/bio" % (member_id_or_username), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 78 | return resp 79 | 80 | async def update_fullName(self, member_id_or_username, value): 81 | resp = await request.put("https://api.trello.com/1/members/%s/fullName" % (member_id_or_username), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 82 | return resp 83 | 84 | async def update_initial(self, member_id_or_username, value): 85 | resp = await request.put("https://api.trello.com/1/members/%s/initials" % (member_id_or_username), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 86 | return resp 87 | 88 | 89 | -------------------------------------------------------------------------------- /aaiotrello/notifications.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Notifications(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, notification_id, fields=None, memberCreator=None, memberCreator_fields=None, board=None, board_fields=None, list=None, card=None, card_fields=None, organization=None, organization_fields=None, member=None, member_fields=None): 13 | resp = await request.get("https://api.trello.com/1/notifications/%s" % (notification_id), params=dict(key=self._apikey, token=self._token, fields=fields, memberCreator=memberCreator, memberCreator_fields=memberCreator_fields, board=board, board_fields=board_fields, list=list, card=card, card_fields=card_fields, organization=organization, organization_fields=organization_fields, member=member, member_fields=member_fields), data=None) 14 | return resp 15 | 16 | async def get_field(self, field, notification_id): 17 | resp = await request.get("https://api.trello.com/1/notifications/%s/%s" % (notification_id, field), params=dict(key=self._apikey, token=self._token), data=None) 18 | return resp 19 | 20 | async def get_board(self, notification_id, fields=None): 21 | resp = await request.get("https://api.trello.com/1/notifications/%s/board" % (notification_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 22 | return resp 23 | 24 | async def get_board_field(self, field, notification_id): 25 | resp = await request.get("https://api.trello.com/1/notifications/%s/board/%s" % (notification_id, field), params=dict(key=self._apikey, token=self._token), data=None) 26 | return resp 27 | 28 | async def get_card(self, notification_id, fields=None): 29 | resp = await request.get("https://api.trello.com/1/notifications/%s/card" % (notification_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 30 | return resp 31 | 32 | async def get_card_field(self, field, notification_id): 33 | resp = await request.get("https://api.trello.com/1/notifications/%s/card/%s" % (notification_id, field), params=dict(key=self._apikey, token=self._token), data=None) 34 | return resp 35 | 36 | async def get_list(self, notification_id, fields=None): 37 | resp = await request.get("https://api.trello.com/1/notifications/%s/list" % (notification_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 38 | return resp 39 | 40 | async def get_list_field(self, field, notification_id): 41 | resp = await request.get("https://api.trello.com/1/notifications/%s/list/%s" % (notification_id, field), params=dict(key=self._apikey, token=self._token), data=None) 42 | return resp 43 | 44 | async def get_member(self, notification_id, fields=None): 45 | resp = await request.get("https://api.trello.com/1/notifications/%s/member" % (notification_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 46 | return resp 47 | 48 | async def get_member_field(self, field, notification_id): 49 | resp = await request.get("https://api.trello.com/1/notifications/%s/member/%s" % (notification_id, field), params=dict(key=self._apikey, token=self._token), data=None) 50 | return resp 51 | 52 | async def get_memberCreator(self, notification_id, fields=None): 53 | resp = await request.get("https://api.trello.com/1/notifications/%s/memberCreator" % (notification_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 54 | return resp 55 | 56 | async def get_memberCreator_field(self, field, notification_id): 57 | resp = await request.get("https://api.trello.com/1/notifications/%s/memberCreator/%s" % (notification_id, field), params=dict(key=self._apikey, token=self._token), data=None) 58 | return resp 59 | 60 | async def get_organization(self, notification_id, fields=None): 61 | resp = await request.get("https://api.trello.com/1/notifications/%s/organization" % (notification_id), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 62 | return resp 63 | 64 | async def get_organization_field(self, field, notification_id): 65 | resp = await request.get("https://api.trello.com/1/notifications/%s/organization/%s" % (notification_id, field), params=dict(key=self._apikey, token=self._token), data=None) 66 | return resp 67 | 68 | 69 | -------------------------------------------------------------------------------- /aaiotrello/organizations.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Organizations(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, org_id_or_name, actions=None, action_fields=None, action_limit=None, members=None, member_fields=None, boards=None, board_fields=None, fields=None): 13 | resp = await request.get("https://trello.com/1/organizations/%s" % (org_id_or_name), params=dict(key=self._apikey, token=self._token, actions=actions, action_fields=action_fields, action_limit=action_limit, members=members, member_fields=member_fields, boards=boards, board_fields=board_fields, fields=fields), data=None) 14 | return resp 15 | 16 | async def get_field(self, field, org_id_or_name): 17 | resp = await request.get("https://trello.com/1/organizations/%s/%s" % (org_id_or_name, field), params=dict(key=self._apikey, token=self._token), data=None) 18 | return resp 19 | 20 | async def get_action(self, org_id_or_name, filter=None, fields=None, limit=None, page=None, idModels=None): 21 | resp = await request.get("https://trello.com/1/organizations/%s/actions" % (org_id_or_name), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields, limit=limit, page=page, idModels=idModels), data=None) 22 | return resp 23 | 24 | async def get_board(self, org_id_or_name, filter=None, fields=None, actions=None, action_fields=None, action_limit=None): 25 | resp = await request.get("https://trello.com/1/organizations/%s/boards" % (org_id_or_name), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields, actions=actions, action_fields=action_fields, action_limit=action_limit), data=None) 26 | return resp 27 | 28 | async def get_board_filter(self, filter, org_id_or_name): 29 | resp = await request.get("https://trello.com/1/organizations/%s/boards/%s" % (org_id_or_name, filter), params=dict(key=self._apikey, token=self._token), data=None) 30 | return resp 31 | 32 | async def get_member(self, org_id_or_name, filter=None, fields=None): 33 | resp = await request.get("https://trello.com/1/organizations/%s/members" % (org_id_or_name), params=dict(key=self._apikey, token=self._token, filter=filter, fields=fields), data=None) 34 | return resp 35 | 36 | async def get_member_filter(self, filter, org_id_or_name): 37 | resp = await request.get("https://trello.com/1/organizations/%s/members/%s" % (org_id_or_name, filter), params=dict(key=self._apikey, token=self._token), data=None) 38 | return resp 39 | 40 | async def update(self, org_id_or_name, name=None, displayName=None, desc=None, website=None): 41 | resp = await request.put("https://trello.com/1/organizations/%s" % (org_id_or_name), params=dict(key=self._apikey, token=self._token), data=dict(name=name, displayName=displayName, desc=desc, website=website)) 42 | return resp 43 | 44 | async def update_desc(self, org_id_or_name, value): 45 | resp = await request.put("https://trello.com/1/organizations/%s/desc" % (org_id_or_name), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 46 | return resp 47 | 48 | async def update_displayName(self, org_id_or_name, value): 49 | resp = await request.put("https://trello.com/1/organizations/%s/displayName" % (org_id_or_name), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 50 | return resp 51 | 52 | async def update_name(self, org_id_or_name, value): 53 | resp = await request.put("https://trello.com/1/organizations/%s/name" % (org_id_or_name), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 54 | return resp 55 | 56 | async def update_website(self, org_id_or_name, value): 57 | resp = await request.put("https://trello.com/1/organizations/%s/website" % (org_id_or_name), params=dict(key=self._apikey, token=self._token), data=dict(value=value)) 58 | return resp 59 | 60 | async def new(self, name, displayName=None, desc=None, website=None): 61 | resp = await request.post("https://trello.com/1/organizations" % (), params=dict(key=self._apikey, token=self._token), data=dict(name=name, displayName=displayName, desc=desc, website=website)) 62 | return resp 63 | 64 | async def delete(self, org_id_or_name): 65 | resp = await request.delete("https://trello.com/1/organizations/%s" % (org_id_or_name), params=dict(key=self._apikey, token=self._token), data=None) 66 | return resp 67 | -------------------------------------------------------------------------------- /aaiotrello/tokens.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Tokens(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, token, fields=None): 13 | resp = await request.get("https://trello.com/1/tokens/%s" % (token), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 14 | return resp 15 | 16 | async def get_field(self, field, token): 17 | resp = await request.get("https://trello.com/1/tokens/%s/%s" % (token, field), params=dict(key=self._apikey, token=self._token), data=None) 18 | return resp 19 | 20 | async def get_member(self, token, fields=None): 21 | resp = await request.get("https://trello.com/1/tokens/%s/member" % (token), params=dict(key=self._apikey, token=self._token, fields=fields), data=None) 22 | return resp 23 | 24 | async def get_member_field(self, field, token): 25 | resp = await request.get("https://trello.com/1/tokens/%s/member/%s" % (token, field), params=dict(key=self._apikey, token=self._token), data=None) 26 | return resp 27 | -------------------------------------------------------------------------------- /aaiotrello/types.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Types(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, id): 13 | resp = await request.get("https://trello.com/1/types/%s" % (id), params=dict(key=self._apikey, token=self._token), data=None) 14 | return resp 15 | -------------------------------------------------------------------------------- /aaiotrello/utils.py: -------------------------------------------------------------------------------- 1 | from aiohttp import ClientSession 2 | 3 | 4 | class AsyncRequest(object): 5 | 6 | def clear(self, data): 7 | result = {} 8 | for k, v in data.items(): 9 | if isinstance(v, dict): 10 | result[k] = self.clear(v) 11 | elif v: 12 | result[k] = v 13 | return result 14 | 15 | async def get(self, *args, **kwargs): 16 | kwargs = self.clear(kwargs) 17 | kwargs['ssl'] = False 18 | async with ClientSession() as session: 19 | async with session.get(*args, **kwargs) as resp: 20 | resp.raise_for_status() 21 | return await resp.json() 22 | 23 | async def post(self, *args, **kwargs): 24 | kwargs = self.clear(kwargs) 25 | kwargs['ssl'] = False 26 | async with ClientSession() as session: 27 | async with session.post(*args, **kwargs) as resp: 28 | resp.raise_for_status() 29 | return await resp.json() 30 | 31 | async def put(self, *args, **kwargs): 32 | kwargs = self.clear(kwargs) 33 | kwargs['ssl'] = False 34 | async with ClientSession() as session: 35 | async with session.put(*args, **kwargs) as resp: 36 | resp.raise_for_status() 37 | return await resp.json() 38 | 39 | request = AsyncRequest() 40 | -------------------------------------------------------------------------------- /aaiotrello/webhooks.py: -------------------------------------------------------------------------------- 1 | import json 2 | from .utils import request 3 | 4 | 5 | class Webhooks(object): 6 | __module__ = 'aaiotrello' 7 | 8 | def __init__(self, apikey, token=None): 9 | self._apikey = apikey 10 | self._token = token 11 | 12 | async def get(self, webhook_id): 13 | resp = await request.get("https://api.trello.com/1/webhooks/%s" % (webhook_id), params=dict(key=self._apikey, token=self._token), data=None) 14 | return resp 15 | 16 | async def create(self, webhook_id, url, idModel, description=None): 17 | resp = await request.post("https://api.trello.com/1/webhooks/%s" % (webhook_id), params=dict(key=self._apikey, token=self._token), data=dict(callbackURL=url, idModel=idModel, description=description)) 18 | return resp 19 | 20 | async def delete(self, webhook_id): 21 | resp = await request.delete("https://api.trello.com/1/webhooks/%s" % (webhook_id), params=dict(key=self._apikey, token=self._token), data=None) 22 | return resp -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | aiohttp -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | from textwrap import dedent 3 | 4 | with open("README.md", "r", encoding="utf8") as fh: 5 | long_description = fh.read() 6 | 7 | setup(name='aaiotrello', 8 | version='2.0.0', 9 | packages=['aaiotrello'], 10 | description='Async Python library for interacting with the Trello API', 11 | long_description=long_description, 12 | long_description_content_type="text/markdown", 13 | url='https://trello.com/', 14 | download_url='https://github.com/developerreva/aaiotrello', 15 | keywords='python python3 api-client aiohttp api-wrapper trello trello-api trello-async', 16 | install_requires=['aiohttp>=3.9.0'], 17 | requires='aiohttp', 18 | license='BSD License', 19 | author='Developereva', 20 | author_email='developereva@protonmail.com', 21 | project_urls={ 22 | 'Source Code': 'https://github.com/developerreva/aaiotrello', 23 | 'Documentation': 'https://github.com/developerreva/aaiotrello#-getting-started', 24 | 'Trello REST API Documentation': 'https://developer.atlassian.com/cloud/trello/rest/' 25 | }, 26 | classifiers=[ 27 | "Programming Language :: Python :: 3.7", 28 | "License :: OSI Approved :: MIT License", 29 | "Operating System :: OS Independent", 30 | ], 31 | include_package_data=True, 32 | ) 33 | --------------------------------------------------------------------------------