def timer(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) timer = tguser.timer_set.filter(card_id=card_id).first() if not timer: tguser.answer_callback_query('Timer was not started', show_alert=True) raise bot_utils.StateErrorHandler('timer_not_started') tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, timer))
def timer_start(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) timer = tguser.timer_set.filter(card_id=card_id).first() if timer: tguser.answer_callback_query('Timer was already started', show_alert=True) raise bot_utils.StateErrorHandler('timer_already_started') if tguser.timer_set.exists(): tguser.answer_callback_query('You cannot start more than one timer simultaneously', show_alert=True) raise bot_utils.StateErrorHandler('multiple_timers') card_info = card.get_card_information() timer = tguser.timer_set.create( board_id=card_info['idBoard'], list_id=card_info['idList'], card_id=card_id, message_id=tguser.callback_query.message.message_id, ) tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, timer))
def timer_plus(tguser: TgUser): card_id = tguser.callback_query_data_get(1) minutes = tguser.callback_query_data_get(2, as_int=True) assert isinstance(tguser.client, TrelloClient) card = tguser.client.get_card(card_id) assert isinstance(card, trolly.Card) timer = tguser.timer_set.filter(card_id=card_id).first() if not timer: tguser.answer_callback_query('Timer was not started', show_alert=True) raise bot_utils.StateErrorHandler('timer_not_started') assert isinstance(timer, Timer) timer.created_at = timer.created_at - timedelta(minutes=minutes) timer.save() tguser.answer_callback_query('Timer was increased on %s minutes' % minutes) tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, timer))
def timer_add(tguser: TgUser): seconds = int(tguser.callback_query_data_get(1)) card_id = tguser.callback_query_data_get(2) timer = tguser.timer_set.filter(card_id=card_id).first() if not timer: tguser.answer_callback_query('Timer was not started', show_alert=True) raise bot_utils.StateErrorHandler('timer_not_started') to_add = timedelta(seconds=seconds) timer.created_at = timer.created_at - to_add timer.save() tguser.answer_callback_query('Added %s' % to_add) tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, timer))
def timer_stop(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) timer = tguser.timer_set.filter(card_id=card_id).first() if not timer: tguser.answer_callback_query('Timer was not started', show_alert=True) raise bot_utils.StateErrorHandler('timer_not_started') assert isinstance(timer, Timer) dur = timezone.now() - timer.created_at d = '%.2f' % (dur.seconds / 3600) card.add_comments('plus! %s/%s' % (d, d)) timer.delete() logged = mytime(dur, True) tguser.answer_callback_query('Logged %s' % logged) tguser.edit_message_reply_markup(keyboard=keyboards.Card(tguser, card_id, None))