The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск музыкального плеера mpz 1.0"
Отправлено arisu, 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, например. остальное обрабатываем. эту хрень хоть на бидоне можно запилить, если лень с сишечкой любиться.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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