jfa-go icon indicating copy to clipboard operation
jfa-go copied to clipboard

I want to help maintain this project

Open aleksasiriski opened this issue 2 years ago • 7 comments

Just started learning go, I added postgres support to this project.

I want to add support for Jellyseerr and fix a few annoyances like how setting the exp date doesn't work as well as switch from JSON to Sqlite3 and Postgres.

My question is, what are the main reasons why this isn't building now, aka why is it broken? If you could guide me where to look I'll try to fix it. Thanks for a great project!

aleksasiriski avatar Jan 30 '23 17:01 aleksasiriski

The only reason builds were failing when I committed was because i forgot to update an expired key, which has been fixed now. For your PR, looking here you can see they're failing because it's looking for tag "v0.3.8" on your mediabrowser fork, which doesn't exist. Fix that and it should succeed, however the CI for PRs only tests that it builds and doesn't make the builds available. Let me know if you're having trouble building locally too.

The bigger features you mentioned (Jellyseer and an actual DB) are good ideas, i've said before if I picked up this project properly again i'd look into the former, and the latter would've happened eventually.

For Jellyseer, i'd have a look at the ombi API client for ideas on how to format a Jellyseer one, and then use a mix of the Overseerr API documentation and watching network traffic in your browser to actually implement it. Ideally support for Ombi would be kept, so hopefully some code (probably just UI stuff) can be reused.

For moving to a DB, most storage access in jfa-go is done through getting/setting values in a map and then using a helper function to store or load from disk. Most of this happens in storage.go, and by modifying the helper functions in this file you could probably keep most of the other code the same. Migrating user data into the DB should be done in migrations.go, as well as actual DB migrations (i've only ever used alembic in python but I imagine there's something similar for Go you could use).

The expiration date issue isn't something i've encountered, but the code for each route is annotated with it's URL and sorted into the api-*.go files, so you should be able to get started by finding which route is being used in your browser devtools and just Ctrl-F-ing in the applicable api file.

I wish you luck with trying to understand my code, its full of weird quirks that might be confusing so feel free to ask if you need help understanding bits/

hrfee avatar Feb 01 '23 09:02 hrfee

With podman with Dockerfile

esbuild --bundle tempts/admin.ts  --outfile=./build/data/web/js/admin.js --minify
make: esbuild: No such file or directory
make: *** [Makefile:106: typescript] Error 127

Building in Fedora 37 Toolbox works

aleksasiriski avatar Feb 01 '23 21:02 aleksasiriski

The expiration date issue isn't something i've encountered, but the code for each route is annotated with it's URL and sorted into the api-*.go files, so you should be able to get started by finding which route is being used in your browser devtools and just Ctrl-F-ing in the applicable api file.

image

aleksasiriski avatar Feb 01 '23 21:02 aleksasiriski

Ok that was a quick fix!

aleksasiriski avatar Feb 01 '23 22:02 aleksasiriski

With podman with Dockerfile

esbuild --bundle tempts/admin.ts  --outfile=./build/data/web/js/admin.js --minify
make: esbuild: No such file or directory
make: *** [Makefile:106: typescript] Error 127

Building in Fedora 37 Toolbox works

thanks for noticing this, it's been failing on the CI as well but for some reason marked as a success. It looks like just an issue with the new Go command line syntax causing esbuild to not be installed in the path. Should be fixed now

hrfee avatar Feb 02 '23 09:02 hrfee

Since I had just started learning Go when I created this issue I had to study it a lot (by rewriting my python script in Go) and will be implementing SQL and Jellyseerr support in the next few days.

aleksasiriski avatar Feb 22 '23 23:02 aleksasiriski

Heads up, Overseerr is going to be adding official support for Jellyfin very soon: https://github.com/sct/overseerr/pull/3015#issuecomment-1416707807

Hukuma1 avatar Feb 27 '23 01:02 Hukuma1

#351 adds Jellyseerr integration, Data storage was migrated to the internal Badger DB a while ago, and Overseerr support for Jellyfin seems to have gone dead for now, so closing this.

hrfee avatar Jul 31 '24 14:07 hrfee