AIMP Forum

AIMP for Windows => Плеер / Player => Предложения / Suggestions => Фонотека / Music Library => Topic started by: slafko0001 on September 21, 2011, 15:31:57

Title: Синхронизация любимых треков
Post by: slafko0001 on September 21, 2011, 15:31:57
Привет.

Не знаю полезная эта может быть функция и вообще реализуемая. Но.

Хотелось бы синхронизацию понравившихся треков между различными компами.
Пример: аимп на работе и дома. На работе ставлю 5* треку и дома могу посмотреть список с оценками. А еще если такой трек есть и на работе и дома, то чтобы была возможность его прослушать.

Нужная\удобная\бесполезная фича решайте сами.

Спасибо.
Title: Re: Синхронизация любимых треков
Post by: Soolo on September 21, 2011, 15:47:18
Ещё бы услышать способ реализации этой фишки...
Title: Re: Синхронизация любимых треков
Post by: Razmus on September 21, 2011, 15:50:03
Дроп бокс вам в помощь... отправили файл в папку и он отсинхронизируется. Останется только пересканировать плейлист.
Title: Re: Синхронизация любимых треков
Post by: Алексей Долматов on September 21, 2011, 17:09:26
Дроп бокс вам в помощь... отправили файл в папку и он отсинхронизируется. Останется только пересканировать плейлист.
Так то можно и сам плеер через дропбокс синхронизировать со всеми настройками (однопользовательский)
Title: Re: Синхронизация любимых треков
Post by: Razmus on September 21, 2011, 17:35:33
Так то можно и сам плеер через дропбокс синхронизировать со всеми настройками (однопользовательский)
Вариантов масса)
Правда для варианта с плеером прийдется следить за расположение большего числа компонетнов и на обеих машинах.
Title: Re: Синхронизация любимых треков
Post by: slafko0001 on September 21, 2011, 19:46:38
Это я хотел предложить чтобы как айтюнс+айпод :) Хз как это реализуется. Может вы знаете.
Title: Re: Синхронизация любимых треков
Post by: Razmus on September 21, 2011, 22:16:50
Это я хотел предложить чтобы как айтюнс+айпод :) Хз как это реализуется. Может вы знаете.
а как ведут себя айтюнс и айпод?)
Title: Re: Синхронизация любимых треков
Post by: WannaBe on September 22, 2011, 04:38:15
Ещё бы услышать способ реализации этой фишки...

Не знаю, правильно ли я понял топикстартера, но когда я думал об этой идее, на ум приходила примерно такая схема:
Во первых, под синхронизацией я понимаю не банальное копирование треков - его можно делать либо стадартными способами, имеющимися в фонотеке, либо как я предложил в предыдущей теме - экспортом (https://www.aimp.ru/forum/index.php?topic=30112.0) (который позволит полноценно фильтровать треки и даже сохранять структуру папок).

Полноценной синхронизацией же будет являться не только вышеупомянутое копирование треков, но и синхронизация баз данных AIMP на разных компьютерах, с сохранением оценок, меток т.д.


Тут вижу два варианта реализации:

Вариант 1:

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

Тогда запускаем в Фонотеке на этом Компьютере диалог Синхронизации,
в ней настраиваем профили (например, для каждого ноутбука).

Профиль описывает:
1) синхронизирующуюся папку на текущем Компьютере (пример: D:\Music\Sync\)
2) путь к папке на удаленном компьютере (\\Notebook1\D$\Music\Sync\)
3) (необязательно) какие именно треки нужно синхронизировать (учитывая фильтры оценки, типы файлов и т.д.) - при задании этих фильтров можно использовать точно такой же диалог, как я нарисовал для Экспорта (https://www.aimp.ru/forum/index.php?topic=30112.0).
4) политику удаления файлов (удалять ли со всех компьютеров треки, удаленные с этого ПК, удалять ли с этого ПК треки, удаленные с ноутбука) ***

В корне синхронизируемых папок лежит служебный файл, который служит для передачи оценок и меток между комптютерами. Также в нем можно делать отметки об удаленных файлах. Назову этот файл sync.dat для удобства.

Собственно все.
При нажатии "Синхронизировать" на Компьютере,
Фонотека проделывает следующее (полный алгоритм):
1) читает локальный sync.dat
2) сканирует список файлов в D:\Music\Sync\
3) делает отметки об удалении файлов (для файлов, которые числятся в файле sync.dat, но отсутствуют в D:\Music\Sync\)
4) составляет список файлов в \\Notebook1\D$\Music\Sync\
(это удаленный путь, записанный в в текущем профиле синхронизации)
5) читает удаленный sync.dat (\\Notebook1\D$\Music\Sync\sync.dat), а именно перечень удаленных файлов (удаленных с ноутбука)
6) если политика удаления файлов предполагает удаление, Фонотека удаляет из локальной папки (D:\Music\Sync\) все файлы, числящиеся в удаленном \\Notebook1\D$\Music\Sync\sync.dat, как удаленные.
7) сканирует список файлов в удаленной папке (\\Notebook1\D$\Music\Sync\)
6) согласно двум спискам файлов (локальному и удаленному), синхронизирует их (копирует на каждую машину отсутствующие на ней файлы, пока содержимое обеих папок не станет одинаковым)
7) согласно двум файлам sync.dat синхронизирует все записи о файлах (оценки, метки и прочие данные БД - мета-информацию)

