https://github.com/samplec0de/alice-ticktick
Навык Яндекс Алисы для управления задачами в TickTick голосом
https://github.com/samplec0de/alice-ticktick
Last synced: 2 months ago
JSON representation
Навык Яндекс Алисы для управления задачами в TickTick голосом
- Host: GitHub
- URL: https://github.com/samplec0de/alice-ticktick
- Owner: samplec0de
- License: mit
- Created: 2026-02-28T19:49:48.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-14T23:34:39.000Z (3 months ago)
- Last Synced: 2026-03-15T09:26:51.462Z (3 months ago)
- Language: Python
- Size: 708 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ТикТик — навык Алисы для TickTick
Голосовое управление задачами и привычками [TickTick](https://ticktick.com) через [Яндекс Алису](https://alice.yandex.ru).
> «Алиса, запусти навык ТикТик»
## Возможности
- Создание, редактирование, удаление задач голосом
- Просмотр задач на сегодня, завтра и произвольную дату
- Фильтрация по приоритету и диапазону дат
- Просроченные задачи
- Нечёткий поиск (смешанный рус/англ текст)
- Подзадачи и чеклисты
- Повторяющиеся задачи
- Встречи и события с длительностью
- Напоминания
- Приоритеты
- Проекты: просмотр, создание, фильтрация задач
- Перемещение задач между проектами
- Утренний и вечерний брифинг
## Примеры голосовых команд
### Создание задач
```
создай задачу купить молоко
добавь задачу позвонить маме на завтра
создай задачу отчёт с приоритетом высокий
запиши задачу купить подарок на 5 марта
создай задачу презентация в проект работа
```
### Задачи с длительностью (встречи)
```
создай встречу совещание завтра в 10 на 2 часа
добавь встречу ланч завтра в 12 на час
создай встречу стендап завтра в 10 на полчаса
создай задачу митинг с 14 до 16
```
### Повторяющиеся задачи
```
создай задачу зарядка каждый день
создай задачу совещание каждый понедельник
создай задачу отчёт ежемесячно
создай задачу уборка каждые 2 недели
создай задачу оплата каждое 15 число
```
### Задачи с напоминаниями
```
создай задачу встреча с напоминанием за час
создай задачу звонок с напоминанием за 30 минут
```
### Просмотр задач
```
какие задачи на сегодня
что у меня на завтра
покажи задачи на послезавтра
что запланировано на 5 марта
```
### Просроченные задачи
```
какие задачи просрочены
что я пропустил
просроченные задачи
```
### Поиск
```
найди задачу купить молоко
поищи задачу отчёт
где задача про презентацию
```
### Завершение задач
```
отметь задачу купить молоко
выполни задачу позвонить маме
заверши задачу написать отчёт
```
### Редактирование задач
```
перенеси задачу купить молоко на завтра
поменяй приоритет задачи отчёт на высокий
переименуй задачу купить хлеб в купить батон
измени задачу презентация на понедельник
перемести задачу отчёт в проект работа
```
### Повторение и напоминания у существующих задач
```
поменяй повторение задачи зарядка на ежедневно
убери повторение у задачи уборка
поставь напоминание задачи встреча за 30 минут
убери напоминание у задачи звонок
напомни о задаче встреча за час
```
### Удаление задач
```
удали задачу купить молоко
убери задачу написать отчёт
сотри задачу оплатить счёт
```
### Фильтрация задач
```
покажи задачи на эту неделю с высоким приоритетом
какие срочные задачи на завтра
задачи с низким приоритетом на следующую неделю
```
### Проекты
```
покажи мои проекты
задачи в проекте работа
создай проект учёба
```
### Брифинги
```
доброе утро
вечерний брифинг
что у меня на сегодня кратко
```
### Подзадачи
```
добавь подзадачу купить муку к задаче испечь торт
создай подзадачу написать введение к задаче отчёт
покажи подзадачи задачи подготовить отчёт
какие подзадачи у задачи релиз
```
### Чеклисты
```
добавь пункт молоко в чеклист задачи покупки
добавь хлеб в список задачи магазин
покажи чеклист задачи поход в магазин
отметь пункт молоко в задаче покупки
удали пункт хлеб из чеклиста задачи магазин
```
## Установка
```bash
uv sync --extra dev
```
## Разработка
```bash
uv run pytest -v # тесты
uv run ruff check . # линтинг
uv run ruff format . # форматирование
uv run mypy alice_ticktick/ # проверка типов
```
## E2E тестирование
E2E тесты проверяют полный пайплайн: **Яндекс NLU → webhook → TickTick API**.
Тесты работают через внутренний API страницы тестирования Яндекс Диалогов (httpx, без браузера).
### Первый запуск (авторизация)
```bash
uv sync --extra dev --extra e2e
python -m playwright install chromium
uv run pytest tests/e2e/ --setup-yandex-auth -v -s
```
Откроется браузер → залогиньтесь в Яндексе → браузер закроется автоматически.
Cookies сохранятся в `.yandex_auth/` (в `.gitignore`).
Флаг `-s` нужен, чтобы видеть инструкции в терминале.
### Последующие запуски
```bash
uv run pytest -m e2e -v # все 116 E2E тестов
uv run pytest tests/e2e/test_e2e_misc.py -v # только один файл
uv run pytest -m "not e2e" -v # только unit тесты
```
### Если cookies протухли
```bash
uv run pytest tests/e2e/ --setup-yandex-auth -v -s
```
### Структура тестов
| Файл | Раздел | Тестов |
|------|--------|--------|
| `test_e2e_greeting.py` | Приветствие | 1 |
| `test_e2e_create.py` | Создание задач | 23 |
| `test_e2e_list.py` | Просмотр + фильтрация + просроченные | 13 |
| `test_e2e_complete.py` | Завершение | 5 |
| `test_e2e_search.py` | Поиск | 4 |
| `test_e2e_edit.py` | Редактирование | 16 |
| `test_e2e_delete.py` | Удаление (multi-turn) | 4 |
| `test_e2e_recurring.py` | Повторяющиеся | 8 |
| `test_e2e_reminders.py` | Напоминания | 5 |
| `test_e2e_subtasks.py` | Подзадачи | 4 |
| `test_e2e_checklists.py` | Чеклисты | 6 |
| `test_e2e_projects.py` | Проекты | 3 |
| `test_e2e_briefings.py` | Брифинги | 2 |
| `test_e2e_misc.py` | Помощь + fallback | 8 |
| `test_e2e_edge.py` | Edge cases | 7 |
| `test_e2e_regression.py` | Регрессия (known bugs) | 7 |
| **Итого** | | **116** |
Подробные сценарии: [`docs/CHROME_TESTING.md`](docs/CHROME_TESTING.md).
## Лицензия
MIT