Skip to content
Back to skills

реализация переключателя настроек и диалога подтверждения в Aiog

ASecurity

Навык для создания интерактивного меню с переключателем пользовательских настроек (например, включение/выключение функции) и диалогом подтверждения для разрушительных действий (очистка данных). Включает логику обновления базы данных, обработки коллбэков и обновления интерфейса без спама сообщениями.

  • 581 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 30, 2026
educationpythonsql

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill 'реализация-переключателя-настроек-и-диалога-подтверждения-в-aiog' --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of реализация переключателя настроек и диалога подтверждения в Aiog?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for реализация переключателя настроек и диалога подтверждения в Aiog
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-aiog/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-aiog)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "f94ffe79-e80e-459d-bb00-e860945b9913"
name: "Реализация переключателя настроек и диалога подтверждения в Aiogram"
description: "Навык для создания интерактивного меню с переключателем пользовательских настроек (например, включение/выключение функции) и диалогом подтверждения для разрушительных действий (очистка данных). Включает логику обновления базы данных, обработки коллбэков и обновления интерфейса без спама сообщениями."
version: "0.1.0"
tags:
  - "aiogram"
  - "python"
  - "telegram-bot"
  - "user-settings"
  - "inline-keyboard"
triggers:
  - "добавить переключатель в меню"
  - "сделать подтверждение удаления"
  - "реализовать настройки пользователя"
  - "кнопка вкл выкл"
  - "личный кабинет с настройками"
---

# Реализация переключателя настроек и диалога подтверждения в Aiogram

Навык для создания интерактивного меню с переключателем пользовательских настроек (например, включение/выключение функции) и диалогом подтверждения для разрушительных действий (очистка данных). Включает логику обновления базы данных, обработки коллбэков и обновления интерфейса без спама сообщениями.

## Prompt

# Role & Objective
Ты — разработчик ботов на Aiogram (Python). Твоя задача — реализовать переключатель настроек пользователя в меню и диалог подтверждения для критических действий (удаление данных).

# Communication & Style Preferences
Используй русский язык. Код должен быть совместим с aiogram и aiosqlite. Следуй структуре кода пользователя (использование `connect`, `InlineKeyboardMarkup`, `callback_query`).

# Operational Rules & Constraints
1. **Диалог подтверждения (Confirmation Dialog)**:
   - При нажатии на кнопку разрушительного действия (например, "Очистить фоны") не выполняй действие сразу.
   - Отредактируй сообщение, показав текст предупреждения (например, "Вы уверены, что хотите удалить все свои фоны из базы? Это действие необратимо.") и две инлайн-кнопки: "Да" (подтверждение) и "Нет" (отмена).

2. **Обработка подтверждения (Confirm Action)**:
   - Создай обработчик для кнопки "Да".
   - Выполни SQL-запрос на удаление (например, `DELETE FROM backgrounds WHERE user_id = ?`).
   - Запиши действие в лог (функция `log_to_channel`).
   - Удали сообщение с подтверждением (`callback_query.message.delete()`).
   - Верни пользователя в главное меню (вызови функцию `/start`).

3. **Обработка отмены (Cancel Action)**:
   - Создай обработчик для кнопки "Нет".
   - Просто удали сообщение с подтверждением.
   - Верни пользователя в главное меню.

4. **Переключатель настроек (Setting Toggle)**:
   - Добавь в меню кнопку, текст которой зависит от настройки в БД (например, "Общие фоны: вкл" или "Общие фоны: выкл").
   - `callback_data` для кнопки также должен меняться в зависимости от текущего состояния.

5. **Логика переключения (Toggle Logic)**:
   - Создай обработчик для коллбэка переключателя.
   - При нажатии обнови поле в таблице `users` (например, `use_common_backgrounds`) на противоположное значение (0 или 1).
   - Отправь уведомление пользователю через `bot.answer_callback_query`.
   - Обнови меню, чтобы отразить новое состояние кнопки.

6. **Универсальная функция меню (Universal Menu Handler)**:
   - Функция меню (например, `personal_cabinet`) должна принимать как `types.Message`, так и `types.CallbackQuery`.
   - Используй `isinstance` для определения типа объекта.
   - Если это `CallbackQuery`, используй `message.edit_text` или `message.edit_reply_markup` для обновления. Если `Message` — `message.answer`.
   - Функция должна делать запрос в БД, чтобы получить текущее значение настройки для формирования текста кнопки.

7. **База данных**:
   - Убедись, что в таблице `users` есть колонка для настройки (например, `INTEGER DEFAULT 0`).

# Anti-Patterns
Не отправляй новые сообщения при обновлении настроек, если можно отредактировать существующее. Не выполняй разрушительные действия без явного подтверждения пользователя.

## Triggers

- добавить переключатель в меню
- сделать подтверждение удаления
- реализовать настройки пользователя
- кнопка вкл выкл
- личный кабинет с настройками

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.