async def edit_profile_age_step2(message: types.Message, state: FSMContext):
    '''Функция для обновления возвраста в бд'''
    await send_log(message)
    try:
        if str(message.text) == 'Отменить❌':
            await state.finish()
            await magic_start(message)

            return
        elif int(message.text) < 6:
            await message.answer('ой🤭\nТы чёт маловат...')
            await message.answer(cus_ans.random_reapeat_list())

            #прерывание функции
            return
        elif int(message.text) > 54:
            await message.answer('Пажилой человек👨‍')
            await message.answer(cus_ans.random_reapeat_list())

            #прерывание функции
            return
        elif int(message.text) > 6 and int(message.text) < 54:
            await message.answer(
                'Малый повзрослел получается🤗\n\nВозвраст успешно измененён!')
            await state.update_data(edit_profile_age=message.text)
            user_data = await state.get_data()

            db.edit_age(user_data['edit_profile_age'],
                        str(message.from_user.id))
            await state.finish()
            await edit_profile(message)
    except Exception as e:
        await message.answer(cus_ans.random_reapeat_list())
        photorint(e)
        return
async def delete_profile(message: types.Message):
    '''Функция для удаления анкеты'''
    await send_log(message)
    try:
        db.delete_profile(message.from_user.id)
        await message.answer('Анкета успешно удалена!')
        await magic_start(message)
    except:
        await message.answer(cus_ans.random_reapeat_list())
        return
async def edit_profile_again(message: types.Message):
    '''Функция для заполнения анкеты заново'''
    await send_log(message)
    try:
        db.delete_profile(message.from_user.id)
        await create_profile(message)

    except Exception as e:
        await message.answer(cus_ans.random_reapeat_list())
        print(e)
        return
async def search_profile(message: types.Message):
    '''Функция для ввода пользователя своего города,последующей записи в бд'''
    await send_log(message)
    try:
        if db.profile_exists(message.from_user.id) == False:
            await message.answer(
                'У тебя нет анкеты, заполни её а потом приходи сюда!')
        else:
            await message.answer('Выбери город для поиска человечка :)')
            await SearchProfile.city_search.set()
    except Exception as e:
        await message.answer(cus_ans.random_reapeat_list())
        await state.finish()
        print(e)
        return
async def create_profile_age(message: types.Message, state: FSMContext):
    try:
        if str(message.text) == 'Выйти❌':
            await state.finish()
            await magic_start(message)
            return
        if int(message.text) < 6:
            await message.answer('ой🤭\nТы чёт маловат...')
            await message.answer(cus_ans.random_reapeat_list())

            #прерывание функции
            return
        elif int(message.text) > 54:
            await message.answer('Пажилой человек👨‍')
            await message.answer(cus_ans.random_reapeat_list())

            #прерывание функции
            return
        elif int(message.text) > 6 and int(message.text) < 54:
            await state.update_data(profile_age=message.text)
            #кнопки меню
            button_skip = KeyboardButton('Пропустить')

            skip_input = ReplyKeyboardMarkup(one_time_keyboard=True)
            skip_input.add(button_skip)
            await message.answer(
                'За№бись!!\nПоследний шаг - указать ссылку на свой инстаграмм🤑\nЕсли нет желания - можно пропустить➡🔜',
                reply_markup=skip_input)
            await CreateProfile.next()
        else:
            await answer.message('Укажи правильный возраст, только цифры')
            return
    except:
        await message.answer(cus_ans.random_reapeat_list())
        #прерывание функции
        return
async def create_profile_social_link(message: types.Message,
                                     state: FSMContext):
    try:
        if str(message.text) == 'Выйти❌':
            await state.finish()
            await magic_start(message)
            return
        if str(message.text) == 'Пропустить':
            await message.answer('Анкета успешно создана!')
            user_data = await state.get_data()
            db.create_profile(
                message.from_user.id, message.from_user.username,
                str(user_data['profile_name']),
                str(user_data['profile_description']),
                str(user_data['profile_city']),
                'photo/' + str(message.from_user.id) + '.jpg',
                str(user_data['profile_sex']), str(user_data['profile_age']),
                None
            )  #self,telegram_id,telegram_username,name,description,city,photo,sex,age,social_link
            await state.finish()
            await magic_start(message)
        elif str(message.text).startswith('https://www.instagram.com/'):
            await state.update_data(profile_link=message.text)
            await message.answer('Анкета успешно создана!')
            user_data = await state.get_data()
            db.create_profile(
                message.from_user.id, message.from_user.username,
                str(user_data['profile_name']),
                str(user_data['profile_description']),
                str(user_data['profile_city']),
                'photo/' + str(message.from_user.id) + '.jpg',
                str(user_data['profile_sex']), str(user_data['profile_age']),
                str(user_data['profile_link'])
            )  #self,telegram_id,telegram_username,name,description,city,photo,sex,age,social_link
            await state.finish()
            await magic_start(message)
        else:
            await message.answer(
                'Ссылка корявая!!\n\nОна должна начинаться с https://www.instagram.com/\n\nК примеру - https://www.instagram.com/helloworldbastard/'
            )

            return

    except:
        await message.answer(cus_ans.random_reapeat_list())
        #прерывание функции
        return
