Re: Brain Storming - Audio Book Library creation
So some thoughts for you.
First the magic format you've never heard of is called toml. If you are using something with a toml parser (available in at least JS, Rust, Python, and Go) then you have something that is as flexible/easy to work with as JSON, and as easy to read/write as an INI file. The simplest version of toml is just key=value pairs one per line, and I don't believe you even have to quote single word strings, but it'll grow to any level of complexity you eventually need while still being pretty readable and you won't have to write your own parsers.
I'm using JSON for now, but you are right, i'll consider using TOML instead as soon as users are required to edit the files on their own to make things simpler.
Second, if you're not going to mandate a folder structure but if you expect books from people, you can build a series of regular expressions which match common file naming formats. Then for each regular _expression_ in that list, grab all the media files in the folder and see if it matches. If it's nested subfolders, you can just put the / in the file name and match on that; the key point is to just get a list of all the files relative to wherever the book starts. Once you match one, you can say "This looks like a book from audible. Is this correct?" or whatever, then run a thing that builds your index file from that. After that actually playing just gets to use the index file.
That was my first idea of doing things. The downside however is that you'll have a never-ending task at hand, because people will have dozens and more ways to sort their library, name their books etc. You'd also have the problem that you'd be unable to distinguish between e.g. book title and author. But that would be the most independent, but also vunerable way to do things (vulnerable in this case means that either developer or users would have alot to correct after running the automatic detection).
I imagine you can also get some mileage from doing the same thing, but this time it's a regular _expression_ that tries to match ISBNs, and you get the possible values by grabbing metadata embedded in media files (if you didn't know, this is a thing; it's how media players add tags for example). How often it is for an audiobook to put the info there I don't know, as I'm not an audiobook person.
I already added metadata support, grabbing ISBN wouldn't be the problem. Checking my rather large library of about 2 terrabytes of audio books, I however have like two or three books with included ISBN only, and putting them in would mean alot of work by the library owner. That would be an alternative way, but doesn't seem to be very efficient for now. It could be kinda of a fallback however.
beyond that, you're kind of in the wrong forum for this question; it's probably a better fit for off topic. The best people to ask about what they want are the people that'd use your app, and this is the forum specifically for programmers, so you're dropping a lot of potential answers by being here.
You're right there, but I wanted to discuss about it from a programmers perspective first before going into the more general discussion in the Off-topic room. I will however consider doing this sooner than later, since it seems that there are no other ideas than the few mentioned earlier.
Thanks for your time reading and answering though. I appreciate it.
Best regards.
Hijacker
-- Audiogames-reflector mailing list Audiogames-reflector@sabahattin-gucukoglu.com https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector