async def delete_sticker(message: types.Message, state: FSMContext): if not message.text.isdigit(): await message.answer('id состоит из цифр если что))') return try: Sticker.get(id=message.text).delete_instance() except Sticker.DoesNotExist: await message.answer(f'стикера с id: {message.text} - не существует') return await state.finish() await message.answer('Стикер успешно удален', reply_markup=Markup.after_cancel())
async def get_sticker(message: types.Message): try: stick = Sticker.get(stick_uniq=message.sticker.file_unique_id) except Sticker.DoesNotExist: await message.answer('К сожелению такова стикера нету') return await send_stick(message, stick)
async def create_sticker(message: types.Message, state: FSMContext): if Sticker.select().where( Sticker.stick_uniq == message.sticker.file_unique_id): await message.answer('Такой стикер уже существует') stick = Sticker.get(stick_uniq=message.sticker.file_unique_id) await send_stick(message, stick) state.finish() return await state.update_data(sticker_id=message.sticker.file_id, sticker_uniq_id=message.sticker.file_unique_id) await message.answer('Придумайте название для стикера', reply_markup=Markup.every_state()) await SSticker.name.set()
async def name_sticker(message: types.Message, state: FSMContext): slen = Sticker.name.max_length if len(message.text) > slen: await message.answer( f'Минимальная длинна названия стикера - {slen} символов') return data = await state.get_data() name = message.text[0].upper() + message.text[1:] user = User.get(chat_id=message.chat.id) Sticker.create(sticker=data['sticker_id'], stick_uniq=data['sticker_uniq_id'], name=name, author=user) await state.finish() await message.answer(f'Стикер {name} создан успешно\nid:') await message.answer(Sticker.get(stick_uniq=data['sticker_uniq_id']).id) await message.answer_sticker(data['sticker_id'], reply_markup=Markup.after_cancel())