async def create_profile_sex(message: types.Message, state: FSMContext):
    if str(message.text) == 'Выйти❌':
        await state.finish()
        await magic_start(message)
        return
    if message.text == 'Мужчина' or message.text == 'Женщина':
        await state.update_data(profile_sex=message.text.lower())
        await message.answer(
            'Замечательно!\nОсталось совсем чуть-чуть\n\nДавай же узнаем твой возвраст, что бы не сидеть восьмёрку лет если что👮‍♂️ '
        )
        await CreateProfile.next()
    elif message.text == 'Картошка🥔':
        await message.answer(cus_ans.joke_first())
        #прерывание функции
        return
    else:
        await message.answer(cus_ans.random_reapeat_list())
        #прерывание функции
        return
async def create_profile_city(message: types.Message, state: FSMContext):
    if str(message.text) == 'Выйти❌':
        await state.finish()
        await magic_start(message)
        return
    if len(message.text) < 35 and (not str(message.text)
                                   in cus_ans.ban_symvols):
        await state.update_data(profile_city=message.text.lower())
        await message.answer(
            'Прелестно, теперь добавим фотокарточку, что бы все знали какая ты красавица(хихи)🖼\n\nВажно отправлять фотографией, а не файлом!'
        )
        await CreateProfile.next()
    elif str(message.text) in cus_ans.ban_symvols:
        await message.answer(
            'У тебя в сообщении запрещённые символы🤬🤬\nЗапятая к примеру')
    else:
        await message.answer(cus_ans.random_reapeat_list())
        #прерывание функции
        return
async def create_profile_description(message: types.Message,
                                     state: FSMContext):
    if str(message.text) == 'Выйти❌':
        await state.finish()
        await magic_start(message)
        return
    if len(message.text) < 35 and (not str(message.text)
                                   in cus_ans.ban_symvols):
        await state.update_data(profile_description=message.text)
        await message.answer(
            'Неплохо,неплохо\n\nТеперь предлагаю заполнить город где вы собираетесь трепить🤪'
        )
        await CreateProfile.next()
    elif str(message.text) in cus_ans.ban_symvols:
        await message.answer(
            'У тебя в сообщении запрещённые символы🤬🤬\nЗапятая к примеру')
    else:
        await message.answer(cus_ans.random_reapeat_list())
        #прерывание функции
        return
async def create_profile_name(message: types.Message, state: FSMContext):
    if str(message.text) == 'Выйти❌':
        await state.finish()
        await magic_start(message)
        return
    if len(str(message.text)) < 35 and (not str(message.text)
                                        in cus_ans.ban_symvols):
        await state.update_data(profile_name=message.text.lower())
        await message.reply(
            message.text.title() +
            ' - п*здатое имя😉\nТеперь заполни описание своей личности что бы все поняли кто же ты : \n - инопланетянин👽\n - дурак🤡 \n - гигант мысли🧠 \n - отец русской демократии👪 \n\nбез этого никак прости :9'
        )
        await CreateProfile.next()
    elif str(message.text) in cus_ans.ban_symvols:
        await message.answer(
            'У тебя в сообщении запрещённые символы🤬🤬\nЗапятая к примеру')
    else:
        await message.answer(cus_ans.random_reapeat_list())
        #прерывание функции
        return
async def edit_profile_age(message: types.Message):
    try:
        #кнопки для отмены
        button_cancel = KeyboardButton('Отменить❌')

        button_cancel_menu = ReplyKeyboardMarkup(one_time_keyboard=True)

        button_cancel_menu.add(button_cancel)

        if message.text == 'Изменить количество годиков👶':
            await message.answer('Введи свой новый возвраст',
                                 reply_markup=button_cancel_menu)
            await EditProfile.age_edit.set()
        elif message.text == 'Изменить описание анкеты📝':
            await message.answer('Введи новое хайп описание своей анкеты!',
                                 reply_markup=button_cancel_menu)
            await EditProfile.description_edit.set()
    except Exception as e:
        await message.answer(cus_ans.random_reapeat_list())
        print(e)
        return
