У вас есть проблемы напоминаний в MLO-Android? Ответьте: Да/Нет.

Использование командной строки MLO

Поделитесь с другими, как Вы используете MLO (шаблоны, система управления задачами и т.д.). Нашли способ настроить MLO особым образом? Расскажите! Нам интересно!
Автор темы

LTrack
Сообщения: 20
Зарегистрирован: май 2013
Поблагодарили: 1 раз

Использование командной строки MLO

Сообщение LTrack » 06 янв 2016, 06:30

Одним из важных элементов работы с MLO является удобство процесса добавления новых задач. А один из способов добавления задач - использование командной строки. Ниже хочу поделиться несколькими примерами, когда (и как) я использую эту возможность программы. Здесь только общее описание принципов. Если будут нужны более детальные разъяснения как это реализовано - готов ответить.

Пример 1. ДОБАВЛЕНИЕ КНИГ В ЛИСТ ЧТЕНИЯ.

Я достаточно много читаю электронные книги, поэтому в MLO у меня заведены два листа чтения:
- Лист чтения (художественная литература);
- Лист чтения (бизнес литература).

В них я добавляю книги по мере появления желания что-то прочитать.
Также, после прочтения книги, я выполняю несколько действий:
- выставляю признак, что книга прочтена (в Calibre);
- выставляю оценку книги и, иногда, пишу отзыв (на сайте Imhonet);
- добавляю книгу в свой список прочтенного за год (таблица на google-диск).

Итого, по каждой запланированной к прочтению книге мне необходимо добавлять 4 задачи. В какой-то момент я устал это делать и стал думать, как максимально автоматизировать процесс. В результате получилось описанное ниже решение, основанное на использовании командной строки MLO.

Используемые приложения:
1. Calibre - программа ведения библиотеки электронных книг
2. nnCron - утилита для автоматизации процессов на ПК
3. Приложение на php5
4. MLO

Настройки
1. Calibre
Calibre я использую в качестве своей библиотеки электронных книг. Очень удобная программа.
Для решения поставленной задачи в ней потребовалось настроить режим "Сохранение на диск". Выбирал максимально простой шаблон {id}, т.е. файл при сохранении получает в качестве имени свой id-номер в бибилиотеке Calibre. Ну и настроил путь для сохранения книг.

2. nnCron
Крон живет на моем ПК уже очень много лет. Вот и в данном случае он оказался очень кстати.
В нем настроена задача, которая мониторит появление в определенной папке файла с расширением fb2. Естественно, это та папка, в которую сохраняются книги из Calibre. При появлении файла запускается приложение на php.

3. Приложение на php
Пожалуй, самое сложное при решении задачи - пришлось написать небольшое приложения на php. Для этого пригодились мои хоть и минимальные, но имеющиеся знания программирования.
Приложение выполняет следующее:
- читает теги из файла fb2 - название книги, фамилия и имя автора, название серии и номер книги в серии;
- считает количество страниц в файле;
- переименовывает файл по нужному мне формату (название - фамилия автора, имя автора);
- копирует файл в две папки для синхронизации с двумя смартфонами;
- формирует bat-файл, для добавления задач в MLO;
- запускает bat-файл.

Сразу хочу подчеркнуть две вещи:
1. Я не программист.
2. Программа выполняет все, что я от нее хочу. Уверен, что все это можно реализовать ЗНАЧИТЕЛЬНО более красивым кодом, но - см. п.1.

Как это работает
В Calibre выбираю книгу, которую хочу добавить в Лист чтения и нажимаю "Сохранить на диск". Через небольшое время у меня в MLO появляются 4 задачи. Например, для книги "Битва в пути" это будут такие задачи:
- Битва в пути - Николаева, Галина
- Записать на Google.Диск - Битва в пути - Николаева, Галина
- Поставить оценку в Calibre - Битва в пути - Николаева, Галина
- Оставить отзыв - Битва в пути - Николаева, Галина

Естественно, все задачи с нужными мне контекстами и флагами.
Кроме того, книга оказывается в папках для синхронизации с двумя моими смартфонами. Файл книги назван в удобном для меня формате (в примере это будет "Битва в пути - Николаева, Галина.fb2"). При ближайшей синхронизации файл с книгой оказывается в нужной папке смартфона.

К сожалению, сейчас в MLO не реализована возможность установить зависимость через командную строку. Поэтому после добавления задач в MLO мне приходится руками добавить зависимость трех дополнительных задач от первой задачи с книгой (чтобы они появились только после прочтения книги).

MrCricket
Команда бета тестеров
Сообщения: 1509
Зарегистрирован: июн 2012
Есть ответ: 24
Благодарил (а): 79 раз
Поблагодарили: 62 раза

Re: Использование командной строки MLO

Сообщение MrCricket » 06 янв 2016, 08:36

