Форум » Cсылки на программы и инструкции » Traders Tool: WishCopier » Ответить

Traders Tool: WishCopier

Wild User: WishCopier предназначен для автоматического (с HDD) или полуавтоматического (с оптических приводов) копирования альбомов и видеоклипов на винчестер по имеющемуся вишлисту. Отделён от Сканера и отправлен в самостоятельное плавание. Тестовая версия. Со всеми вытекающими глюками и недоделками. От вас впечатления - как юзается, есть ли вообще смысл, всё ли понятно, ну, и т.д., включая найденные глюки. Желающие потестить качают тут - http://wild_user.fatal.ru/music_soft/TT_WishCopier.rar Хэлп в комплекте.

Ответов - 214, стр: 1 2 3 4 5 6 7 8 9 10 11 All

Wild User: 2 Me-laman Только учти, что если переименовывать из двухуровневой труктуры в одноуровневую и в папке альбома графика (обложки) сложены в отдельной поддиректории, то эти папки "вытаскиваются" наружу. Надо бы сообщить автору...

Damned: mel0man пишет: Предлагаю более универсальный вариант - предусмотреть возможность запускать внешнюю консольную утилиту для определения UIN. Подавать ей на вход путь к нужному каталогу, и использовать в качестве UIN то что она выведет на экран. И соответственно ввести дополнительный тип UINа для этого способа. Кстати вот меня посетила такая как ни странно мысль. Вся эта "уидизация" - это по сути полное индексирование коллекции. А у кого много, тому это многочасовая головная боль. Я думаю, вряд ли все хранят свои альбомы с папках вида "234234ertdслучайный_текст", у всех папочки как-то да называются. Пусть не всегда 100% правильно, но если построить полный путь к папке, то в нем почти всегда есть: 1. Исполнитель 2. Год 3. Название C:\MYMUSIC\Megadeth\1999-Risk Если есть ошибки в названиях, то у тебя, Wild User, есть алгоритм поиска похожих. Если немного подумать, и ввести систему весов для этих параметров, то можно составить алгоритмик поиска альбома без всяких УИДов. Пример. Задаем веса: Год = 1 Исполнитель = 2 Название = 3 Ищем альбом "Megadeth 1999 Risk" папках C:\MYMUSIC\Megadeth\1999-Risk C:\MYMUSIC\Megadeth 1990 - Rust In Peace C:\MYMUSIC\Tralala\Megadeth\1998 - Risk II Значит во всех строках надо поискать три слова: "Megadeth","1999","Risk". По сумме весов для строк получаем: C:\MYMUSIC\Megadeth\1999-Risk вес=6 C:\MYMUSIC\Megadeth 1990 - Rust In Peace вес=2 C:\MYMUSIC\Tralala\Megadeth\2014 - Risk II вес=5 Отсюда нет сомнений, что искомый альбом в папке 1. Для клипов аналогично. В общем дальше уже детали, если считаешь это дельным, спрашивай.

Trellis: Damned пишет: то в нем почти всегда есть: 1. Исполнитель 2. Год 3. Название Когда есть конкретное название группы и альбома, то этот способ ещё может как-то помочь. Но например в случае с классикой искать по названию папки бесполезно, т.к. может быть несколько композиторов (либо только фамилии, либо с именами), несколько произведений с длинными названиями, и несколько дат, если на диск вошли записи сделанные в разное время. Название папки и название в каталоге будут слабо коррелировать между собой из-за ограниченной длины папки на диске, в каталоге ограничения на длину нет. Хотелось бы видеть способ который позволит автоматически находить нужный альбом со 100% вероятностью. Проиндексировать коллекцию нужно будет только один раз, на это стоит потратить время.


Damned: Trellis пишет: Но например в случае с классикой искать по названию папки бесполезно Т.е. абсолютно никакой связи, никакой-никакой??? Trellis пишет: Хотелось бы видеть способ который позволит автоматически находить нужный альбом со 100% вероятностью. Говорилось, что вероятность совпадения УИДов есть. И она тем выше, чем больше коллекция, я так понимаю. О каких 100%-ах идет речь? Даже MD5 вам не даст 100%, хотя очень близко к тому. Да, еще забыл спросить, при индексировании как идет определение, что вот этот УИД - это вот этот альбом? Не вручную надеюсь. Все равно как-то сопоставляются же папка и альбом?

