Skip to content

Euro20179/AIO-LIMAS

Repository files navigation

The All In One Library Magement System

AIO LIMAS For short

entries graph

The Point

I made this program because i had a system for managing which shows/movies i had watched/planned,

And I had another system for keeping track of how much I've spent on Manga, DVDS, and the like.

I realized that I could make a program that combines both of these problems into one massive inventory management thingy

For some extra challenge, I also want to support as many media types as possible on as many formats as possible

example formats: xbox 360 digital blu ray dvd

example media types: Movie Show Manga Book Game BoardGame Song

Running

Tip

To use the omdb provider, get an omdb key and export the OMDB_KEY variable

Note

Only tested on linux

git clone https://github.com/euro20179/aio-limas

cd aio-limas

go run .

A server and web ui will then be running on localhost:8080

Docs

Basic documentation can be found at /docs

TODO

  • enable/disable children/copies
  • steam account linking
  • image media type
    • when fetching metadata, use ai to generate a description of the image
  • search by description
  • disable ACCOUNT_NUMBER by default
  • documentation
    • webservice
    • ui
  • edit info/user/meta tables from ui
    • info
    • meta
    • user decided against, as you can already edit everything anyway
  • calc mode
  • proper search parser
    • on the server there could be something that parses some language like:
      • rating > 90 && (rating < 95 || en_title ~ "this is a neat title%")
      • special syntax where {...} is left alone, and passed directly to sqlite as an expression
        • eg: {rating/ratingMax * 100} > 90
      • ! will negate the next thing
        • if it prefixes an expression, it inverts the entire expression acting as a not
        • if it prefixes an operator, it inverts the operator, eg !< becomes >=
        • eg: !(rating > 90) == rating <= 90 == rating !> 90
      • Any part that fails to parse, will be counted as && en_title ~ "<words>" eg: this fails to parse == en_title ~ "this fails to parse", eg2: rating > 90 && search% == rating > 90 && en_title ~ "search%"
    • make a new api query-v3, the sole parameter is a query in the form of that language
    • the server will try to parse it, if it fails to parse, it is treated as: en_title ~ "<the query>"
    • partial, support &&, ||, and various comparison operators, unordered
  • collection stat calculation modifier
  • requires
    • an id that should be viewed before this entry
    • eg: starwars 2 requires starwars 1
    • if an entry requires more than 1 entry, make a collection containing all the requirements
  • In thee ui, in graph mode, allow the user to write a function of some kind to determine how the grouping will work, isntead of the predetermined year/item name/tags etc...
    • the user's function should return a string for each item indicating which group it's in

About

The all in one media library management system

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published