def importantdetail(update, context): """Show new choice of buttons""" query = update.callback_query query.answer() data = query.data.split('_') id = int(data[1]) user = UsersClass(query.from_user.id) notes = ImportantClass(user.client, id) notes.detail(id) context.bot.edit_message_media(chat_id=query.message.chat_id, message_id=query.message.message_id, reply_markup=notes.reply_markup, media=InputMediaPhoto(media=notes.important.file_patch, caption=notes.important.body), parse_mode='Markdown') return 'TIMING'
def minute_importantdetail(update, context): """Show new choice of buttons""" query = update.callback_query query.answer() data = query.data.split('_') id = int(data[1]) hour = data[2] user = UsersClass(query.from_user.id) notes = ImportantClass(user.client, id) buttons = [] for x in range(0, 60, 5): prefix = '' if(notes.important.hour == x): prefix = '✅' buttons.append(InlineKeyboardButton('{}{}'.format(prefix, x), callback_data='212_{}_{}_{}'.format(id, hour, x))) keyboard = settings.constructor(buttons, 4) reply_markup = InlineKeyboardMarkup(keyboard) reply_markup.inline_keyboard.append([InlineKeyboardButton("↩️ Назад", callback_data='203_{}'.format(id))]) context.bot.edit_message_media(chat_id=query.message.chat_id, message_id=query.message.message_id, reply_markup=reply_markup, media=InputMediaPhoto(media=notes.important.file_patch, caption='*{} {}*\nВыберите минуту'.format(hour, HOUR[int(hour)]), parse_mode='Markdown')) return 'TIMING'
def get_image(update, context): """Show new choice of buttons""" query = update.message user = UsersClass(query.from_user.id) if(user.dialog): data = user.dialog.data.split('|') print(data) step = data[0] action = data[1] if(step == 'TIMING'): if(action == '104'): notes = NotesClass(user.client, None) print(68, update.message.photo[-1].file_id) notes.create(update.message.text, update.message.photo[-1].file_id) user.create_dialog('TIMING|104') update.message.reply_text('Введите текст напоминания') user.delete_dialog() if(action == '200'): notes = ImportantClass(user.client, None) print(68, update.message.photo[-1].file_id) notes.create(update.message.text, update.message.photo[-1].file_id) user.create_dialog('TIMING|200') update.message.reply_text('Введите текст напоминания') user.delete_dialog() return 'DIALOG'
def importantpagin(update, context): """Show new choice of buttons""" query = update.callback_query query.answer() data = query.data.split('_') print(data) page = int(data[1]) user = UsersClass(query.from_user.id) notes = ImportantClass(user.client, None) notes.get({'page': page, 'count': settings.COUNT_PAGE}) if(notes.state): context.bot.edit_message_media(chat_id=query.message.chat_id, message_id=query.message.message_id, reply_markup=notes.reply_markup, media=InputMediaPhoto(media=notes.important.file_patch, caption=notes.important.body, parse_mode='Markdown')) return 'TIMING' else: user.create_dialog('TIMING|200') context.bot.deleteMessage(chat_id=query.message.chat_id, message_id=query.message.message_id) context.bot.send_message(chat_id=query.message.chat.id, text='Введите текст напоминания или отправьте картинку', parse_mode='Markdown') return 'DIALOG'
def importantdelete(update, context): """Show new choice of buttons""" query = update.callback_query query.answer() data = query.data.split('_') id = int(data[1]) user = UsersClass(query.from_user.id) notes = ImportantClass(user.client, None) notes.delete(id) notes.get({'page': 1, 'count': settings.COUNT_PAGE}) if(notes.state): context.bot.edit_message_media(chat_id=query.message.chat_id, message_id=query.message.message_id, reply_markup=notes.reply_markup, media=InputMediaPhoto(media=notes.important.file_patch, caption=notes.important.body, parse_mode='Markdown')) return 'TIMING' else: buttons = [ InlineKeyboardButton("📝 Планировщик", callback_data='100'), InlineKeyboardButton("📝 Важные даты", callback_data='200'), ] keyboard = settings.constructor(buttons, settings.COUNT_ROW) reply_markup = InlineKeyboardMarkup(keyboard) context.bot.deleteMessage(chat_id=query.message.chat_id, message_id=query.message.message_id) context.bot.send_message(chat_id=query.message.chat.id, text="Это ваш персональный планировщик дел на день, неделю, месяц и квартал", reply_markup=reply_markup, parse_mode='Markdown') return 'TIMING'
def settings_importantdate(update, context): """Show new choice of buttons""" query = update.callback_query query.answer() data = query.data.split('_') id = int(data[1]) user = UsersClass(query.from_user.id) notes = ImportantClass(user.client, id) user.create_dialog('TIMING|209|{}'.format(id)) context.bot.deleteMessage(chat_id=query.message.chat_id, message_id=query.message.message_id) context.bot.send_message(chat_id=query.message.chat.id, text='Введите дату в формате дд.мм', parse_mode='Markdown') return 'TIMING'
def importantmode(update, context): """Show new choice of buttons""" query = update.callback_query query.answer() data = query.data.split('_') id = int(data[1]) user = UsersClass(query.from_user.id) notes = ImportantClass(user.client, id) buttons = [] for x in MODE_IMPORTANT: buttons.append(InlineKeyboardButton(MODE_IMPORTANT[x], callback_data='209_{}_{}'.format(id, x))) keyboard = settings.constructor(buttons, settings.COUNT_ROW) reply_markup = InlineKeyboardMarkup(keyboard) context.bot.edit_message_media(chat_id=query.message.chat_id, message_id=query.message.message_id, reply_markup=reply_markup, media=InputMediaPhoto(media=notes.important.file_patch, caption='Выберите режим работы'), parse_mode='Markdown') return 'TIMING'
def important(update, context): """Show new choice of buttons""" query = update.callback_query query.answer() user = UsersClass(query.from_user.id) notes = ImportantClass(user.client, None) if('_' in query.data): notes.get({'page': 1, 'count': settings.COUNT_PAGE, 'note_id': query.data.split('_')[1]}) else: notes.get({'page': 1, 'count': settings.COUNT_PAGE}) if(notes.state): if(notes.important.file_patch): # context.bot.deleteMessage(chat_id=query.message.chat.id, message_id=update.message.message_id) context.bot.sendPhoto(chat_id=query.message.chat.id, photo=notes.important.file_patch, caption=notes.important.body, reply_markup=notes.reply_markup, parse_mode='Markdown') else: query.edit_message_text( text=notes.important.body, reply_markup=notes.reply_markup, parse_mode='Markdown' ) return 'TIMING' else: user.create_dialog('TIMING|200') buttons = [ InlineKeyboardButton("Отменить ❌", callback_data='777'), ] keyboard = settings.constructor(buttons, settings.COUNT_ROW) reply_markup = InlineKeyboardMarkup(keyboard) query.edit_message_text( 'Введите текст напоминания или отправьте картинку', reply_markup=reply_markup, parse_mode='Markdown' ) return 'DIALOG'
def text(update, context): query = update.message print(query) user = UsersClass(query.from_user.id) if(user.dialog): data = user.dialog.data.split('|') print(data) step = data[0] action = data[1] if(step == 'TIMING'): if(action == '104'): notes = NotesClass(user.client, None) notes.create(update.message.text) notes.get({'page': 1, 'count': settings.COUNT_PAGE}) if(notes.state): context.bot.sendPhoto(chat_id=query.chat.id, photo=notes.scheduler.file_patch, caption=notes.scheduler.body, reply_markup=notes.reply_markup) user.delete_dialog() else: user.create_dialog('TIMING|104') update.message.reply_text('Введите текст напоминания') return 'DIALOG' elif(action == '108'): id = data[2] notes = NotesClass(user.client, None) notes.update(type_up='body', id=id, data=update.message.text) notes.detail(id) context.bot.sendPhoto(chat_id=query.chat.id, photo=notes.scheduler.file_patch, caption=notes.scheduler.body, reply_markup=notes.reply_markup) user.delete_dialog() elif(action == '200'): notes = ImportantClass(user.client, None) notes.create(update.message.text) notes.get({'page': 1, 'count': settings.COUNT_PAGE}) if(notes.state): # context.bot.sendPhoto(chat_id=query.chat.id, photo=notes.important.file_patch, caption=notes.important.body, reply_markup=notes.reply_markup) user = UsersClass(query.from_user.id) notes = ImportantClass(user.client, notes.important.id) user.delete_dialog() user.create_dialog('TIMING|209|{}'.format(notes.important.id)) # context.bot.deleteMessage(chat_id=query.message.chat_id, message_id=query.message.message_id) context.bot.send_message(chat_id=query.chat.id, text='Введите дату в формате дд.мм', parse_mode='Markdown') return 'DIALOG' else: user.create_dialog('TIMING|200') update.message.reply_text('Введите текст напоминания') return 'DIALOG' # context.bot.sendPhoto(chat_id=query.chat.id, photo=settings.MEDIA_TECH, caption=notes.important.body, reply_markup=notes.reply_markup) # user.delete_dialog() elif(action == '208'): id = data[2] notes = ImportantClass(user.client, None) notes.update(type_up='body', id=id, data=update.message.text) notes.detail(id) context.bot.sendPhoto(chat_id=query.chat.id, photo=notes.important.file_patch, caption=notes.important.body, reply_markup=notes.reply_markup) user.delete_dialog() elif(action == '209'): date = update.message.text.split('.') if(len(date) != 2): context.bot.send_message(chat_id=query.chat.id, text='Введите дату в формате дд.мм', parse_mode='Markdown') return '{}'.format(step) if(date[0][0] == '0'): day = date[0][1] else: day = date[0] if(date[1][0] == '0'): month = date[1][1] else: month = date[1] if not (1 <= int(day) <= 31): context.bot.send_message(chat_id=query.chat.id, text='Введите дату в формате дд.мм', parse_mode='Markdown') return '{}'.format(step) if not (1 <= int(month) <= 12): context.bot.send_message(chat_id=query.chat.id, text='Введите дату в формате дд.мм', parse_mode='Markdown') return '{}'.format(step) now = datetime.datetime.now() month_day = calendar.monthrange(now.year, 1)[1] if (int(day) > month_day): context.bot.send_message(chat_id=query.chat.id, text='В данном месяце количество дней = {}'.format(month_day), parse_mode='Markdown') return '{}'.format(step) id = data[2] notes = ImportantClass(user.client, None) notes.update(type_up='date', id=id, data=[day, month]) notes.detail(id) if(notes.important.hour == None or notes.important.minute == None): buttons = [] for x in range(1, 24): prefix = '' if(notes.important.hour == x): prefix = '✅' buttons.append(InlineKeyboardButton('{}{}'.format(prefix, x), callback_data='211_{}_{}'.format(notes.important.id, x))) keyboard = settings.constructor(buttons, 4) reply_markup = InlineKeyboardMarkup(keyboard) context.bot.sendPhoto(chat_id=query.chat.id, photo=notes.important.file_patch, caption='Выберите час', reply_markup=reply_markup) user.delete_dialog() return 'DIALOG' context.bot.sendPhoto(chat_id=query.chat.id, photo=notes.important.file_patch, caption=notes.important.body, reply_markup=notes.reply_markup) user.delete_dialog() return '{}'.format(step)