示例#1
0
文件: times.py 项目: slava2498/notes
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'
示例#2
0
文件: times.py 项目: slava2498/notes
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'
示例#3
0
文件: times.py 项目: slava2498/notes
def hour_detail(update, context):
	"""Show new choice of buttons"""
	query = update.callback_query
	query.answer()

	data = query.data.split('_')
	id = int(data[1])
	day = data[2]
	call = data[3]
	user = UsersClass(query.from_user.id)
	notes = NotesClass(user.client, id)

	print('in' in str(data))
	print('edit' in str(data))
	print('edittime' in str(data))
	if('in' in str(data)):
		if('edit' in str(data)):
			id_date = query.data.split('edit_')[1]
			datesh = DateTimeScheduler.select().where(DateTimeScheduler.id == id_date)
		else:
			datesh = DateTimeScheduler.select().join(Scheduler).where(Scheduler.id == id, DateTimeScheduler.state == False)
		if(datesh and not 'edittime' in str(data)):
			datesh = datesh[0]
			datesh.num_day = int(day)
			datesh.save()

	buttons = []
	if('edit' in str(data)):
		if('edittime' in str(data)):
			id_date = query.data.split('edittime_')[1]
		else:
			id_date = query.data.split('edit_')[1]
		datesh = DateTimeScheduler.select().where(DateTimeScheduler.id == id_date)
	else:
		datesh = DateTimeScheduler.select().where(DateTimeScheduler.scheduler_id == id)

	postfix = ''
	if('edit' in str(data)):
		postfix = 'edit_{}'.format(id_date)
	for x in range(1, 24):
		prefix = ''
		for y in datesh:
			if(y.hour == x and day == y.num_day):
				prefix = '✅'


		buttons.append(InlineKeyboardButton('{}{}'.format(prefix, x), callback_data='111_{}_{}_{}_{}'.format(id, day, x, postfix)))

	keyboard = settings.constructor(buttons, 4)
	reply_markup = InlineKeyboardMarkup(keyboard)

	if('edit' not in str(data) and DateTimeScheduler.select().join(Scheduler).where(Scheduler.id == id, DateTimeScheduler.num_day != None, DateTimeScheduler.hour != None, DateTimeScheduler.minute != None, DateTimeScheduler.state == False)):
		reply_markup.inline_keyboard.append([InlineKeyboardButton("Готово", callback_data='114_{}'.format(id))])
	
	reply_markup.inline_keyboard.append([InlineKeyboardButton("↩️ Назад", callback_data='103_{}'.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.scheduler.file_patch, caption='День недели: *{}*\nВыберите час'.format(DAYS[int(day)]), parse_mode='Markdown'))
	return 'TIMING'
示例#4
0
文件: times.py 项目: slava2498/notes
def minute_detail(update, context):
	"""Show new choice of buttons"""
	query = update.callback_query
	query.answer()

	data = query.data.split('_')
	id = int(data[1])
	day = data[2]
	hour = data[3]
	user = UsersClass(query.from_user.id)
	notes = NotesClass(user.client, id)

	print('edit' in str(data))
	postfix = ''
	if('edit' in str(data)):
		postfix = 'edit_{}'.format(query.data.split('edit_')[1])
		datesh = DateTimeScheduler.get(DateTimeScheduler.id == query.data.split('edit_')[1])
		datesh.hour = int(hour)
		datesh.save()
	else:
		datesh = DateTimeScheduler.select().join(Scheduler).where(Scheduler.id == id, DateTimeScheduler.num_day == int(day), DateTimeScheduler.hour == int(hour), DateTimeScheduler.state == False)
		if(not datesh):
			print(294)
			scheduler = Scheduler.get(Scheduler.id == id)
			len_sh = DateTimeScheduler.select().join(Scheduler).where(Scheduler.id == id).count()
			if(len_sh < 7):
				DateTimeScheduler.create(scheduler=scheduler, num_day=int(day), hour=int(hour))
			else:
				print(340)
				# update.callback_query.answer('Ограничение: 7 напоминаний на заметку', show_alert=True)
				context.bot.send_message(chat_id=query.message.chat_id, text='Ограничение: 7 напоминаний на заметку')
				return 'TIMING'

	buttons = []
	datesh = DateTimeScheduler.select().join(Scheduler).where(Scheduler.id == id)
	for x in range(0, 60, 5):
		prefix = ''
		for y in datesh:
			if(y.hour == int(hour) and day == y.num_day and y.minute == x):
				prefix = '✅'
		buttons.append(InlineKeyboardButton('{}{}'.format(prefix, x), callback_data='112_{}_{}_{}_{}_{}'.format(id, day, hour, x, postfix)))
	keyboard = settings.constructor(buttons, 6)
	# keyboard = settings.constructor(buttons, settings.COUNT_ROW)
	reply_markup = InlineKeyboardMarkup(keyboard)

	buttons = []
	if(DateTimeScheduler.select().join(Scheduler).where(Scheduler.id == id, DateTimeScheduler.num_day != None, DateTimeScheduler.hour != None, DateTimeScheduler.minute != None, DateTimeScheduler.state == False)):
		reply_markup.inline_keyboard.append([InlineKeyboardButton("↩️ Часы", callback_data='110_{}_{}_out_{}'.format(id, day, postfix))])
		reply_markup.inline_keyboard.append([InlineKeyboardButton("Готово", callback_data='114_{}'.format(id))])
	else:
		reply_markup.inline_keyboard.append([InlineKeyboardButton("↩️ Часы", callback_data='110_{}_{}_out_{}'.format(id, day, postfix))])

	reply_markup.inline_keyboard.append([InlineKeyboardButton("↩️ Назад", callback_data='103_{}'.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.scheduler.file_patch, caption='День недели: *{}*\n*{}* {}\nВыберите минуту'.format(DAYS[int(day)], hour, HOUR[int(hour)]), parse_mode='Markdown'))

	return 'TIMING'
示例#5
0
文件: notes.py 项目: slava2498/notes
    def detail(self, id):
        print(54, self.scheduler.file_patch)
        buttons = []
        buttons.append(
            InlineKeyboardButton("Переименовать",
                                 callback_data='108_{}'.format(
                                     self.scheduler.id)))
        keyboard = settings.constructor(buttons, settings.COUNT_ROW)
        self.reply_markup = InlineKeyboardMarkup(keyboard)
        self.reply_markup.inline_keyboard.append([
            InlineKeyboardButton(
                'Режим: ' +
                MODE[self.scheduler.mode] if self.scheduler.mode else "Режим",
                callback_data='106_{}'.format(self.scheduler.id))
        ])
        self.reply_markup.inline_keyboard.append([
            InlineKeyboardButton('Период: ' + PERIOD[self.scheduler.period]
                                 if self.scheduler.period else "Период",
                                 callback_data='199_{}'.format(
                                     self.scheduler.id))
        ])
        self.dash = DateTimeScheduler.select().join(Scheduler).where(
            Scheduler.id == id, DateTimeScheduler.state == True)
        if (self.dash):
            for x in self.dash:
                str_time = str(datetime.time(x.hour, x.minute))
                if (len(str_time.split(':')) == 3):
                    str_time = str_time.replace(':00', '')
                buttons = [
                    InlineKeyboardButton(DAYS[int(x.num_day)],
                                         callback_data='107_{}_edit_{}'.format(
                                             self.scheduler.id, x.id)),
                    InlineKeyboardButton(
                        str_time,
                        callback_data='110_{}_{}_edittime_{}'.format(
                            self.scheduler.id, x.num_day, x.id)),
                    InlineKeyboardButton('❌',
                                         callback_data='115_{}_{}'.format(
                                             x.id, self.scheduler.id))
                ]

                self.reply_markup.inline_keyboard.append(buttons)

        if (len(self.dash) < 7):
            self.reply_markup.inline_keyboard.append([
                InlineKeyboardButton("День/Время",
                                     callback_data='107_{}'.format(
                                         self.scheduler.id))
            ])

        self.reply_markup.inline_keyboard.append([
            InlineKeyboardButton("↩️ Назад",
                                 callback_data='100_{}'.format(
                                     self.scheduler.id))
        ])
示例#6
0
    def detail(self, id):
        print(54, self.important.file_patch)
        buttons = []
        buttons.append(
            InlineKeyboardButton("Переименовать",
                                 callback_data='208_{}'.format(
                                     self.important.id)))
        keyboard = settings.constructor(buttons, settings.COUNT_ROW)
        self.reply_markup = InlineKeyboardMarkup(keyboard)
        buttons = []
        self.reply_markup.inline_keyboard.append([
            InlineKeyboardButton(
                'Режим: ' + MODE_IMPORTANT[self.important.mode]
                if self.important.mode else "Режим",
                callback_data='206_{}'.format(self.important.id))
        ])
        if (self.important.day and self.important.month):
            now = datetime.datetime.now(pytz.timezone('Europe/Kiev'))
            str_day = '0' + str(self.important.day) if int(
                self.important.day) < 10 else str(self.important.day)
            str_month = '0' + str(self.important.month) if int(
                self.important.month) < 10 else str(self.important.month)
            buttons.append(
                InlineKeyboardButton(str_day + '.' + str_month,
                                     callback_data='207_{}'.format(
                                         self.important.id)))
        else:
            buttons.append(
                InlineKeyboardButton('Указать дату',
                                     callback_data='207_{}'.format(
                                         self.important.id)))

        if (self.important.hour and self.important.minute):
            str_time = str(
                datetime.time(int(self.important.hour),
                              int(self.important.minute)))
            if (len(str_time.split(':')) == 3):
                str_time = str_time.replace(':00', '')
            buttons.append(
                InlineKeyboardButton(str_time,
                                     callback_data='210_{}'.format(
                                         self.important.id)))
        else:
            buttons.append(
                InlineKeyboardButton('Указать время',
                                     callback_data='210_{}'.format(
                                         self.important.id)))

        self.reply_markup.inline_keyboard.append(buttons)
        self.reply_markup.inline_keyboard.append([
            InlineKeyboardButton("↩️ Назад",
                                 callback_data='200_{}'.format(
                                     self.important.id))
        ])
示例#7
0
文件: base.py 项目: slava2498/notes
def end(update, context):
	query = update.callback_query
	query.answer()
	buttons = [
			InlineKeyboardButton("⏰ Тайминг", callback_data='100_1'),
	]
	keyboard = settings.constructor(buttons, settings.COUNT_ROW)
	reply_markup = InlineKeyboardMarkup(keyboard)
	query.edit_message_text(
		"Тайминг (напоминания, уведомления, сообщения)",
		reply_markup=reply_markup,
		parse_mode='Markdown'
	)
	return 'START'
示例#8
0
文件: times.py 项目: slava2498/notes
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'
示例#9
0
文件: times.py 项目: slava2498/notes
def period_detail(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 = NotesClass(user.client, id)

	buttons = []
	for x in PERIOD:
		buttons.append(InlineKeyboardButton(PERIOD[x], callback_data='189_{}_{}'.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.scheduler.file_patch, caption='Выберите период работы'), parse_mode='Markdown')
	return 'TIMING'
示例#10
0
文件: times.py 项目: slava2498/notes
def date_detail(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 = NotesClass(user.client, id)

	req = DateTimeScheduler.delete().where(DateTimeScheduler.state == False)
	req.execute()

	print(228, 'edit' in str(data))
	postfix = ''
	if('edit' in str(data)):
		postfix = 'edit_{}'.format(query.data.split('edit_')[1])
		dateTimeScheduler = DateTimeScheduler.get(DateTimeScheduler.id == query.data.split('edit_')[1])
		scheduler = dateTimeScheduler.scheduler
	else:
		scheduler = Scheduler.get(Scheduler.id == id)
		len_sh = DateTimeScheduler.select().join(Scheduler).where(Scheduler.id == id).count()
		print(len_sh,id)
		if(len_sh < 7):
			DateTimeScheduler.create(scheduler=scheduler)
		else:
			# context.bot.answer_callback_query(callback_query_id=update.callback_query.id, text='Ограничение: 7 напоминаний на заметку', show_alert=True)
			context.bot.send_message(chat_id=query.message.chat_id, text='Ограничение: 7 напоминаний на заметку')
			return 'TIMING'

	buttons = []
	for x in DAYS:
		buttons.append(InlineKeyboardButton(DAYS[x], callback_data='110_{}_{}_in_{}'.format(id, x, postfix)))
	keyboard = settings.constructor(buttons, settings.COUNT_ROW)
	reply_markup = InlineKeyboardMarkup(keyboard)
	reply_markup.inline_keyboard.append([InlineKeyboardButton("↩️ Назад", callback_data='103_{}'.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.scheduler.file_patch, caption='Выберите день недели'), parse_mode='Markdown')
	return 'TIMING'
示例#11
0
文件: times.py 项目: slava2498/notes
def start_over(update, context):
	user = update.message.from_user
	logger.info("User %s init", user.id)

	user = UsersClass(user.id)
	if(user.dialog):
		data = user.dialog.data.split('|')
		step = data[0]
		data = data[1]
		return '{}_{}'.format(step, data)
	else:
		buttons = [
			InlineKeyboardButton("📝 Планировщик", callback_data='100'),
			InlineKeyboardButton("⚠️ Важные даты", callback_data='200'),
		]
		keyboard = settings.constructor(buttons, settings.COUNT_ROW)
		reply_markup = InlineKeyboardMarkup(keyboard)
		update.message.reply_text(
			text="Это ваш персональный планировщик дел на день, неделю, месяц и квартал",
			reply_markup=reply_markup
		)
		return 'TIMING'
示例#12
0
文件: times.py 项目: slava2498/notes
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'
示例#13
0
文件: notes.py 项目: slava2498/notes
    def get(self, paginate):
        self.state = False
        self.scheduler_count = Scheduler.select().join(Clients).where(
            Clients.id == self.client.id).count()
        print(paginate)
        if (self.scheduler_count != 0):
            self.state = True
            if ('note_id' in paginate):
                for x in range(1, self.scheduler_count + 1):
                    for y in Scheduler.select().join(Clients).where(
                            Clients.id == self.client.id).order_by(
                                Scheduler.id.desc()).paginate(
                                    x, paginate['count']):
                        if (int(paginate['note_id']) == y.id):
                            self.scheduler = Scheduler.select().join(
                                Clients).where(
                                    Clients.id == self.client.id).order_by(
                                        Scheduler.id.desc()).paginate(
                                            x, paginate['count'])
                            page = x
                            break
            else:
                page = paginate['page']
                self.scheduler = Scheduler.select().join(Clients).where(
                    Clients.id == self.client.id).order_by(
                        Scheduler.id.desc()).paginate(page, paginate['count'])

            buttons = []
            print(self.scheduler)
            self.scheduler = self.scheduler[0]
            print(self.scheduler)

            if page > 1:
                buttons.append(
                    InlineKeyboardButton("<<",
                                         callback_data='101_{}'.format(page -
                                                                       1)))
            else:
                buttons.append(
                    InlineKeyboardButton("<<",
                                         callback_data='101_{}'.format(
                                             self.scheduler_count)))

            buttons.append(
                InlineKeyboardButton("{}/{}".format(page,
                                                    self.scheduler_count),
                                     callback_data='-'))

            if page < self.scheduler_count:
                buttons.append(
                    InlineKeyboardButton(">>",
                                         callback_data='101_{}'.format(page +
                                                                       1)))
            else:
                buttons.append(
                    InlineKeyboardButton(">>",
                                         callback_data='101_{}'.format(1)))

            buttons.append(
                InlineKeyboardButton("🔧 Настройки",
                                     callback_data='103_{}'.format(
                                         self.scheduler.id)))
            buttons.append(
                InlineKeyboardButton("✅ Добавить", callback_data='104'))
            keyboard = settings.constructor(buttons, 3)
            self.reply_markup = InlineKeyboardMarkup(keyboard)
            self.reply_markup.inline_keyboard.append([
                InlineKeyboardButton("❌ Удалить",
                                     callback_data='105_{}'.format(
                                         self.scheduler.id))
            ])
示例#14
0
文件: sender.py 项目: slava2498/notes
def main(context: telegram.ext.CallbackContext):
    now = datetime.now(pytz.timezone('Europe/Kiev'))
    today = now.today()
    day = today.weekday()

    hour = now.hour
    minute = now.minute
    num_days = now.day
    month = now.month
    year = now.year

    print(year, month, num_days, day + 1, hour, minute)
    datesh = DateTimeScheduler.select().where(
        DateTimeScheduler.num_day == str(day + 1),
        DateTimeScheduler.hour == hour, DateTimeScheduler.minute == minute,
        DateTimeScheduler.send == False, DateTimeScheduler.end == False,
        DateTimeScheduler.state == True)
    important = Important.select().where(Important.month == month,
                                         Important.day == num_days,
                                         Important.hour == hour,
                                         Important.minute == minute,
                                         Important.send == False,
                                         Important.end == False)

    for x in datesh:
        state = False
        if (x.scheduler.mode == 'onetime'):
            state = True
            x.end = True

        if (x.scheduler.period == 'week' and
            (x.time_send is None or now >
             datetime.fromisoformat(x.time_send) + relativedelta(weeks=1))):
            state = True
            x.send = True
            x.time_send = now
            x.save()
        elif (x.scheduler.period == '2week' and
              (x.time_send is None or now >
               datetime.fromisoformat(x.time_send) + relativedelta(weeks=2))):
            state = True
            x.send = True
            x.time_send = now
            x.save()
        elif (x.scheduler.period == 'month' and
              (x.time_send is None or now >
               datetime.fromisoformat(x.time_send) + relativedelta(months=1))):
            state = True
            x.send = True
            x.time_send = now
            x.save()

        if (state):
            sh = Scheduler.select().where(Scheduler.id == x.scheduler_id)
            buttons = [
                InlineKeyboardButton("Больше не напоминать ❌",
                                     callback_data='555_{}'.format(sh.id)),
            ]
            keyboard = settings.constructor(buttons, settings.COUNT_ROW)
            reply_markup = InlineKeyboardMarkup(keyboard)
            if (sh[0].file_patch != settings.MEDIA_TECH):
                context.bot.sendPhoto(chat_id=sh[0].client.chat_id,
                                      photo=sh[0].file_patch,
                                      caption=sh[0].body,
                                      reply_markup=reply_markup,
                                      parse_mode='Markdown')
            else:
                context.bot.send_message(
                    chat_id=sh[0].client.chat_id,
                    text=sh[0].body,
                    parse_mode='Markdown',
                    reply_markup=reply_markup,
                )

        req = DateTimeScheduler.update(send=False).where(
            DateTimeScheduler.num_day != str(day),
            DateTimeScheduler.hour != hour, DateTimeScheduler.minute != minute,
            DateTimeScheduler.send == True, DateTimeScheduler.end == False)
        req.execute()

    for x in important:
        state = False
        if (x.mode == 'onetime'):
            state = True
            x.end = True

        if (x.time_send is None or now >
                datetime.fromisoformat(x.time_send) + relativedelta(year=1)):
            state = True
            x.send = True
            x.time_send = now
            x.save()

        if (state):
            buttons = [
                InlineKeyboardButton("Больше не напоминать ❌",
                                     callback_data='556_{}'.format(x.id)),
            ]
            keyboard = settings.constructor(buttons, settings.COUNT_ROW)
            reply_markup = InlineKeyboardMarkup(keyboard)
            if (x.file_patch != settings.MEDIA_TECH):
                context.bot.sendPhoto(chat_id=x.client.chat_id,
                                      photo=x.file_patch,
                                      caption=x.body,
                                      reply_markup=reply_markup,
                                      parse_mode='Markdown')
            else:
                context.bot.send_message(
                    chat_id=x.client.chat_id,
                    text=x.body,
                    parse_mode='Markdown',
                    reply_markup=reply_markup,
                )
示例#15
0
文件: dialog.py 项目: slava2498/notes
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)