コード例 #1
0
def show_tasks(message, db_collection):
    tasks = user_get_tasks(message, db_collection)
    tables = create_tables(tasks, ui.table_asset, ui.pic_task_status,
                           ui.menu_list_items['important'],
                           ui.menu_list_items['ordinary'])
    bot.send_message(message.from_user.id, tables[0], parse_mode='HTML')
    bot.send_message(message.from_user.id, tables[1], parse_mode='HTML')
コード例 #2
0
def switch_task_status(call, db_collection, text):
    target_id = extract_id(text)
    target_list = find_list(call, db_collection, target_id)
    task_index = find_index_task(call, db_collection, target_id, target_list)
    if target_list and task_index is not False:
        user_task = user_get_tasks(call,
                                   db_collection)[target_list][task_index]
        if user_task.get('task_status'):
            user_task['task_status'] = False
        else:
            user_task['task_status'] = True
        update_status = user_update_task(call, COLLECTION, target_list,
                                         task_index, user_task)
        if update_status:
            new_screen_info = edited_task_card(user_task)
            bot.edit_message_text(chat_id=call.message.chat.id,
                                  message_id=call.message.message_id,
                                  text=new_screen_info[0],
                                  reply_markup=new_screen_info[1],
                                  parse_mode='HTML')
            text = ui.dialogue['task_status_changed'].format(
                ui.different_signs['warning'])
            bot.send_message(chat_id=call.message.chat.id, text=text)
        else:
            text = ui.dialogue['task_status_not_changed'].format(
                ui.different_signs['exclamatory'])
            bot.send_message(chat_id=call.message.chat.id, text=text)
    else:
        text = ui.dialogue['wrong_task_status'].format(
            ui.different_signs['exclamatory'])
        bot.send_message(chat_id=call.message.chat.id, text=text)
コード例 #3
0
 def add_new_text(msg, need_list, need_index):
     new_text = msg.text
     user_task = user_get_tasks(msg,
                                db_collection)[need_list][need_index]
     user_task['task'] = new_text
     update_status = user_update_task(msg, COLLECTION, need_list,
                                      need_index, user_task)
     if update_status:
         notify_text = ui.dialogue['text_changed'].format(
             ui.different_signs['warning'])
         bot.send_message(chat_id=call.message.chat.id,
                          text=notify_text,
                          reply_markup=MENU_BACK)
         new_screen_info = edited_task_card(user_task)
         bot.edit_message_text(chat_id=call.message.chat.id,
                               message_id=call.message.message_id,
                               text=new_screen_info[0],
                               reply_markup=new_screen_info[1],
                               parse_mode='HTML')
     else:
         notify_text = ui.dialogue['text_not_changed'].format(
             ui.different_signs['exclamatory'])
         bot.send_message(chat_id=call.message.chat.id,
                          text=notify_text,
                          reply_markup=MENU_BACK)
コード例 #4
0
def find_index_task(call, db_collection, task_id, task_list_name):
    tasks = user_get_tasks(call, db_collection)
    try:
        for index, value_dict in enumerate(tasks[task_list_name]):
            if value_dict.get('task_id') == task_id:
                return index
    except KeyError:
        return False
コード例 #5
0
def find_list(call, db_collection, task_id):
    tasks = user_get_tasks(call, db_collection)
    for current_key, current_value in tasks.items():
        if current_value is not None:
            for value in current_value:
                if value.get('task_id') == task_id:
                    return current_key
    return False
コード例 #6
0
def task_notification(message):
    def get_not_ready_tasks():
        result = []
        for index, current_task in enumerate(tasks_important):
            if not current_task.get('task_status'):
                result.append(tasks_important[index])
            else:
                continue
        return result

    tasks_important = user_get_tasks(message, COLLECTION)['important']
    if tasks_important is not None:
        task = get_not_ready_tasks()
        if task:
            random_task = choice(task)
            text_task = random_task.get('task')
            text = ui.dialogue['task_notification'].format(
                ui.different_signs['warning'], message.from_user.first_name,
                text_task)
            bot.send_message(message.from_user.id, text)
コード例 #7
0
def edit_tasks(message, db_collection):
    tasks = user_get_tasks(message, db_collection)
    if tasks['important'] is None and tasks['ordinary'] is None:
        text = ui.dialogue['lists_empty'].format(ui.different_signs['warning'])
        bot.send_message(message.from_user.id, text, reply_markup=MENU_BACK)
    else:
        text = ui.dialogue['lists_ready_change'].format(
            ui.different_signs['warning'])
        bot.send_message(message.from_user.id, text, reply_markup=MENU_BACK)
    cards = []

    def create_task_cards(asset, pic_status, txt_status, tasks_dict, list_name,
                          item_list):
        blank = {
            'head':
            asset['card_head'].format(list_item=item_list,
                                      separator=asset['separator']),
            'cards_full_info':
            tasks_dict[list_name],
            'screen_info': []
        }
        if blank['cards_full_info'] is not None:
            for value in blank['cards_full_info']:
                if value.get('task_status'):
                    txt, pic = txt_status['ready'], pic_status['ready']
                else:
                    txt, pic = txt_status['not_ready'], pic_status['not_ready']
                blank['screen_info'].append(asset['card_desc'].format(
                    task=value.get('task'),
                    status=txt,
                    pic_status=pic,
                    task_id=value.get('task_id')))
            cards.append(blank)
        else:
            blank['screen_info'].append(asset['card_empty'])
            cards.append(blank)

    def show_card(cards_tasks):
        show_card_text = cards_tasks['head']
        bot.send_message(message.from_user.id,
                         show_card_text,
                         parse_mode='HTML')
        if cards_tasks['cards_full_info'] is not None:
            for index, current_dict in enumerate(
                    cards_tasks['cards_full_info']):
                if current_dict.get('task_status'):
                    show_card_text = cards_tasks['screen_info'][index]
                    bot.send_message(message.from_user.id,
                                     show_card_text,
                                     reply_markup=BTN_CNL_BAR_NOT_READY,
                                     parse_mode='HTML')
                else:
                    show_card_text = cards_tasks['screen_info'][index]
                    bot.send_message(message.from_user.id,
                                     show_card_text,
                                     reply_markup=BTN_CNL_BAR_READY,
                                     parse_mode='HTML')
        else:
            show_card_text = cards_tasks['screen_info']
            bot.send_message(message.from_user.id,
                             show_card_text,
                             parse_mode='HTML')

    create_task_cards(
        ui.card_asset,
        ui.pic_task_status,
        ui.txt_task_status,
        tasks,
        'important',
        ui.menu_list_items['important'],
    )
    create_task_cards(
        ui.card_asset,
        ui.pic_task_status,
        ui.txt_task_status,
        tasks,
        'ordinary',
        ui.menu_list_items['ordinary'],
    )
    show_card(cards[0])
    show_card(cards[1])