Загрузка похожих файлов

Автор V0lt, 05 декабря 2015, 17:25:15

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

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

V0lt

Цитировать"Светлячок (Firefly) [S01E01] многоголосовый перевод.mkv"
и
"Светлячок (Firefly) [S01E01] перевод Живова.mkv"
А можно пример реальной раздачи или раздач, где именно такие похожие имена? :p

Цитировать"Game.of.Thrones.S05EERT.1231080p.mkv". Понятно что я утрирую - но факт остается фактов.
Я тоже могу утрировать и тоже всякую ерунду написать, твоя функция справиться?
Может будем приводить РЕАЛЬНЫЕ примеры?

И вообще. Ты сейчас хаешь регулярку написанную на коленке и с поиском по  стандартной файловой маске. А может в финале будет маска для swscanf?

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

Так не одна регулярка нужна, а несколько - в порядке убывания сложности. Начиная с тех, что буквально под конкретного релизера и заканчивая под "имя файла 1.avi". Не отработала сложная - отработала простая.

Цитата: Aleksoid1978Да я блин говорю что подход не верный, надо отталкиваться от самого имени файла а не придумывать регулярки.

Так ведь как ни крути и от чего не отталкивайся, такая задача - явные регулярки. Они же именно для этих целей.

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

Цитата: Aleksoid1978Понятное дело что регулярки - но регулярка строится на имени файла. По другому - никак.
Так а разве кто-то против?

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

Так мы и не знаем имени файла (на момент создания алгоритма, не на момент открытия). Смотри, у нас есть набор шаблонов, каким может быть имя/имена файлов. Сначала шаблоны, под которые подпадает малое количество файлов со сложной системой именования (типа тех, что Volt приводил). Они сработали - отлично, это предусмотренные заранее возможные имена тех же сериалов (с качеством, сезонами и т.п.). Нет срабатывания - применяем шаблон попроще. И так до тех пор, пока не сработает простейший шаблон или не сработает ни один. Вот этот набор шаблонов и будет алгоритмом поиска "похожести".
Если его вынести в доступ пользователю - все будут счастливы. Кого все устраивает - использует готовый набор, кого нет - дописывает свои условия. Причем имхо достаточно реестра/ини, незачем в интерфейс выносить.

Aleksoid1978

Считаю это извратом :) Сейчас рабочий алгоритм подходит под 90% случаев, что плохого ???
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

Цитата: Aleksoid1978Считаю это извратом :) Сейчас рабочий алгоритм подходит под 90% случаев, что плохого ???
Да ну? Твой алгоритм по сути так же построен :). Тем более 90% - не 100%, всегда будет кто-то не доволен. Желателен аргумент - "поправь под себя в конфиге" ;).

Aleksoid1978

Мой алгоритм не построен на заранее подготовленных регулярках/шаблонах. Он строится при открытии файла, исходя из имени файла.
Пример, имя файла:
serial.S01.E02.720p.mkv
для него строится регулярка
serial\\.S\\d+\\.E\\d+\\.720p\\.mkv

720p/1080p/1140p/2160p - игнорируются.

Будет файл с именем "1 серия.avi" или "MOV_0034.mp4" - и регулярка будет уже другая.
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

Так это и есть регулярка :). Ты ищешь цифры, дропая не подходящие под шаблон (720p, двд, BD) и получаешь конечную инкрементную регулярку. Не путай конечную регулярку для добавления в список имеющихся файлов и регулярку для поиска таких файлов.

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