История

Автор V0lt, 27 августа 2017, 09:29:11

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

V0lt

Предлагаю радикально переработать истории открытых файлов/URL.

Ссылка на утилиту MPC-BE_History

Путь к файлу истории: %APPDATA%\MPC-BE\history.mpc_lst.
При хранении настроек в папке плеера history.mpc_lst будет там же.

Что не устраивает
1. Зависимость количества запомненных позиций от количества отображаемых в меню. Если нужна длинная история, то меню не вмещается в экран. Сделать длинную историю сейчас нельзя.
2. Не запоминается название для YouTube, видим лишь непонятный URL.
3. История пишется совместно с настройками (.INI) и с 2-3 секциях реестра.
4. Нет выборочного удаления из истории.

Идеи и наработки
1. Помнить единую историю для файлов, URL и DVD-Video. Количество записей от 100 до 999.
2. Опция "Количество последних файлов" будет влиять только на отображение меню последних файлов.
3. Историю хранить в отдельном файле history.mpc_lst рядом с файлом default.mpcpl.
4. Пишем и используем историю согласно настройкам. В планах доп. настройки.
5. Специальное окно для управления историей (выбор, удаление, фильтр и т.д). Не реализовано.

Структура history.mpc_lst (в разработке).
Для каждого пункта истории будет своя запись содержащая следующие поля:
1. Путь к файлу или URL. Для YouTube URL страницы ролика.
2. Название (при наличии).
3. Время открытия в формате UTC.
4. Позиция просмотра (если известна длительность). Для DVD свой формат записи.
5. Номер выбранной аудио-дорожки (если более одной) и номер выбранных субтитров (если имеются).
6. Путь к выбранной вненим аудио-дорожки или субтитрам. Не реализовано.

Закладки будут сохраняться в файле favorites.mpc_lst.

Наработки добавлены в MPC-BE 1.6.0.6304 alpha.


Небольшой TODO:
1. Попробовать сделать проверку изменения файла по времени изменения. Возможно это уменьшит количество обращений к диску.
2. Сделать распознавание текущих внешних аудиодорожки и субтитров, и записывать путь к ним в историю.
3. Добавить, переименовать, доработать опции по хранению и использовании истории.
4. Подумать о создании временного файла при сохранении истории.
5. Сделать диалог для просмотра и удаления записей истории.

Aleksoid1978

Главный вопрос - для чего все это, что сейчас не устраивает ??
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt


Leo

Всячески поддерживаю. На самом деле достаточно удобно, особенно пункты "5. Номер выбранной аудио-дорожки (если более одной)." и "6. Номер выбранных субтитров (если имеются)."
Кстати все это есть в линуксовом mpv, он хранит историю в виде пачки файлов в подпапке своих настроек. Он даже размеры окошка и т.п. запоминает :).

Aleksoid1978

Ну вообще то номер аудио дорожки и субтитров и так уже запоминается ))
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Leo

Семеееен-семеныч... ^_^. Но все равно идея неплохая, стоит делать переработку истории.

z_mashine

Цитата: V0ltPS: Формат JSON выбран по причине наличия в нашем проекте библиотеки RapidJSON. Можно сохранять историю в формате INI, но тогда придеться добавлять библиотеку simpleini, т.к. системные фичи ужасны и самому изобретать велосипед не хочется.
а рассматривалась ли идея хранения настроек портативной версии плеера в формате json?

V0lt

Цитата: z_mashineа рассматривалась ли идея хранения настроек портативной версии плеера в формате json?
Можно сказать что нет, т.к. смысла никакого.

z_mashine

Цитата: V0ltМожно сказать что нет, т.к. смысла никакого.
ну так а историю пихать в json есть же смысл?

Aleksoid1978

Я вот как-то тоже против придумывания новых файлов. Есть либо реестр либо .ini файл с настройками, там все храниться. Пусть так все и останется.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

Цитата: z_mashineну так а историю пихать в json есть же смысл?
Смыла в JSON для истории тоже особо нет, просто есть парсер-ридер готовый. Сейчас Я больше склоняюсь к записи в стиле INI.

V0lt

#11
Подниму тему.
Начал делать отдельный от настроек файл со списком последних файлов.

1. Файл будет располагаться там же, где сейчас лежит Default.mpcpl. Т.е. либо в профиле, либо в папке плеера (согласно соответствующей настройке).
2. Будет общая история для файлов, URL и DVD (сейчас у DVD свой список).
3. Список сможет хранить до 100 записей. Опция "количество последних файлов" не будет влиять на размер списка. Она будет использоваться при отображении в меню плеера и Windows.
4. Структура файла подобная INI.
5. Начальное количество полей будет минимальным, в будущем можно будет легко добавить.

V0lt

#12
Первый блин - mpc-be_6030_history_file_1

Для стандартных настроек файл history искать тут:
%APPDATA%\MPC-BE\

Aleksoid1978

Ну вроде как работает :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Aleksoid1978

Есть одно предложение - для онлайн-ссылок, ну как минимум для youtube, хранить и отображать название. Отображать можно примерно так - Имя_клипа(url). Было бы очень информативно, а то сейчас в истории смотришь когда на ссылки youtube - и не понимаешь ху из ху :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215