Vitalii Tytskyi писал(а): ↑Пн ноя 30, 2020 11:36 pm
dkarm писал(а): ↑Вт ноя 24, 2020 11:35 pm
-
Подобрал правильные запросы к АПИ Maxdone, выгрузил данные со ВСЕМИ моими задачами, категориями, проектами, и заметками.
-
Написал программу, которая обработает эти данные и сохранит в удобной читабельной табличке.
Добрый человек, поделитесь. Чтобы сохранить хотябы в TXT это все.
В принципе, MaxDone на сайте сейчас заработал, и, видимо, какое-то время можно будет ещё им пользоваться. Но вопрос выгрузки данных из него всё равно стоит, ага.
Короче, шаг первый: Выгрузить данные из MaxDone.
Шаг второй: Преобразовать данные в удобочитабельный формат.
С автоматизацией первого шага я не заморачивался, ибо неохота было разбираться, как именно там надо сформировать запрос авторизации, чтобы программно на сайт стучаться. (Вообще бэкэнд там написан на java spring, если что.)
Я просто подобрал через браузер curl запросы для всех нужных данных.
Это делается так:
1.1 Нажимаем в браузере F12, чтобы открыть консоль, открываем в ней вкладку "Network".
1.2 Загружаем страницу с задачами MaxDone:
https://maxdone.micromiles.co/personal#tasks/
1.3 Слева появляется список, выполненных запросов. Если выбрать один из них, справа появится информация о нём. Что тут нам интересно:
1.4 todo - запрос на выгрузку списка активных задач.
1.5. projects - запрос на выгрузку списка категорий, чтобы можно было идентификаторы из свойств задач сопоставить с названиями категорий.
1.6 user-contexts - запрос на выгрузку категорий
1.7 my - запрос на выгрузку проектов
1.8 По любому из этих запросов можно щёлкнуть и справа выбрать вкладку "Response" - там и будут все данные в формате JSON
1.9 Можно ещё щёлкнуть правой клавишей по запросу и выбрать пункт "Copy -> Copa as cURL (bash)" - и в буфер обмена вам скопируется полностью готовый curl для линуксовой командной строки (есть и другие вариации, описываю то, с чем работаю я) со всеми нужными хедерами, чтобы запрос отработал и вернул те же данные.
1.10 дополнительный запрос для выгрузки входящих:
https://maxdone.micromiles.co/services/v1/tasks/inbox работает по аналогии с предыдущими, то есть достаточно в полученном curl для todo просто поменять todo на inbox
1.11 Аналогично для выгрузки выполненных задач подойдёт запрос:
https://maxdone.micromiles.co/services/ ... /completed - важно: кроме параметра _ с id пользователя нужно добавить ещё параметр "size=1000", например, иначе будет выгружать выполненные задачи по 10 штук.
2. Итогом этого можно сохранить себе отдельные текстовые файлы с JSON данными активных задача, входящих, выполненных задач, категорий, контекстов и проектов. Я сохранял их в отдельные файлы, а потом написал программу, которая читает эти файлы разом и выгружает задачи в удобном мне читабельном табличном виде в формате csv, удобно открываемом в Excel.
Могу поделиться своей заготовкой:
https://github.com/dkarmano/maxdone_dec ... ecomp.java
Если разбираетесь в программирование на java, то без проблем разберётесь, как это запустить. Точка входа start(), пути к файлам с json данными захардкожены в переменных в начале функции process(). Зависимости: Gson и lombok.
Это очень черновой листинг, совсем необлагороженный - предполагался для разовой работы - один раз запустить и забыть.
Если не разбираетесь в программировании, осилили пункт 1 и есть потребность в работе вышеописанной программы - пишите, могу подготовить работающее java приложение, которое можно будет просто запустить, подготовив предварительно нужные файлы из п.1.
Если уведомления с форума на почту опять не придут, можно написать мне на
dkarm@list.ru