Trellis: Damned пишет: Т.е. абсолютно никакой связи, никакой-никакой??? Связь может и есть, но программа её точно не сможет найти. О каких 100%-ах идет речь? Даже MD5 вам не даст 100%, хотя очень близко к тому. Учите матчасть :) Вероятность совпадения md5 примерно равна 1/(2^128) или 10^(-39). Вы думаете у кого-то из трейдеров в коллекции из нескольких тысяч позиций может реально произойти совпадение контрольных сумм? У CRC32 вероятность конечно гораздо выше, но всё равно ей можно перебречь. Другое дело что длина входных данных может оказаться слишком маленькой, тогда вероятность совпадения будет зависеть не от длины контрольной суммы, а от вероятности совпадения этих самых данных. Вот здесь предстоит поработать...

Damned: Trellis пишет: Учите матчасть :) Вероятность совпадения md5 примерно равна 1/(2^128) или 10^(-39). А я о том и говорю, что не 100%, я что-то не так сказал? Trellis пишет: Вы думаете у кого-то из трейдеров в коллекции из нескольких тысяч позиций может реально произойти совпадение контрольных сумм? Так вы сейчас как решили делать, я не пойму. По времени треков плюс еще чего-то там? Так это может и совпасть. Я к чему это сказал, что вот вы говорите, по имени не дает 100% гарантии, а какая разница-то, индексирование по УИД тоже не дает 100%. А уж 99% это будет или 99.9% - по-моему одинаково с точки зрения юзера. Если по имени нельзя найти - программа предлагает выбор вручную из наиболее подходящих папок. Делов-то. Я с такой уверенностью говорю об этом, потому что сам использую такой алгоритм для своих альбомов, у меня "неопределения" очень редки.

Wild User: Damned пишет: Кстати вот меня посетила такая как ни странно мысль. Мысль я понял. И позволю себе чертовски не согласиться. Такая реализация имеет кучу минусов. Главный минус - это то, что имеющийся алгоритм нечёткого сравнения придётся переделывать на работу с подстроками (т.е. сдвигать посимвольно всю строку, что весьма тОрмозно). К тому же, нечёткое сравнение подразумевает некоторое отличие одного значения от другого. Это значит, что если требуетсмя скопировать только диск 2 из двухдискового альбома, то вместо него скопируется диск 1. Плюс всяческие опечатки в именах папок могут не гарантировать что альбом будет вообще найден. И ещё - как этот вес получать? Значит надо указывать в Вишкопире колонки с исполнителем альбомом и годом? А то, что взятая информация из Экселя может быть (или не быть) юникодной (умляуты всякие), а в именах папок также может происходить тоже самое - тут как всё это учитывать? В этом случае, генерация идентификаторов в старом варианте (по имени папки) будет быстрее и надёжнее, ибо давала некоторую "волю" по оформлению - учитывались только буквы и цифры. А для такого варианта, когда на диске был альбом с низким битрейтом и я его нашёл в более лучшем качестве и соотв. изменил в каталоге данные, но на "старом" диске остался низкокачественный вариант (что мне из-за одного альбома весь ДВД переписывать?) - добавлялся ещё такой параметр как размер всех треков и их кол-во. Для уже записанных на диски альбомов такой вариант в общем подходит и работает быстро. Но для альбомов на винте подходит не очень - зависимость от "сильного" переименования и редактирования тэгов. Кстати, в программе http://marafon.borda.ru/?1-5-0-00000115-000-0-0-1168636406 похоже используется поиск в подстроках. Вариант в общем рабочий, но с кучей ограничений и недостатков. Попробовать - да, но исходя из реалий, мне, например, нужна гарантия, что человек получит по вишлисту именно ту позицию, которую ему надо. Damned пишет: Да, еще забыл спросить, при индексировании как идет определение, что вот этот УИД - это вот этот альбом? Достаточно примитивно. Есть подпрограмма, которая выдаёт UID для альбома (она одна для генерации и определения УИД-ов). Есть список УИД-ов из вишлиста и есть список найденных программой альбомов. Берём альбом, определяем идентификатор, смотрим, есть ли он в списке. Если нужный кидаем в список для копирования. Далее, получившийся список отправляем куда нужно. Всё. А вообще, на текущий момент выкладки такие (навеяно вышеописанной TRM-технологией). Имеем условия - имена, размеры и тэги не должны оказывать никакого влияния на УИД-ы. Так? Далее. Желательна "отвязка" программы от жёсткой фиксации её понимания мультимедиаформатов с возможностью оперативного добавления любых других. Для этого, предположим, берём файл (о формате мы ничего не знаем), делаем несколько шестнадцатиричных дампов из разных мест файла и на их основе формируем некий код. Для альбома - аналогично, только для каждого трека и код будет сформирован на основе всех треков. Что имеем при этом - имена папок (и их структура) и названия файлов нас уже нисколько не колышат, содержимое / наличие тэгов и формат файлов - тоже. Размеры, в общем, также не окажут влияния, ибо привязка к ним есть только косвенная - по "коэффициенту размера", который допускает очень широкое колебание и нужен только для расчёта нужных смещений для дампа. Типа того - "маленькие" файлы - до 1 mb, "средние" - от 1 до 50 mb "большие" - выше 50 mb. Ну, это всё теория. Реализацию почти закончил, но есть пара нюансов, которые и пытаюсь победить.

