def check_key(key): count_keys = url_db.sql_count_keys() if count_keys != 0: db_info = key[1] link = key[2] parse_data = utils.data_parser(link) if parse_data['success']: response = parse_data['response'] up_info = response[1] if up_info != db_info: url_db.sql_update_info(up_info, link) print('link is updated') return { 'bool': True, 'link': link, 'update': up_info, 'success': f"{parse_data['response'][0]}\n " f"{parse_data['response'][1]}\n " } print('link is ok') else: return {'bool': False, 'link': link} return {'bool': None}
def func_auto_update(): count_keys = url_db.sql_count_keys() chats = url_db.sql_all_status() news = get_result() error_keys = news['errors'] success_keys = news['success'] time = datetime.datetime.now() now = time.strftime("%Y-%m-%d") # Рассылка результатов по подписавшимся на обновления чатам for chat_id in chats: for success in success_keys: send_message(chat_id[0], f"Обновление дела от {now}:\n" f"{success}") for error in error_keys: send_message(chat_id[0], f"{now}: Не обновилось дело:\n " f"{error}") for chat_id in chats: info_message = f'Ежедневный апдейт от {now} завершен:' if len(success_keys) == 0: info_message += '\nНовой информации по делам нет' else: info_message += f'\nОбновлено {len(success_keys)} дел.' if len(error_keys) != 0: info_message += '\nНе все дела смог проверить:\n' \ f'Успешно проверенных: {count_keys - len(error_keys)} из ' \ f'{count_keys}\n' send_message(chat_id[0], info_message) return
async def delete_key(message: types.Message): user = user_db.sql_init_user(message.from_user.id) if user['verif']: if url_db.sql_count_keys() != 0: keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True) cancel_but = types.KeyboardButton(text='Отмена') for key in url_db.sql_show_party(): row_key = types.KeyboardButton(text=str(key[0])) keyboard.add(row_key) keyboard.add(cancel_but) await message.answer('Отслеживаемые дела (%s)' '\nВыбери, что хочешь удалить:' % url_db.sql_count_keys(), reply_markup=keyboard) await SelectMenu.waiting_sel_link.set() else: await message.answer('Нет отслеживаемых дел')
async def show_users(message: types.Message): user = user_db.sql_init_user(message.from_user.id) if user['admin']: if url_db.sql_count_keys() != 0: db_users = user_db.sql_show_users() await message.answer('Registered users (%s):' % user_db.sql_count_users()) await message.answer(db_users) else: await message.answer('No registered users')
async def delete_all_keys(message: types.Message): user = user_db.sql_init_user(message.from_user.id) if user['verif']: keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True) buttons = ['Да', 'Отмена'] if url_db.sql_count_keys() != 0: await SelectMenu.waiting_del_all_links.set() keyboard.add(*buttons) await message.answer('Ты действительно хочешь удалить все дела?', reply_markup=keyboard) else: await message.answer('Нет отслеживаемых дел')
async def delete_key_by_link(message: types.Message): user = user_db.sql_init_user(message.from_user.id) if user['verif']: if url_db.sql_count_keys() != 0: keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True) cancel_but = types.KeyboardButton(text='Отмена') keyboard.add(cancel_but) await message.answer('Введи ссылку на дело:', reply_markup=keyboard) await SelectMenu.waiting_sel_key_link.set() else: await message.answer('Нет отслеживаемых дел')
async def show_party(message: types.Message): await clean_spam(message, 1) user = user_db.sql_init_user(message.from_user.id) if user['verif']: if url_db.sql_count_keys() != 0: keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True) cancel_but = types.KeyboardButton(text='Отмена') for key in url_db.sql_show_party(): row_key = types.KeyboardButton(text=str(key[0])) keyboard.add(row_key) keyboard.add(cancel_but) await message.answer( f'Отслеживаемые дела {url_db.sql_count_keys()}:', reply_markup=keyboard) else: await message.answer('Нет отслеживаемых дел') await SelectMenu.waiting_show_party.set()