async def edit_profile_description(message: types.Message, state: FSMContext):
    '''Функция для обновления описания в бд'''
    await send_log(message)
    try:
        if str(message.text) == 'Отменить❌':
            await state.finish()
            await magic_start(message)

            return
        await message.answer(
            'Прекрасное описание броди\n\nОписание успешно изменено!')
        await state.update_data(edit_profile_description=message.text)
        user_data = await state.get_data()

        db.edit_description(user_data['edit_profile_description'],
                            str(message.from_user.id))
        await state.finish()
        await edit_profile(message)
    except Exception as e:
        await message.answer(cus_ans.random_reapeat_list())
        print(e)
        return
async def edit_profile(message: types.Message):
    '''Функция для меню редактирования анкеты'''
    await send_log(message)
    try:
        if (not db.profile_exists(message.from_user.id)):
            await message.answer('У тебя нет анкеты!')
        elif (db.profile_exists(message.from_user.id)):
            photo = open('photo_user/' + str(message.from_user.id) + '.jpg',
                         'rb')
            #кнопки выбора пола
            button_again = KeyboardButton('Заполнить анкету заново🔄')

            button_edit_description = KeyboardButton(
                'Изменить описание анкеты📝')

            button_edit_age = KeyboardButton('Изменить количество годиков👶')

            button_cancel = KeyboardButton('Выйти❌')

            edit_profile = ReplyKeyboardMarkup(one_time_keyboard=True)
            edit_profile.add(button_again, button_edit_description,
                             button_edit_age, button_cancel)
            caption = 'Твоя анкета:\n\nИмя - ' + str(
                db.all_profile(str(message.from_user.id))[0]
                [3]).title() + '\nОписание - ' + str(
                    db.all_profile(str(message.from_user.id))[0]
                    [4]) + '\nМесто жительство🌎 - ' + str(
                        db.all_profile(str(message.from_user.id))[0]
                        [5]).title() + '\nСколько годиков?) - ' + str(
                            db.all_profile(str(message.from_user.id))[0][8])
            await message.answer_photo(photo,
                                       caption=caption,
                                       reply_markup=edit_profile)
            photo.close()
    except Exception as e:
        await message.answer(cus_ans.random_reapeat_list())
        print(e)
        return
async def rating_profile(message: types.Message):
    '''Возвращает рейтинг анкет'''
    await send_log(message)
    try:
        final_top = ''
        top_count = 0
        for i in db.top_rating():
            for d in i:
                top_count += 1
                rofl_list = [
                    '\nебааа#ь ты жёсткий😳', '\nвасап👋', '\nбро полегче там😮',
                    '\nгений🧠', '\nреспект🤟'
                ]
                final_top = final_top + str(top_count) + ' место - ' + str(
                    db.get_info(str(d))[3]).title() + ' из города ' + str(
                        db.get_info(str(d))[5]).title() + rofl_list[top_count -
                                                                    1] + '\n'
        await message.answer(
            f'Рейтинг самых п#здатых в этом чат боте😎\nОчки рейтинга получаются с помощью активностей в боте😎\n\n{final_top}'
        )
    except Exception as e:
        await message.answer(cus_ans.random_reapeat_list())
        print(e)