// перечитал пост и заметил, что слово "удаленный" использую и в значении "deleted" (тот, который удалили), и в значении "remote" (находящийся на удаленном компьютере) - но по контексту, надеюсь, понятно.

На этом компьютере действия закончены. А после запуска Фонотеки на другом (ноутбуке, например), она просто прочитает файл sync.dat на этом компьютере и перенесет мета-информацию в базу данных. И у пользователя на этом ноутбуке будет точная копия базы данных AIMP с другого Комьютера.


Вариант 2:

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

А синхронизация при этом будет ничем иным, как копированием базы данных на другой компьютер,с поправкой на разные пути к корневым папкам синхронизации, например, на Компьютере музыка лежит в D:\Music\, на ноутбуке в C:\MyMusic\.

Делать эту синхронизацию можно хоть по интернет - точно как синхронизация закладок в браузерах (Opera Link, Firefox Sync). При этом в передаваемом файле синхронизации абсолютные пути ("D:\Music\Robbie Williams - Morning Sun.mp3") будут заменяться на относительные ("SYNC\Robbie Williams - Morning Sun.mp3"), а на другом заменяться обратно с поправкой на путь ("C:\MyMusic\\Robbie Williams - Morning Sun.mp3"). После этого на Ноутбуке окажется точная копия база данных с Компьютера со всеми оценками и метками. Можно добавить в GUI экспорт импорт файла DB, и носить этот файл из дому на работу на флешке, чтоб не приходилось пользователю лазить в профиль AIMP и копировать AIMP3.db вручную.


Но честно говоря, на вопрос в голосовании скорее всего отвечу: Нейтрально. Несмотря на то, что мне близки проблемы топикстартера - я упорядочиваю музыку с помощью оценок, и хотелось бы видеть их зеркальное отражение на всех компьютерах. Но алгоритм синхронизации должен быть идеально отдебаженным, иначе можно ждать случайного удаления "любимых треков" топикстартера, дубли в базе данных, и прочие ошибки, которыми пестрят разные программы синхронизации файлов. Поэтому лично я этой функции в AIMP пока что не жду.
Title: Re: Синхронизация любимых треков
Post by: WannaBe on September 22, 2011, 05:14:28
Дроп бокс вам в помощь... отправили файл в папку и он отсинхронизируется. Останется только пересканировать плейлист.

Кстати и этим можно полноценно пользоваться уже сейчас.

Файл базы данных, где хранятся все оценки, метки фонотеки, хранится, в профиле пользователя в AudioLibrary\AIMP3.db.

Его можно синхронизировать между компьютерами любой программой синхронизации (да хоть в ручную копировать)
Единственное условие работоспособности это системы - музыка на всех компьютерах должна храниться по одному адресу (например D:\Music). И все. При этом даже не обязательно копировать на другой компьютер все подпапки с музыкой.

Если на ПК1 будут папки:
D:\Music\Jazz\ и D:\Music\Soul\
а на ПК2 будет только одна из них:
D:\Music\Jazz\
то никаких проблем не возникнет, фонотека на ПК2 посто не сможет проиграть на ПК2 файлы из папки Soul (так как их там не будет), зато Jazz можно будет слушать, ставить оценки и т.д., а когда файл фонотеки вернется на ПК1, то папка Soul снова оживет, а в Фонотеке ПК1 появятся оценки, сделанные на ПК2. Главное -  не путать файлы DB и заменять старый новым, а не наоборот. Также нужно понимать, что если обоими компьютерами пользуются одновременно, и в обоих ставят оценки, то при замене файлов сохранятся оценки только из записываемого файла.

Также не стоит на ПК2, на котором отсутствует папка Soul запускать диалог "Удаления отсутствующих файлов" из фонотеки - понятно, чем это закончится.
Title: Re: Синхронизация любимых треков
Post by: Алексей Долматов on September 22, 2011, 08:07:21
В общем выходит необходимо будет менять алгоритм работы фонотеки для синхронизации.
Сейчас я вижу такой принцип:
1. Плеер\База данных лежит в папке постоянно синхронизируемой с интернетом и одновременно используется плеером
2. В базе данных также прописывается к каждому треку компьютер на котором есть этот файл (к примеру ID ПК) или их перечисление
3. Треки не принадлежащие этому ПК отмечаются для отличия (цвет\спецсимвол)
4. При очистке выбирается вариант почистить полностью базу данных учитывая "чужой" ID или только треки с этого ПК
5. При добавлении файлы соответственно прописывается к какому ПК принадлежит. При редактировании информации меняется всё кроме ID
!. Соответственно пользователь будет возможность в "реальном времени" управлять треками (зависит от скорости интернета - соответственно правильности синхронизации). При этом будет уязвим промежуток времени закачка последнего по времени файла в интернет - обновление этого файла на ПК
!!. Как вариант при обновлении выбирается обновить или объединить файлы базу данных. В случае объединения треки отсутствующие в находящемся на ПК файле, но присутствующие в новом добавляются, если есть на ПК, но нет в новом, то исключаются.


Примерная схема базы данных
NAMEYEARID
Shana Prohohorihina Pesok Bufa Dance Remix20111
DJ Nastja Krajnova - Ja eto ti20102
А-Студио - Ночь-Подруга (ремикс)20121|2
Title: Re: Синхронизация любимых треков
Post by: Soolo on September 22, 2011, 09:16:58
 :o ::)