Если появился фильм в лучшем качестве, например, был AVI, а стал HD-Rip в MKV, то можно просто файл перетянуть из Windows Explorer в Movienizer. Добавится новое издание, а старое можно удалить.
После чего просто перегенерировать каталог для этого фильма.
Сейчас надо будет несколько раз птички проставить, в будущем сделаем возможность выгрузки текущего фильма в Дюну.
Ну, собственно, вот то, о чём я говорю.
Ок, забудем пока про актуализацию каталога в дюне - на крайняк взял, удалил всё и экспортировал заново.
2Алл: Если дальше кому-либо покажется, что я гоню - поправьте меня немедленно.
А вот про актуализацию каталога мувинайзера поговорим:
я не зря сказал в постановке "постоянная текучка: файлы добавляются, файлы удаляются, фвйлы переносятся в персистент-коллекцию, мною, не мною. Например, за некоторый период времени накопилось несколько таких изменений".
Это означает, что и или более людей за некоторый период времени сделали несколько дополнений/удалений/переименований в файловом хранилище.
Причём если людей больше одного - то вполне могли сделать все эти изменения не сговариваясь.
И вот выдалась минута, хочется актуализировать каталог. Как? А никак.
Потому, что продукт предлагает только один вариант: запоминать все свои (а чужие - сначала выведывать у непосредственных исполнителей и уже потом запоминать) действия и аккуратно вносить их в базу мувинайзера. А ещё лучше так: сделал единственное изменение - внёс в базу.
Не слишком много внимания и самодисциплины требует софт от потребителя бытового прибора?
Возможно, иному киноманьяку/маньяку-"упорядочивателю" (без обид плз) такой вариант подходит, мне - точно нет. Так как я, при всём своём желании, не самый большой оригинал - таких как я наберётся, думаю, много.
Я предлагаю добавить второй usage scenario, который можно охарактеризовать как media-centric (в отличии от текущего явно knowlegebase-centric).
Реализовать этот сценарий относительно просто, тем более, что добавляется всего-то 2 юз-кейса.
Перед описанием юзкейсов обращаю внимание на 2 серьёзныч провала в юзабилити - их необходимо исправить "прямо сейчас", без них - никуда, благо и изменения копеечные:
1. При экспорте каталога в дюну не позволяет выбрать вариант "Локальный ресурс" если сетевой диск/путь доступен в момент экспорта. Должен позволять. Обязан.
2. При добавлении фильма из файла (как пакетный, так и одиночный режим) происходит следующее: если в полученных из интернетов вариантах нет правильного - то приходится либо нажать "Отмена" в случае единичного файла или "пропустить" в случае пакетного добавления. И потом приходится добавлять такие файлы через ж: добавляем фильм По Названию и потом пристёгиваем к учётной карточке фильма медиа.
Вывод: в форме выбора варианта нужно дать возможность скорректировать строку для поиска, изменить интернет-дата-провайдера для текущего файла и перечитать варианты для этой введённой строки из выбранного провайдера.
Теперь юз-кейсы:
1. Визард "Добавить storage location"
Позволяет добавить в программу фолдер (и возможность исключать некоторые его сабфолдеры), в котором хранятся медиа-файлы. Даёт возможность задать для создаваемого локейшна исключения - файлы, которые всегда игнорируются.
В идеале также неплохо дать возможность задавать и маску фильтра для этого локейшна (например S??E00*.*) - но это уже излишества, конечно. Выглядеть должно так:
1.1 Форма в которой задаём путь, видим дерево каталогов начиная с указанного пути (по дефолту все сабфолдеры зачеканы) и можем убрать галку с чекбокса одного или нескольких сабфолдеров - исключить их из сторе локейшна. Здесь же можно ввести маску фильтра.
Нажимаем Некст. Программа сохраняет информацию о локейшне в своих сеттингах.
1.2 Программа ищет все медиафайлы в заданном локейшне согласно маске. Если файлов не найдено - закрываем визард.
1.2.1 Запускается паралельный бэкграунд-поток и переходим к пункту 1.3.
В только что запущенном паралельном потоке программа начинает по очереди подбирать саггешнз для найденных файлов (по очереди или паралельно, степень паралелизма - на ваш выбор, в идеале - должен глубоко конфигурироваться или предлагать выбор пресета типа "без паралел", "макс паралел", "норм паралел" итд)
Структуру "файл + найденные саггешнз" складываем во ВнутреннююОчередь1. После обработки последнего найденного файла добавляем во ВнутреннююОчередь1 ФлагРаботаЗакончена1.
1.3 Показываем пользователю форму "выбора саггешнз".
1.4 Форма берёт структуру "файл + найденные саггешнз" из ВнутреннейОчереди1 или ждёт, пока в ней не появится структур.
Если во ВнутреннейОчереди1 находим ФлагРаботаЗакончена1 - устанавливаем ФлагРаботаЗакончена2 и закрываем визард.
Если структура получена: Форма позволяет прервать всю операцию, пропустить текущий файл, добавть файл в исключения, изменить строку поиска и провайдера и перечитать варианты или выбрать вариант из предложенных.
Как только человек выбрал вариант, информация о файле и выборе добавляется во ВнутреннююОчередь2.
Если перед этим ВнутренняяОчередь2 была пуста - запускаем ещё один паралельный бэкграунд-поток и возвращаемся к началу пункта 1.4.
В только что запущщенном паралельном потоке программа берёт запись из ВнутреннейОчереди2 и подчитывает из интернета всю нужную инфу-картинки-итд. Поток работает до тех пор, пока в очереди не закончились данные и не установлен ФлагРаботаЗакончена2.
Что это даст пользователю: указал фолдер с фильмами, скоренько (без тормозов на подчитку больших объёмов данных итд) уточнил названия ыильмов для найденных файлов - и свободен, остальная работа будет сделана сама в бэкграунде.
2. Визард "актуализировать storage locations"
Позволяет "в один клик" актуализировать каталог программы на основании состояния своих стореджей.
2.1 Показываем форму "Выбор стореджей". Форма показывает список всех добавленных в систему стореджей, по дефолту все они "зачеканы". Форма позволяет убрать галку для одного или нескольких стореджей - тем самым исключить их из процесса актуализации.
Также форма позволяет задать режим работы - анализировать только удаления файлов, только добавления файлов, все изменения.
Кнопка ОК.
Дальше всё просто:
2.2.1 смотрим, не пропали ли с дисков какие-либо файлы из привязанных к фильмам в нашем каталоге. Если пропали - показываем список таких фильмов + "потерянных" файлов и для каждого индивидуально предлагаем выбрать экшн: игнорировать, удалить фильм из каталога либо пометить как "архивный" Кнопка некст, делаем заказанные изменения.
2.2.2 если найдены новые файлы - запускаем юз-кейс 1 начиная с шага 1.2.1.
Плюс ко всему этому форма настройки текущих "storage locations" - позволяет изменить путь, список исключений, правила для сабфолдеров, маску фильтра.
При удалении локейшна предлагает либо отвязать аффектед фильмы ы каталоге от медиа-файлов либо удалить инфо о фильмах из каталога.
Экспортировать в дюну только фильмы с приаттаченными медиа.
Всё.
После этого - вы лучшме.