async def seach_profile_step3(message: types.Message, state: FSMContext):
    '''Функция поиска анкет после отправки пользователя своей оценки(лайк,дизлайк,репорт)'''
    await send_log(message)
    try:
        if str(message.text) == '👍':
            if str(message.text) == '/start' or str(message.text) == 'Выйти❌':
                await state.finish()
                await magic_start(message)

            user_data = await state.get_data()

            try:
                profile_id = db.search_profile(
                    str(db.get_info_user(str(message.from_user.id))[6]),
                    str(db.get_info(str(message.from_user.id))[8]),
                    str(db.get_info(str(
                        message.from_user.id))[7]))[db.search_profile_status(
                            str(message.from_user.id))[0]][0]
            except IndexError:
                db.edit_zero_profile_status(message.from_user.id)
                profile_id = db.search_profile(
                    str(db.get_info_user(str(message.from_user.id))[6]),
                    str(db.get_info(str(message.from_user.id))[8]),
                    str(db.get_info(str(
                        message.from_user.id))[7]))[db.search_profile_status(
                            str(message.from_user.id))[0]][0]
            except Exception as e:
                print(e)
                await state.finish()
                await magic_start(message)
            await state.update_data(last_profile_id=profile_id)
            if db.add_like_exists(str(message.from_user.id),
                                  user_data['last_profile_id']) == False:
                db.add_like(str(message.from_user.id),
                            user_data['last_profile_id'])
                db.up_rating(
                    db.check_rating(profile_id)[0],
                    user_data['last_profile_id'])
            db.edit_profile_status(
                str(message.from_user.id),
                db.search_profile_status(str(message.from_user.id))[0])
            name_profile = str(db.get_info(profile_id)[3])
            age_profile = str(db.get_info(profile_id)[8])
            description_profile = str(db.get_info(profile_id)[4])
            social_link_profile = str(db.get_info(profile_id)[9])
            photo_profile = open('photo_user/' + str(profile_id) + '.jpg',
                                 'rb')

            city = str(user_data['search_profile_city']).title()

            final_text_profile = f'Смотри, кого для тебя нашёл☺️\n\n{name_profile},{age_profile},{city}\n{description_profile}'

            await message.answer_photo(photo_profile,
                                       caption=final_text_profile)

            name_profile_self = str(db.get_info(str(message.from_user.id))[3])
            age_profile_self = str(db.get_info(str(message.from_user.id))[8])
            description_profile_self = str(
                db.get_info(str(message.from_user.id))[4])
            social_link_profile_self = str(
                db.get_info(str(message.from_user.id))[9])
            photo_profile_self = open(
                'photo_user/' + str(message.from_user.id) + '.jpg', 'rb')

            final_text_profile_self = f'Тобой кто то заинтересовался!\nСам в шоке😮..\n\n{name_profile_self},{age_profile_self},{city}\n{description_profile_self}\n\nЧего ты ждёшь,беги знакомиться - @{str(message.from_user.username)}'

            await bot.send_photo(user_data['last_profile_id'],
                                 photo_profile_self,
                                 caption=final_text_profile_self)

            return
            await state.finish()
        elif str(message.text) == '👎':
            if str(message.text) == '/start' or str(message.text) == 'Выйти❌':
                await state.finish()
                await magic_start(message)

            user_data = await state.get_data()

            try:
                profile_id = db.search_profile(
                    str(db.get_info_user(str(message.from_user.id))[6]),
                    str(db.get_info(str(message.from_user.id))[8]),
                    str(db.get_info(str(
                        message.from_user.id))[7]))[db.search_profile_status(
                            str(message.from_user.id))[0]][0]
            except IndexError:
                db.edit_zero_profile_status(message.from_user.id)
                profile_id = db.search_profile(
                    str(db.get_info_user(str(message.from_user.id))[6]),
                    str(db.get_info(str(message.from_user.id))[8]),
                    str(db.get_info(str(
                        message.from_user.id))[7]))[db.search_profile_status(
                            str(message.from_user.id))[0]][0]
            except Exception as e:
                print(e)
                await state.finish()
                await magic_start(message)

            await state.update_data(last_profile_id=profile_id)

            db.edit_profile_status(
                str(message.from_user.id),
                db.search_profile_status(str(message.from_user.id))[0])
            name_profile = str(db.get_info(profile_id)[3])
            age_profile = str(db.get_info(profile_id)[8])
            description_profile = str(db.get_info(profile_id)[4])
            social_link_profile = str(db.get_info(profile_id)[9])
            photo_profile = open('photo_user/' + str(profile_id) + '.jpg',
                                 'rb')

            city = str(user_data['search_profile_city']).title()

            final_text_profile = f'Смотри, кого для тебя нашёл☺️\n\n{name_profile},{age_profile},{city}\n{description_profile}'

            await message.answer_photo(photo_profile,
                                       caption=final_text_profile)
        elif str(message.text) == 'Репорт👺':

            if str(message.text) == '/start' or str(message.text) == 'Выйти❌':
                await state.finish()
                await magic_start(message)

            user_data = await state.get_data()

            try:
                profile_id = db.search_profile(
                    str(db.get_info_user(str(message.from_user.id))[6]),
                    str(db.get_info(str(message.from_user.id))[8]),
                    str(db.get_info(str(
                        message.from_user.id))[7]))[db.search_profile_status(
                            str(message.from_user.id))[0]][0]
            except IndexError:
                db.edit_zero_profile_status(message.from_user.id)
                profile_id = db.search_profile(
                    str(db.get_info_user(str(message.from_user.id))[6]),
                    str(db.get_info(str(message.from_user.id))[8]),
                    str(db.get_info(str(
                        message.from_user.id))[7]))[db.search_profile_status(
                            str(message.from_user.id))[0]][0]
            except Exception as e:
                print(e)
                await state.finish()
                await magic_start(message)
            #отправка репорта
            await state.update_data(last_profile_id=profile_id)
            if (db.report_exists(str(message.from_user.id),
                                 user_data['last_profile_id']) == False):
                db.throw_report(str(message.from_user.id),
                                user_data['last_profile_id'])
                await message.answer(
                    'Репорт отправлен!\nСпасибо за улучшение комьюнити🥰')
            else:
                await message.answer(
                    'У вас уже есть репорт на данную анкету!\nЧёж вы его так хейтите..😦'
                )
            db.edit_profile_status(
                str(message.from_user.id),
                db.search_profile_status(str(message.from_user.id))[0])

            name_profile = str(db.get_info(profile_id)[3])
            age_profile = str(db.get_info(profile_id)[8])
            description_profile = str(db.get_info(profile_id)[4])
            social_link_profile = str(db.get_info(profile_id)[9])
            photo_profile = open('photo_user/' + str(profile_id) + '.jpg',
                                 'rb')

            city = str(user_data['search_profile_city']).title()

            final_text_profile = f'Смотри, кого для тебя нашёл☺️\n\n{name_profile},{age_profile},{city}\n{description_profile}'

            await message.answer_photo(photo_profile,
                                       caption=final_text_profile)
        elif str(message.text) == 'Всячина👜':
            await other(message)
        elif str(message.text) == 'Откат действий◀️':
            await backup(message)
        else:
            await state.finish()
            await magic_start(message)
    except Exception as e:
        await message.answer(cus_ans.random_reapeat_list())
        await state.finish()
        await magic_start(message)
        print(e)
        return
