The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск музыкального плеера mpz 1.0"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Выпуск музыкального плеера mpz 1.0" +/
Сообщение от arisu (ok), 09-Окт-20, 15:23 
> Так, падажжи. Идея хорошая, мне по нраву. А как оно устроено (есть
> сорцы?), как я могу получать доступ к метаданным?

сырцы есть, но какой-то древней версии, без многих фич, и фиг знает где. ну, жопорук. оно ничаянно. благо, давно собраный бинарь работает. а я всё никак не соберусь допилить что потеряно — потому что «работает и ладно».

устроено просто: есть сканер, который сканит каталоги по списку, выдёргивает метаданные из тэгов и прочее нужное, нормализует (убирает лишние пробелы, знаки препинания и ты пы — чтобы руками в тэгах это не делать), и пишет из этого большую базу.

и есть драйвер, который читает эту базу. поскольку вся инфа там есть — то никакой проблемы сделать по ней выборку. fuse тебе даёт пути типа `/screaming_bastards/best_album` — готовый запрос. то есть, ты этот каталог плееру кормишь, он его пытается отсканить, fuse-драйвер на это формирует ему список.

конечно, запросы можно делать и сложнее, типа: `/performer/screaming_bastards/year/1970/and/album/best_album`. и прочее типа `/contains/` и ты пы. на сколько фантазии хватит.

это всё ты маунтишь в любую удобную mount point — и дело в шляпе.

фузовый драйвер — это обычная юзермодная библиотека. можешь спокойно всё из своей скулайтовой базы тащить, только конвертни запрос-в-виде-пути в sql. фича в том, что драйверу передаются полные пути как при открытии файлов, так и при открытии каталогов на сканирование. так что их можно парзить как обычные запросы с любым синтаксисом, который ты сочинишь. ещё в расширеных аттрибутах можно возвращать метаданные — это если ты захочешь через какое-нибудь listxattr их посмотреть.

у меня там самопальная микробаза и говнокод на сишечке. в принципе, никакой особой магии нет, просто посмотри доки по fuse — там всё очень просто. чего не реализовано (mkdir там и прочее) — возвращаем ошибку. -EPERM, например. остальное обрабатываем. эту хрень хоть на бидоне можно запилить, если лень с сишечкой любиться.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск музыкального плеера mpz 1.0, opennews, 08-Окт-20, 10:25  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру