-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dev database tasks #9
Conversation
…_by_tags, find_tasks_by_name
bot/tasksdb.py
Outdated
else: | ||
return task | ||
|
||
def find_tasks_by_tags(self, tags: list, mode: str = "or") -> list: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Кто будет устанавливать mode
? И кто будет обрабатывать исключения? Если пользователь, то ему это не нужно. Он должен вводить несколько тегов в окошко и получать результат. Значит, должен быть код-обертка над find_tasks_by_tags
, который принимает от пользователя строку, парсит ее на теги, упаковывает их в список, устанавливает mode
и вызывает метод TasksDatabase.find_tasks_by_tags
. Этот код реализован?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Предлагаю сделать поиск только по mode=='or'
и выдавать вариант с наибольшим количеством совпадений тегов. Если пользователь ввел один тег, то искать его наличие. Если несколько, то подбирать несколько записей - здесь совпали все теги, здесь не найден один, здесь не найдены два - и из этих записей выбирать ответ пользователю.
Плюс сейчас, насколько я понимаю, никак не распознается ошибка по тегам - типа "такого тега не существует" или "не найдено задач". Кто будет выполнять такую проверку?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@futorio, сделай изменения, про ктр написал @LostInKadath
Остальное выглядит отлично!
…abase-tasks # Conflicts: # bot/tasksdb.py
По коду последних пяти коммитов вопросов нет. Однако придержим эту ветку разработки до тех пор, пока не появится кристальная ясность - как дальше жить. =) |
Примеры использования методов класса TasksDatabase
Подключение базы данных задач
Для сохранения изменений базу данных необходимо закрыть методом close
Поиск в базе данных
По имени:
По номеру:
По тегам:
По уровню сложности:
Добавление новых задач
Редактирование существующих задач
UPD
Добавлен атрибут объекта last_task_number. Он создаётся при инициализации нового объекта класса и хранит номер последней задачи. Пример использования - получение рандомной задачи: