- Установка библиотек
- Команды приложения
- Настройки приложения
- Заполнение базы данных (примеры)
- Встроенные команды бота
- Панель администратора
pip install -r requirements.txt
Запуск приложения:
python main.py
Создание и добавление информации в базу данных:
python main.py new_db new_database.db
Расширение названия базы данных должно быть .db.
Настройки приложения находятся в файле setting.json
- "NAME_DB" - название базы.
- "BOT_TOKEN" - токен телеграм бота.
- "WELCOME_MESSAGE" - сообщение приветствия бота.
- "PASSWORD_REGISTRATION" - пароль для регистрации пользователя (если не задано, то генерируется случайное число).
Для создания меню необходимо добавить запись в таблицу Menu.
id_menu | name_menu | id_template | id_type_menu |
---|---|---|---|
1 | 1 | 1 | 1 |
1 | 1 | 2 | 2 |
1 | 1 | 1 | 1 |
Имя меню (name_menu) должно быть уникальным. Подробнее о id_template и id_type_menu смотрите в таблицах Template и Type_Menu.
Для добавления кнопок в меню необходимо добавить запись в таблицу Button. Затем необходимо связать id_menu (см. Menu) и id_button (см. Button) посредством добавления записи в таблицу List_Buttons.
id_button | name_button | callback_data | line | id_event |
---|---|---|---|---|
1 | button1 | callback1 | 1 | 1 |
2 | button2 | callback2 | 2 | 2 |
3 | button3 | callback3 | 1 | 3 |
Поле line определяет количество кнопок в ряду, при этом если в ряду 2 кнопки (вторая запись), то значение следующей записи (третья запись) игнорируется и выполняется переход на последующую запись. Подробнее о id_event смотрите в таблице Event.
id_list_buttons | id_menu | id_button |
---|---|---|
1 | 1 | 1 |
2 | 1 | 2 |
3 | 1 | 3 |
Для того чтобы при нажатии на кнопку выполнялся переход в соответствующее меню необходимо добавить запись в таблицу List_Void_Menu с требуемыми id_menu (см. Menu) и id_button (см. Button).
id_list_void_menu | id_menu | id_button |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Таблица Key_Word содержит все возможные ключевые слова, которые не повторяются (являются уникальными). Для связывания ключевого слова по которому будет выполняться переход в соответствующее меню необходимо добавить запись в таблицу List_Key_Words с опредленными id меню и ключевого слова.
id_key_word | word |
---|---|
1 | key_word1 |
2 | key_word2 |
3 | key_word3 |
id_list_key_words | id_menu | id_key_word |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Таблица Information содержит различную информацию (см. Type_Information). Для того чтобы задать тип добавленной информации необходимо добавить запись в таблицу List_Information с соответствующими id_information (см. Information) и id_type_infromation (см. Type_Information).
id_information | id_information |
---|---|
1 | information1 |
2 | information2 |
3 | information3 |
id_list_infromation | id_infromation | id_type_infromation |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Добавление информации о пользователе в таблицу User выполняется автоматически при регистрации пользователя или добавлением записи в базу данных. Для задания категории пользователя необходимо иметь права администратора (см. панель администратора), изначально все зарегистрированные пользователи имеют категорию "Пользователь". Информация о категории пользователя содержится в таблице List_Users.
id_user | name_account | id_account |
---|---|---|
1 | anecdote1 | 1424242646 |
2 | anecdote2 | 2545454454 |
3 | anecdote3 | 3663532232 |
id_list_users | id_user | id_category_users |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Информация об анекдотах находится в таблице Anecdote, добавление анекдотов сводится добавлением записи в эту таблицу.
id_anecdote | text_anecdote |
---|---|
1 | anecdote1 |
2 | anecdote2 |
3 | anecdote3 |
Таблица Event содержит информацию о возможных событиях при нажатии кнопки (см. Button).
id_event | name_event |
---|---|
1 | Переход в другое меню |
2 | Смена изображения вперед |
3 | Смена изображения назад |
Таблица Template содержит информацию о шаблоне меню (см. Menu).
id_template | name_template |
---|---|
1 | Текст |
2 | Текст с картинкой |
3 | Изменение текста с картинкой |
4 | Изменение текста |
5 | Текст с файлом |
Таблица Type_Information содержит информацию о типе информации (см. Information). Типы "Изображение" и "Файл" представляют собой информацию о пути к файлам .jpg и .doc.
id_type_information | name_type |
---|---|
1 | Текст |
2 | Изображение |
3 | Файл |
Таблица Type_Menu содержит информацию о типе меню (см. Menu). Тип "Reply" представляет собой начальное меню, тип "Inline" - меню в виде сообщений.
id_type_menu | type_menu |
---|---|
1 | Reply |
2 | Inline |
Таблица Category_Users содержит категории пользователей (см. встроенные команды бота и панель администратора).
id_category_users | name_category |
---|---|
1 | Пользователь |
2 | Администратор |
3 | Черный список |
- /start - начало работы с ботом (для любого пользователя).
- /registration - регистрация пользователя (для незарегистрированного пользователя, регистрация автоматическая - пользователю ничего не нужно вводить).
- /admin - панель администратора (только для администратора).
Администратор имеет следующие возможности:
- изменить категорию пользователя (необходимо будет ввести id аккаунта пользователя);
- изменить или посмотреть пароль регистрации пользователя;
- посмотреть пользователей любой категорий.