Skip to content

rulen111/vkinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VKinder

VKinder Бот Это скрипт на Python, который использует API VK для взаимодействий. VKinder Бот помогает пользователям найти потенциальную пару для знакомства на сайте ВКонтакте (VK) на основе указанных предпочтений.

Описание func

Предварительные требования Перед запуском бота убедитесь, что у вас установлены следующие зависимости:

  • vk_api
  • yaml

Настройка

Для настройки бота необходим файл config.yaml. Убедитесь, что у вас правильно установлены следующие параметры:

VK.VERSION: Версия API VK, которую необходимо использовать.
VK.APP_ID: Ваш идентификатор самостоятельного приложения (или введите его интерактивно, если не установлен).
VK.GROUP_TOKEN: Токен доступа к группе VK (или введите его интерактивно, если не установлен).
VK.GROUP_ID: Идентификатор группы VK (или введите его интерактивно, если не установлен).
VK.USER_TOKEN: Токен пользователя для API VK.

Использование

Убедитесь, что файл config.yaml правильно настроен. Запустите скрипт.

Бот использует файлы JSON для макетов. Предоставлены следующие макеты:

keyboard_main.json: Основной макет.
keyboard_choose.json: Для выбора предпочтений.
keyboard_search.json: Для функции поиска.
keyboard_empty.json: Пустой макет.
keyboard_settings.json: Для настроек.
keyboard_authorize.json: Для авторизации.
keyboard_list_fav.json: Для списка избранных.
keyboard_list_fav_gallery.json: Для списка избранных в виде галереи.

Логирование

Бот регистрирует события и ошибки в файлы в каталоге logs/. Каждый файл журнала назван по дате.

Функциональность

logger: Декоратор для регистрации вызовов функций.
api_handler: Декоратор для перехвата ошибок VK API.
update_config: Функция для обновления данных конфигурации в файле config.yaml.

VKhandler

Это класс для обработки Longpoll. Обрабатывает поступающие события бота.

Методы

init_user_client: Этот метод обрабатывает инициализацию объекта VKClient для использования с пользовательским токеном. Принимает токен в качестве аргумента и устанавливает его в user_client.
start: Обрабатывает событие "start". При вызове этого метода бот отправляет сообщение, объясняющее пользователю, как начать работу с ботом.
token: Обрабатывает событие "token". Метод получает токен, введенный пользователем, и инициализирует user_client. Если токен успешно установлен, он записывается в конфигурационный файл.
random_msg: Обрабатывает событие "random_msg". Этот метод отправляет случайное сообщение пользователю, предлагая в случае пропажи клавиатуры написать слово "Начать".
main_menu: Обрабатывает событие "main_menu". Этот метод выводит главное меню пользователю.
search: Обрабатывает событие "search". Метод инициирует процесс поиска, запрашивая у пользователя подтверждение поисковых параметров.
search_start: Обрабатывает событие "search_start". Этот метод запускает процесс поиска на основе указанных пользовательских параметров.
rotation: Обрабатывает событие "rotation". Метод отображает профиль пользователя из результатов поиска и предоставляет возможность просмотра следующего профиля.
next_person: Обрабатывает событие "next_person". Этот метод перемещается к следующему профилю в результате поиска.
show_help: Обрабатывает событие "show_help". Данный метод выводит справочную информацию.
settings: Обрабатывает событие "settings". Метод предоставляет пользователю возможность изменить настройки.
change_city: Обрабатывает событие "change_city". Этот метод инициирует процесс изменения города пользователя.
change_city_value: Обрабатывает событие "change_city_value". Метод изменяет город пользователя на указанный.
change_age: Обрабатывает событие "change_age". Этот метод инициирует процесс изменения возраста пользователя.
change_age_value: Обрабатывает событие "change_age_value". Метод изменяет возраст пользователя на указанный.
change_sex: Обрабатывает событие "change_sex". Этот метод инициирует процесс изменения пола пользователя.
change_sex_value: Обрабатывает событие "change_sex_value". Метод изменяет пол пользователя на указанный.
add_to_fav: Обрабатывает событие "add_to_fav". Метод добавляет профиль пользователя в список избранного.
list_fav: Обрабатывает событие "list_fav". Метод выводит список избранных профилей пользователю.
list_fav_list: Обрабатывает событие "list_fav_list". Метод выводит список избранных профилей пользователю списком.
list_fav_gallery: Обрабатывает событие "list_fav_gallery". Метод выводит список избранных профилей пользователю в виде галереи.
fav_gallery_next: Обрабатывает событие "fav_gallery_next". Метод отображает следующий профиль из избранного.
start_polling: Запускает процесс приема и обработки событий от серверов VK. Итерируется по каждому входящему событию и вызывает соответствующий обработчик.

Работа с БД

Данный проект представляет собой набор классов и функций для работы с базой данных пользователей и их избранных в социальной сети VKontakte (VK).

Структура базы данных

Проект использует базу данных, организованную с использованием SQLAlchemy. В базе данных есть следующие таблицы:

Favourite: Хранит информацию о пользователях, добавленных в избранное.
Client: Содержит информацию о клиентах, включая их параметры поиска и город проживания.
Client_Favourite: Эта таблица устанавливает отношение "многие ко многим" между клиентами и их избранными пользователями.
City: Хранит информацию о городах.

Диаграмма структуры базы данных

Описание классов

Favourite: Класс описывает модель избранного пользователя VK.
Client: Представляет модель клиента с параметрами поиска и городом проживания.
Client_Favourite: Модель представляет собой ассоциативную таблицу для установления отношения "многие ко многим" между клиентами и их избранными пользователями.
City: Представляет модель города.

Функции работы с базой данных

create_tables(engine): Создает все таблицы в базе данных, используя определенную структуру.
drop_tables(engine): Удаляет все таблицы из базы данных.
add_fav_entry(session, client_user_id, user_id, first_name, last_name, attachment): Добавляет запись об избранном пользователе в базу данных.
get_fav_list(session, client_id): Получает список избранных пользователей для указанного клиента.
add_client_info(session, user_id, age_from, age_to, sex, city): Добавляет информацию о клиенте в базу данных.
get_client_info(session, user_id): Получает информацию о клиенте по его идентификатору.
add_city_entry(session, city_id, name): Добавляет информацию о городе в базу данных.
get_city_entry(session, city_id, name=None): Получает информацию о городе по его идентификатору или названию.

Releases

No releases published

Packages

 
 
 

Languages