Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/euro20179/aio-limas
The all in one media library management system
https://github.com/euro20179/aio-limas
anilist anime manga media-manager omdb
Last synced: 5 days ago
JSON representation
The all in one media library management system
- Host: GitHub
- URL: https://github.com/euro20179/aio-limas
- Owner: Euro20179
- License: gpl-2.0
- Created: 2024-08-18T21:14:43.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-12-26T16:12:41.000Z (9 days ago)
- Last Synced: 2024-12-26T17:19:55.808Z (9 days ago)
- Topics: anilist, anime, manga, media-manager, omdb
- Language: Go
- Homepage:
- Size: 1.17 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# The **A**ll **I**n **O**ne **Li**brary **Ma**gement **S**ystem
### AIO LIMAS For short
![entries](./readme-assets/entries.png)
![graph](./readme-assets/graph.png)### 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 thingyFor some extra challenge, I also want to support as many media types as possible on as many
formats as possibleexample formats:
xbox 360
digital
blu ray
dvdexample 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```bash
git clone https://github.com/euro20179/aio-limascd 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
- [x] enable/disable children/copies
- [ ] steam account linking
- [x] image media type
- [ ] when fetching metadata, use ai to generate a description of the image
- [x] search by description
- [x] disable ACCOUNT_NUMBER by default
- [ ] documentation
- [x] webservice
- [ ] ui
- [x] edit info/user/meta tables from ui
- [x] info
- [x] meta
- [x] ~user~ *decided against, as you can already edit everything anyway*
- [x] calc mode
- [x] 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 ~ ""`
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 ~ ""`
- [x] 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
- [x] 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