Trellis: Damned пишет: А уж 99% это будет или 99.9% - по-моему одинаково с точки зрения юзера. Смотря какого юзера :) Для меня например отличие в этом случае в 10 раз, что совсем не одинаково. А если сравнивать 10^(-39) и 0.01, то отличие получается совсем астрономическое. Damned пишет: у меня "неопределения" очень редки. У меня они будут весьма часты, думаю у других также. Wild User написал выше чем это грозит, я с ним полностью согласен.

Damned: Damned пишет: Достаточно примитивно. Есть подпрограмма, которая выдаёт UID для альбома (она одна для генерации и определения УИД-ов). Есть список УИД-ов из вишлиста и есть список найденных программой альбомов. Берём альбом, определяем идентификатор, смотрим, есть ли он в списке. Если нужный кидаем в список для копирования. Далее, получившийся список отправляем куда нужно. Всё. Я не о том. Я о начальном заполнении. Когда у меня только список альбомов в Экслеле и я хочу проставить им всем УИД. Я так понимаю, я тогда вставляю все диски по очереди - как определится что позиция номер 125 в такой-то папке? Или наоборот, что в такой-то папке позиция 125? Trellis пишет: У меня они будут весьма часты, думаю у других также. Wild User написал выше чем это грозит, я с ним полностью согласен. Ну как хотите, мое дело предложить, мне этот способ очень подошел, и не пришлось париться с индексацией всей коллекции.

Wild User: Damned пишет: Я не о том. Я о начальном заполнении. Когда у меня только список альбомов в Экслеле и я хочу проставить им всем УИД. А... Ну тут конечно неудобно малость... Неудобно из Вишкопира делать это. Хотя, если при уидизации "втыкать" правильный Disc ID а потом уже из Экслеля, фильтровать по номеру диска, то копи-пасте можно делать не поячеечно, а для всех альбомов диска. А так, вообще, Сканер будет определять точно такие же УИД-ы и тогда заполнять ничего не нужно будет вручную. По крайней мере, для альбомов. Либо надо ещё мозг помучить...

