arthi-chaud / meelo Goto Github PK
View Code? Open in Web Editor NEWSelf-Hosted, Personal Music Server, designed for collectors and music maniacs
License: GNU General Public License v3.0
Self-Hosted, Personal Music Server, designed for collectors and music maniacs
License: GNU General Public License v3.0
Currently, slugs are just thrown into the code, without real and solid implementation
The following modification must be done:
Some Track may have their own illustration, like music videos (the illustration being a thumbnail)
Therefore, the illustration file system might be adapted, it'll look like this:
/meelo/metadata/artistSlug/releaseSlug/disc-index-track-index/cover.jpg
There should be a 'Playlist' feature
Back-end:
/metadata/_playlists/$slug
Front-end:
Same as #20, but the file would be transcoded, and streamed instead of downloaded
Currently, the database Schema does not allow two different songs with the same title by one sad artist.
However, some artists have multiple songs with the same title.
Therefore, we should be able to manage two different songs with the same title.
The solution would be to use the parent album's release date to differentiate. But that would cause other issues (for exemple with compilations or live albums)
Find a way to get artists that have at least one album
User should be able to edit metadata
On resource request, if they are requested from a parent resource, check that the parent exists, to return an error, instead of an empty list
From a route, we should access entries with basic metadata
User should be able to replace or set an illustration from a URL
Create a type to sort items on 'getMany' requests
Should custom error extends HttpException?
Should custom errors be catches by a custom filter, which resolves the Http status code?
If a registered file (see #2) is absent/has been deleted, its entry and metadata should be deleted
On metadata parsing (#5), if there is one, the artcover should be exported to a file, whose path is built from the entry's metadata
With #58, the controllers should be able to request a way to sort requested items
Current ORM creates by default
timestamps column which are not used by the app, and sent in the reply on entities fetch.
These column should be removed
On item fetch, the 'slug' field is just a string.
It should be a proper 'Slug' object
On file registration (#2), its metadata should be parsed and added to the database
We should be able to ignore a source file (i.e. not add/delete it and its metadata from the DB) that match the RegExp
The entries of the following types should be deleted if:
Using MD5 checksum stored in the DB, extracted at first scan, we know if a source file was changed.
On change, the related metadata should be updated
As libraries get bigger over time, many files are added,
But we might forget to set some metadata to them.
In order to keep a library as clean as possible, an audit feature would be nice.
It would parse the database, and raise any missing data and/or empty fields like a genre, a release date, an unspecified disc index, etc.
On illustration extraction, the log always says the illustration has been extracted, even if it has not (because the illustration already was extracted)
The server should register (i.e. add its path to the database, and then parse its metadata) a file if its path matches one of the RegExp provided in the settings.json file.
With #15, The metadata could be applied to the source file
On 'getMany' queries, add pagination links to allow user to navigate easily between pages
Define the way illustration are stored:
Prisma's 'find' methods should be templated to get an accurate return value type
Add a 'select' query parameter to define which fields should be returned
When a file's metadata parsing fail, a simple, but not detailed, there's a warning log, and the file entry is deleted.
The warning log should detail what went wrong in the parsing
Currently, discs are virtual objects, as they are only referred to by track's disc's index
From a die-hard collector point of view, in a box-set, the discs within can be differentiated using a name, an illustration etc.
Therefore, a Disc model should be developed. It would store tracks, have an optional name & illustration, a index in the parent release. This would be a little overkill in 95+% of releases
From a route, we should be able to retrieve the raw source file, for a potential front-end player
If a ParseIntPipe fails, a 'BadRequest' HTTP code should be returned
As #5, but on user request
An 'album' object can be anything from:
The 'album' metadata should include this field to sort and filter albums
Enhance 'get' and 'getMany' method to be able to have a 'select' parameter to define what field should be returned
the swagger should be accessible from a route
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.