/vinyler

A simple UI for collectibles data input.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

vinyler v1.3b

A simple UI for musical album collectible items data input. The user is prompted to input data about music albums collectibles (currently supports music albums and books) and they are stored and ready to be exported in JSON format. The program was made to make indexing and organising music collections easier. It was later expanded to index books too and plans for custom collectible formats is planned for the future.

Data

When the program starts the user selects if he wants to begin an album or book list. The user is asked to input the following data in this order:

Title

The album*/book* title.

Automatic first letter of word capitalization (if it doesn't contain symbols)

Artist /Authour

The artist(s) that published the album.

Automatic first letter of word capitalization (if it doesn't contain symbols)

Year

The year when the album /book was published.

Genre

The albums general genre.

Automatic first letter of word capitalization (if it doesn't contain symbols)

Format

The format on which the album is stored (eg. Vinyl, Tape, CD).

Automatic changes for albums: v, lp, vinyl -> Vinyl | t, tape, cassette -> Tape | c, cd -> CD Automatic changes for books: p, paper -> Paperback | h, hard -> Hardcover

Owner

Who currently has the album /book in posession.

ID (Automatically generated)

A (most propably) unique GUID number is generated for every entry with an API request to uuidgenerator.net. This ensures that even if you have a duplicate copy of the same album the two entries are NOT identicall. Every entry carries its own unique id number.

Commands

Starting a title entry (after prompted with "Next: ") with a / will trigger a command:

/list

Will return a list with the currently loaded albums with their index number.

/id

Will prompt for an index number and will return the unique ID number for the given entry.

/del

Will prompt for an index number and will unload the given album. If no index is given it will unload the last entry.

/sort

Will sort all the entries. Sorting always happens accending, alphabetically, artist first (ignoring the word "The "), title second, format last.

/clean

Will delete any duplicate entries with the same id number. Note that this doesn't mean that it will delete duplicates if you made an entry twice for the same album twice. Under normal operation this command should be useless.

/load

Will prompt for a JSON file name. The file should have been generated by this software or follow the same JSON schema. Loading a different schema that contains a LIST of DICTIONARIES will not fail. This includes loading a book JSON in an album list and vice versa. If something like this happens the lists will be mixed and /list and other functions might not work properly as they do not expect different dictionary keys. It will then read the saved JSON file and concatinate with the already loaded album list.

/save

Will prompt for a JSON file name. It will then sort the loaded data and export everything into a JSON file.

Future development

The first expansion planned is for custom entries to be supported. This will enable the user to add custom fields for his collectibles. In the future I plan on retrieving missing album/book/etc. data from open and available APIs. An app to browse and manipulate from a convinient GUI is also scheduled when I find the time.