async def seach_profile_step2(message: types.Message, state: FSMContext):
    '''Функция поиска анкет после отправки пользователя своего города'''
    await send_log(message)
    try:
        await state.update_data(search_profile_city=message.text.lower())

        user_data = await state.get_data()

        db.set_city_search(str(user_data['search_profile_city']),
                           str(message.from_user.id))
        if (bool(
                len(
                    db.search_profile(
                        str(db.get_info_user(str(message.from_user.id))[6]),
                        str(db.get_info(str(message.from_user.id))[8]),
                        str(db.get_info(str(message.from_user.id))[7]))))):
            try:
                profile_id = db.search_profile(
                    str(db.get_info_user(str(message.from_user.id))[6]),
                    str(db.get_info(str(message.from_user.id))[8]),
                    str(db.get_info(str(
                        message.from_user.id))[7]))[db.search_profile_status(
                            str(message.from_user.id))[0]][0]
            except:
                db.edit_zero_profile_status(message.from_user.id)
                profile_id = db.search_profile(
                    str(db.get_info_user(str(message.from_user.id))[6]),
                    str(db.get_info(str(message.from_user.id))[8]),
                    str(db.get_info(str(
                        message.from_user.id))[7]))[db.search_profile_status(
                            str(message.from_user.id))[0]][0]
            await state.update_data(last_profile_id=profile_id)
            db.edit_profile_status(
                str(message.from_user.id),
                db.search_profile_status(str(message.from_user.id))[0])

            #кнопки для оценки
            button_like = KeyboardButton('👍')

            button_dislike = KeyboardButton('👎')

            button_other = KeyboardButton('Всячина👜')

            button_report = KeyboardButton('Репорт👺')

            mark_menu = ReplyKeyboardMarkup()

            mark_menu.add(button_dislike, button_like, button_report,
                          button_other)

            name_profile = str(db.get_info(profile_id)[3])
            age_profile = str(db.get_info(profile_id)[8])
            description_profile = str(db.get_info(profile_id)[4])
            social_link_profile = str(db.get_info(profile_id)[9])
            photo_profile = open('photo_user/' + str(profile_id) + '.jpg',
                                 'rb')

            city = str(db.get_info_user(message.from_user.id)[6]).title()

            final_text_profile = f'Смотри, кого для тебя нашёл☺️\n\n{name_profile},{age_profile},{city}\n{description_profile}'

            await message.answer_photo(photo_profile,
                                       caption=final_text_profile,
                                       reply_markup=mark_menu)

            await SearchProfile.next()
        else:
            await message.answer('Такого города нет или там нет анкет :(')
            await state.finish()
    except Exception as e:
        await message.answer(cus_ans.random_reapeat_list())
        await state.finish()
        await magic_start(message)
        print(e)