Whats: А в чём проблема то? У Bete_Noire выложена целая пачка скриптов для изменения структуры каталогов. (http://betenoire.narod.ru/files/dir_rename.rar) А вишкопир сохраняет структуру папок при копировании - чтобы потом можно было юзать эти скрипты? Они неплохи, но у них есть ряд неудобств - 1) не работают со структурами папок, где год альбома записан в скобках, 2) берут инфу из названия папок, которые не всегда бывают названы правильно (в отличие от каталога =)) 3) юзать их не очень удобно - каждый раз нужно искать нужный скрипт и копировать его в папку с альбомами.

Trellis: Wild User пишет: Хотя, если при уидизации "втыкать" правильный Disc ID а потом уже из Экслеля, фильтровать по номеру диска, то копи-пасте можно делать не поячеечно, а для всех альбомов диска. Я примерно так же вставляю продолжительность альбомов и размер апешек в каталог, по copy-paste из списка сгенерированного в MPEG Audio Collection в основной список, отсортировав их по номеру болванки. Рутина конечно, можно было бы частично автоматизировать, но занимает это не так уж много времени, полчаса в месяц.

Wild User: Вставка, конечно вопрос тоже не из последних, но пока задача-минимум: родить эту чертову иудизацию Далее, будет видно. В сканере будут генериться такие же идентификаторы, так что там этот вопрос будет решён. Но только для поддерживаемых им форматов. А в самом копире... Пока сделал "обрезание" уровней каталогов до двух (с конца) для облегчения "восприятия" позиций, потом, may be, прилеплю туды "вычленятор" из пути с раскидкой по ячейкам исполнителя, год и альбом, что не совсем облегчит добавление в Эксель, но позволит правильно отсортировывать альбомы для упрощения копи-пасте. Это уже опробовано в Сканере, вроде работает нормально... Там правда надо набивать шаблоны, но можно попробовать слепить универсальные шаблоны под ключевые моменты оформления папок. Их получится не так уж и много. Регулярные выражения рулят! В конце-концов нетрудно забодяжить и самостоятельный аналог версии предложенной Damned -м, для эксперимента, база то уже есть и идея имеет смысл хотя бы потому, что не требует внесения в каталог ничего лишнего...

Damned: Trellis пишет: Я примерно так же вставляю продолжительность альбомов и размер апешек в каталог, по copy-paste из списка сгенерированного в MPEG Audio Collection в основной список, отсортировав их по номеру болванки. Рутина конечно И эти люди говорят мне о каких-то 100%-тах вероятности при копировании вишлиста :) Trellis пишет: Учите матчасть :) Кстати знаем мы таких академиков, как вы, они ко мне десятками на собеседования ходят, только вот когда попросишь, простейший цикл не запрограммируют (не потому что операторов не знают, а не могут алгоритм составить).

Damned: Wild User пишет: прилеплю туды "вычленятор" из пути с раскидкой по ячейкам исполнителя, год и альбом И мы опять приходим к тому, что только что поругали.

heine: Damned пишет: Кстати знаем мы таких академиков, как вы, они ко мне десятками на собеседования ходят, только вот когда попросишь, простейший цикл не запрограммируют что ж ты сам тогда программу не напишешь? а пока только академиков ругаешь Wild User свет в конце тоннеля близок? хотелось бы все-таки найти какое-то разрешение для проблемы многодисковых релизов (когда они все находятся в одной папке) и собственно всё... конечно некоторое неудобство доставит добавление уидов в эксель. но для хардов по крайней мере это вовсе не критично

Trellis: Damned пишет: И эти люди говорят мне о каких-то 100%-тах вероятности при копировании вишлиста :) Иногда своим рукам я доверяю больше чем программам :)

Damned: heine пишет: что ж ты сам тогда программу не напишешь? а пока только академиков ругаешь Я для себя написал. У меня вся база MP3 в самописной базе, к слову сказать. Так что не надо. И копирование вишлиста по MP3 с дисков было написано мной уже более года назад.

Wild User: Господа! Не вижу смысла в таких спорах! Если только покричать друг на друга... Но это всё равно ничего не даст, каждый один чёрт останется при своём... heine пишет: свет в конце тоннеля близок? Близок уже. heine пишет: хотелось бы все-таки найти какое-то разрешение для проблемы многодисковых релизов (когда они все находятся в одной папке) А какая тут проблема то? Если имеется ввиду, что альбомы имеющие в своём составе два и более дисков (которые помещены в "своих" папках) должны иметь общий идентификатор, то сразу говорю - тут ничем не порадую - такого скорее всего не будет. Идентификатор генерится для папки, в которой лежат треки. В противном случае, придётся либо "сливать" все треки дисков этого альбома в одну папку, что неприемлемо, либо такие многодисковые позиции разбивать в каталоге на Artist - Year - Album (CD 1) ... Artist - Year - Album (CD N) а не писать Artist - Year - Album (8 CD's) heine пишет: некоторое неудобство доставит добавление уидов в эксель Зато это компенсируется потом удобством использования (надеюсь). Опять же... Не всё сразу строится. Может удастся найти какое-нибудь решение.

heine: Wild User пишет: либо такие многодисковые позиции разбивать в каталоге на очень жаль что так... допустим на HDD я проведу (не без пота и крови конечно :)) такую разбивку а что делать с тем что хранится на дисках? каким образом они будут копироваться по вишлисту? скопированная таким образом папка будет иметь название CD1 и т.п.? либо она будет копироваться с папкой верхнего уровня? т.е. artist - album\cd1? хорошо бы если второй вариант. но даже в этом случае в списке все равно придется все многодисковые релизы разбивать на строчки



полная версия страницы