Для избавления от двойного отправления сообщений и настройки бота так, чтобы он не отправлял результаты в группу, вы можете использовать переменные состояния (state) для отслеживания текущего состояния бота и условных операторов для контроля логики отправки сообщений.
Например, вы можете добавить переменную состояния "testing" и установить ее значение в "True", когда пользователь начинает тестирование. Затем, при запросе результатов теста, проверять значение этой переменной и отправлять результаты только если она установлена в "True". После завершения тестирования, установите значение "testing" в "False".
Что касается проблемы с админкой и дублированием запросов о пользователе после завершения теста, вы можете добавить проверку наличия пользователя в базе данных перед началом теста. Если пользователь уже есть в базе данных, вы можете предложить ему пройти тест еще раз или отправить результаты предыдущего теста.
Примерно так может выглядеть корректировка фрагмента кода:
```python
state = {}
@bot.message_handler(commands=['start'])
def start_test(message):
if message.chat.id not in state:
state[message.chat.id] = {}
if not state[message.chat.id].get('user_exists', False):
# Проверяем, есть ли пользователь в базе данных
if not user_already_exists(message.from_user.id):
add_user_to_database(message.from_user.id, message.from_user.username)
state[message.chat.id]['user_exists'] = True
## начало теста
@bot.message_handler(commands=['results'])
def get_results(message):
if message.chat.id in state and state[message.chat.id].get('testing', False):
# Отправляем результаты теста
bot.send_message(message.chat.id, "Результаты теста...")
else:
bot.send_message(message.chat.id, "Пройдите тест перед запросом результатов.")
def add_user_to_database(user_id, username):
# Добавить пользователя в базу данных
def user_already_exists(user_id):
# Проверить, есть ли пользователь в базе данных
```
Надеюсь, эти рекомендации помогут вам настроить бота так, чтобы он корректно обрабатывал запросы пользователей и не отправлял ненужные сообщения.