Для установки библиотек используйте requirements.txt.
После клонирования репозитория в PostgreSQL необходимо создать пользователя vkinder c паролем 12345. После этого необходимо создать базу данных vkinder c владельцем vkinder.
CREATE USER vkinder WITH PASSWORD '12345';
CREATE DATABASE vkinder WITH OWNER vkinder;
После этого необходимо залить дамп из папки "../VKINDER/DB/init_db_dump/vkinder.sql" в созданную базу. Если такого файла в репозитории нет, то его можно скачать по ссылке, указанной ниже.
Также для создания заготовки базы можно воспользоваться исходными файлами, которые выложены на GoogleDrive. Для этого их нужно скачать в папку "../VKINDER/DB/Fixtures" и запустить выполнение файла "../VKINDER/DB/database.py".
Для работы программы необходимо:
- в файле "../VKINDER/VK_SCOPE/vk_scope.py" указать либо токен пользователя Вконтакте, либо Ваш логин и пароль (стр.14-26);
- в файле "../VKINDER/VK_SCOPE/bot.py" указать токен сообщества (группы) Вконтакте (стр.19).
В результате авторизации посредством vk_api через Ваш логин и пароль для Вконтакте у вас создастся файл
vk_config.v2.json
, который рекомендуется сразу занести в .gitignore
.
Для запуска программы используйте файл runner.py
Все слышали про известное приложение для знакомств - Tinder. Приложение предоставляет простой интерфейс для выбора понравившегося человека. Сейчас в Google Play более 100 миллионов установок.
Используя данные из VK нужно сделать бота как Tinder. Искать людей, подходящих под условия, на основании информации о пользователе из VK:
- диапазон возраста
- пол
- город
- семейное положение
У тех людей, которые подошли по требованиям пользователю, получать топ-3 популярных фотографии с аватара. Популярность определяется по количеству лайков.
Результаты сохраняются в базу данных, состоящая из трех таблиц:
- User - вся информация по пользователю
- vk_id
- Имя
- Фамилия
- Возраст
- Диапазон возраста для поиска
- Пол
- Город
- DatingUser - Найденные пары для пользователя:
- vk id
- Имя
- Фамилия
- Возраст
- foreign_key User, того кто ищет
- Photos - Фотографии найденных пар:
- ссылка на фотографию
- количество лайков
- foreign_key DatingUser, кому принадлежат фотографии
Примерная схема. Таблицы и столбцы могут быть изменены.
Бот должен предоставлять текстовый интерфейс для работы с пользователем:
- уточняет предпочтения (если надо) и начинается подбор;
- если кто-то понравился - отмечает и человек заносится в БД;
- если нет - пропускает;
- вывод всех понравившихся пользователей;
- удалить из списка понравившихся пар человека.
Страница в вк и его группа.
Группа с рабочим ботом.
- Код программы удовлетворяет PEP8.
- Получать токен от пользователя с нужными правами.
- Программа декомпозирована на функции/классы/модули/пакеты.
- База данных PostgreSQL
- Люди не должны повторяться при повторном поиске.
- Реализовать тесты на базовую функциональность.
- Не запрещается использовать внешние библиотеки для vk (при использовании - оформить requirements.txt).
- UI интерфейс для работы с ботом.
- Добавлять человека в черный список чтобы он больше не попадался при поиске, используя БД.
- Посмотреть черный список.