А что если выразить зависимость деревом, т.е.

- Битва в пути - Николаева, Галина
----- Прочитать - Битва в пути - Николаева, Галина
----- Записать на Google.Диск - Битва в пути - Николаева, Галина
----- Поставить оценку в Calibre - Битва в пути - Николаева, Галина
----- Оставить отзыв - Битва в пути - Николаева, Галина

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

    -to<TaskName>
    -o : complete subtasks in order

Автор темы

LTrack
Сообщения: 20
Зарегистрирован: май 2013
Поблагодарили: 1 раз

Re: Использование командной строки MLO

Сообщение LTrack » 06 янв 2016, 12:36

К сожалению, вариант с деревом тоже имеет свои подвохи при использовании командной строки.

Если я задам, что три дополнительные задачи являются подзадачей первой (а задать действительно можно по имени корневой задачи - в русской версии это ключ "-вз") - они добавятся. Но куда?... Если повезет - то куда надо добавятся. Однако, если выше по дереву у меня будет задача с первым словом в имени "Битва ", то подзадачи добавятся к ней. Увы, но пробелы в имени задачи при ключе -to/-вз никак не обрабатываются :-(

Т.е. в этом варианте вообще нет предсказуемости. Когда проверял такой вариант, были случаи, что дополнительные задачи вставали как подзадачи к уже выполненным задачам с совпадающим первым словом в имени. А так как закрытые задачи я не показываю, то подзадачи просто пропадали. Хотя поиском находились, конечно.

Все эти проблемы я описывал в предложениях о доработке:
http://www.mylifeorganized.net/forum-ru/viewtopic.php?f=11&t=2515

А ключ -пп ("выполнять подзадачи по порядку", он же, видимо, -o) использую, но это в других примерах.

MrCricket
Команда бета тестеров
Сообщения: 1509
Зарегистрирован: июн 2012
Есть ответ: 24
Благодарил (а): 79 раз
Поблагодарили: 62 раза

Re: Использование командной строки MLO

Сообщение MrCricket » 06 янв 2016, 15:25

LTrack писал(а):Если я задам, что три дополнительные задачи являются подзадачей первой (а задать действительно можно по имени корневой задачи - в русской версии это ключ "-вз") - они добавятся. Но куда?... Если повезет - то куда надо добавятся. Однако, если выше по дереву у меня будет задача с первым словом в имени "Битва ", то подзадачи добавятся к ней. Увы, но пробелы в имени задачи при ключе -to/-вз никак не обрабатываются :-(

Т.е. в этом варианте вообще нет предсказуемости. Когда проверял такой вариант, были случаи, что дополнительные задачи вставали как подзадачи к уже выполненным задачам с совпадающим первым словом в имени. А так как закрытые задачи я не показываю, то подзадачи просто пропадали. Хотя поиском находились, конечно.


- а можно приложить тестовую базу с вышеозначенной проблемой (+ точные CLI комманды)?

Автор темы

LTrack
Сообщения: 20
Зарегистрирован: май 2013
Поблагодарили: 1 раз

Re: Использование командной строки MLO

Сообщение LTrack » 06 янв 2016, 16:40

MrCricket писал(а): - а можно приложить тестовую базу с вышеозначенной проблемой (+ точные CLI комманды)?


Создаем пустую базу test.ml. Добавляем три задачи. Например, такие:
Задача один
Задача два
Задача три

Хотим добавить подзадачу "Новая задача" в "Задача три". Дополнительные условия: усилие - максимальное, флаг "Жду-ответ", контекст "$Письмо", срок - сегодня.
Командная строка:

Код: Выделить всё

"C:\Program Files\MyLifeOrganized.net\MLO4\mlo.exe" "C:\MyData\MLO\test.ml" -AddSubtask="Новая задача сегодня -взЗадача три -у2 -фЖду-ответ @ $Письмо" -Parse


Добавляется куда угодно, только не куда надо :-(

MrCricket
Команда бета тестеров
Сообщения: 1509
Зарегистрирован: июн 2012
Есть ответ: 24
Благодарил (а): 79 раз
Поблагодарили: 62 раза

Re: Использование командной строки MLO

Сообщение MrCricket » 06 янв 2016, 17:23

Мдааа, засада..

Аватара пользователя
Amiko
Сообщения: 79
Зарегистрирован: мар 2013
Есть ответ: 1

Re: Использование командной строки MLO

Сообщение Amiko » 07 янв 2016, 20:18

Реально круто, LTrack.
Вопрос:
Вы читаете одновременно по две книги: одну из художественной темы и другую из бизнес темы?
Или по очереди.

P.S. Просто при обилии источников для чтения и ограниченности времени приходиться читать книгу по специализации и художественную литературу паралельно, но при этом время прочтения обеих книг растягивается и информация из специализированной книги "размывается". Чтобы как-то зацепить в памяти информацию заношу содержание книги в дерево мло. Часто вручную.
Интересно, можно ли из *.fb2 or *.epub Вашим методом получать содержание?
Дмитрий

Автор темы

LTrack
Сообщения: 20
Зарегистрирован: май 2013
Поблагодарили: 1 раз

Re: Использование командной строки MLO

Сообщение LTrack » 08 янв 2016, 07:05

Amiko писал(а):Вы читаете одновременно по две книги: одну из художественной темы и другую из бизнес темы?
Или по очереди.

Последние два года - одновременно. Но именно художественную и не художественную. Две художественные сразу не могу.
Раньше тоже казалось, что читать более одной книги одновременно - это не правильно. Но много советов было в разных статьях в интернете. Попробовал, оказалось нормально. Кто-то даже советует читать больше книг сразу, но это пока не для меня :-)

Amiko писал(а):P.S. Просто при обилии источников для чтения и ограниченности времени приходиться читать книгу по специализации и художественную литературу паралельно, но при этом время прочтения обеих книг растягивается и информация из специализированной книги "размывается". Чтобы как-то зацепить в памяти информацию заношу содержание книги в дерево мло. Часто вручную.
Интересно, можно ли из *.fb2 or *.epub Вашим методом получать содержание?

Что понимать под содержанием? Оглавление книги? Из FB2 точно можно, но только если книга сформирована "по-ГОСТу", т.е. с соблюдением всех правил формата FB2 (фактически - надо прочитать из файла FB2 теги <title> из разделов <section>).
С форматом ePUB (не с книгами формата, а именно с разметкой формата) не знаком. Теоретически, думаю, можно. Практически - не знаю как.

Автор темы

LTrack
Сообщения: 20
Зарегистрирован: май 2013
Поблагодарили: 1 раз

Re: Использование командной строки MLO

Сообщение LTrack » 08 янв 2016, 07:15

Продолжу примеры использования командной строки.

Пример 2. ПРОСМОТР РОЛИКОВ С YOUTUBE.

Есть несколько каналов Youtube, на которые я подписан. Смотреть ролики сразу не всегда получается, поэтому мне удобнее их скачивать и просматривать позже. Чтобы не забыть это сделать - я добавляю соответствующие задачи в MLO.

Используемые приложения:
1. Дополнения для Firefox - Bamboo Feed Reader и Download YouTube Videos as MP4
2. nnCron - утилита для автоматизации процессов на ПК
3. MediaInfo.exe - утилита для определения продолжительности медиафайла
4. MPC-HC - медиаплеер
5. MLO

Настройки
1. Firefox
В браузере Firefox установлены два дополнения. Первое (Bamboo Feed Reader) отслеживает каналы Youtube и сообщает мне, что на каком-то их них появился новый ролик. Второе (Download YouTube Videos as MP4) позволяет сохранить ролик на диск.

2. nnCron
В кроне настроена задача, которая мониторит появление в определенной папке нового файла. При его появлении она выполняет следующее:
- переносит файл в папку, где ролик ожидает своего просмотра;
- определяет продолжительность медиафайла (см. п.3 ниже);
- добавляет задачу в MLO;
- добавляет файл в плей-лист медиаплеера MPC-HC.

3. MediaInfo.exe
Утилита вызывается из задания nnCron. В качестве параметра получет имя медиафайла, а как результат своей работы выдает его продолжительность. Это время потом добавляется в задачу MLO (поле "максимальное время").

Как это работает
При появлении сообщения в Firefox о новом ролике на каком-то канале, перехожу на страницу с роликом, [ставлю лайк] и сохраняю его на диск в определенную папку. К сожалению, автоматизировать эту часть я пока не смог. Хотя было бы удобно, если бы при появлении новой записи на канале, ролик автоматически скачивался бы и записывался на диск.

В MLO задача появляется в специальной папке Youtube. Естественно, с нужными тегами, срок = текущая дата (чтобы увидеть в представлении "Сегодня"), а также с указанием продолжительности ролика. Параллельно ролики добавляются в плейлист медиаплеера MPC-HC, чтобы потом не искать их на диске.

WaRoX
Команда бета тестеров
Сообщения: 752
Зарегистрирован: фев 2009
Есть ответ: 28
Благодарил (а): 21 раз
Поблагодарили: 103 раза

Re: Использование командной строки MLO

Сообщение WaRoX » 11 янв 2016, 10:04

Здорово, просто очень круто! Особенно с Youtube автоматизация понравилась - надо будет повторить. Я, кстати, очень хорошо автоматизировал добавление задач на чтение разных статей с помощью связки Pocket, ifttt.com и MLO task by email - напишу отдельно про это.
Илья


Вернуться в «Обмен опытом»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей