Exemplo n.º 1
0
 def boards(tguser: TgUser):
     assert isinstance(tguser.client, TrelloClient)
     boards = tguser.client.get_boards()
     timer_board_ids = tguser.timer_set.values_list('board_id', flat=True)
     tguser.render_to_string('bot/private/choose_board.html',
                             keyboard=keyboards.Boards(
                                 tguser, boards, timer_board_ids),
                             edit=True)
Exemplo n.º 2
0
 def board_list(tguser: TgUser, list_id=None):
     if list_id is None:
         list_id = tguser.callback_query_data_get(1)
     assert isinstance(tguser.client, TrelloClient)
     board_list = tguser.client.get_list(list_id)
     assert isinstance(board_list, trolly.List)
     cards = board_list.get_cards()
     timer_card_ids = tguser.timer_set.values_list('card_id', flat=True)
     tguser.render_to_string('bot/private/choose_card.html', keyboard=keyboards.Cards(tguser, list_id, cards, timer_card_ids), edit=True)
Exemplo n.º 3
0
 def board(tguser: TgUser, board_id=None):
     if board_id is None:
         board_id = tguser.callback_query_data_get(1)
     assert isinstance(tguser.client, TrelloClient)
     board = tguser.client.get_board(board_id)
     assert isinstance(board, trolly.Board)
     lists = board.get_lists()
     timer_list_ids = tguser.timer_set.values_list('list_id', flat=True)
     tguser.render_to_string('bot/private/choose_list.html', keyboard=keyboards.Lists(tguser, lists, timer_list_ids), edit=True)
Exemplo n.º 4
0
 def start(tguser: TgUser):
     parts = tguser.message.text.split()
     if len(parts) == 2:
         # noinspection PyBroadException
         try:
             s = base_utils.real_urlsafe_b64decode(
                 parts[1].encode()).decode()
             if s.startswith('token:'):
                 p = s.split(':')
                 if len(p) == 2:
                     token_id = p[1]
                     t = Token.objects.filter(
                         id=token_id,
                         created_at__gt=timezone.now() -
                         timedelta(days=1)).first()
                     if t:
                         token = t.token
                         t.delete()
                         tguser.authorize(token)
                         return tguser.render_to_string(
                             'bot/private/authorized.html',
                             keyboard=keyboards.Start)
         except Exception as e:
             pass
     if not tguser.is_authorized():
         PrivateHandler.unauthorized(tguser)
Exemplo n.º 5
0
 def card(tguser: TgUser):
     card_id = tguser.callback_query_data_get(1)
     assert isinstance(tguser.client, TrelloClient)
     card = tguser.client.get_card(card_id)
     assert isinstance(card, trolly.Card)
     card_info = card.get_card_information()
     timer = tguser.timer_set.filter(card_id=card_id).first()
     message = tguser.render_to_string('bot/private/show_card.html', context=dict(card=card_info), keyboard=keyboards.Card(tguser, card_id, timer), edit=True)
     if timer:
         assert isinstance(message, Message)
         timer.message_id = message.message_id
         timer.save()
Exemplo n.º 6
0
 def unauthorized(cls, tguser: TgUser):
     assert isinstance(tguser.client, TrelloClient)
     url = tguser.client.get_authorisation_url()
     tguser.render_to_string('bot/private/errors/not_authorized.html', context=dict(url=url), edit=True)
Exemplo n.º 7
0
 def help(tguser: TgUser):
     tguser.render_to_string('bot/private/help.html', keyboard=keyboards.Start)
Exemplo n.º 8
0
 def edit_message(tguser: TgUser):
     tguser.render_to_string('bot/private/errors/cannot_edit_message.html')
Exemplo n.º 9
0
 def unknown_text(tguser: TgUser):
     tguser.render_to_string('bot/private/errors/unknown_text.html',
                             keyboard=keyboards.Start)
     if tguser.after_unknown_text:
         tguser.after_unknown_text(tguser)
     OtherHandler.send_to_feedback_tgchat(tguser, feedback_tgchat())
Exemplo n.º 10
0
 def cancel(tguser: TgUser):
     tguser.reset()
     tguser.render_to_string('bot/private/canceled.html',
                             keyboard=keyboards.Start)
Exemplo n.º 11
0
 def unknown_content_type(tguser: TgUser):
     tguser.render_to_string('bot/private/errors/unknown_content_type.html',
                             keyboard=keyboards.Start)
     if tguser.after_unknown_text:
         tguser.after_unknown_text(tguser)