GithubHelp home page GithubHelp logo

sbondco / watcharr Goto Github PK

View Code? Open in Web Editor NEW
257.0 257.0 17.0 23.33 MB

Open source, self-hostable watched list for all your content (movies, tv series, anime, games) with user authentication, modern and clean UI and a very simple setup.

Home Page: https://watcharr.app

License: MIT License

Go 39.61% JavaScript 0.16% HTML 0.06% Svelte 51.09% TypeScript 7.68% Dockerfile 0.12% SCSS 1.28%
content docker docker-compose games go golang list lists movies self-hostable self-hosted series shows sqlite sqlite3 svelte sveltekit tv watcharr watched

watcharr's People

Contributors

dependabot[bot] avatar dnyla avatar iamericfletcher avatar imgbot[bot] avatar imgbotapp avatar irhm avatar ishaanparlikar avatar kurtmgray avatar mordquist avatar stavros-k avatar stephaje avatar stignarnia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

watcharr's Issues

Make sure posters stay in view on hover

Posters can sometimes go outside of the current view whilst being hovered/active.

eg. Hovering over poster that is half cutoff because of scrolling, should make the poster come upwards so it is shown fully and not cutoff.

eg. Posters being hovered close to edge of view, should not overflow outside bounds.

A reverse proxy setup shouldn't be required in production build

A reverse proxy to "link" the frontend and backend together under one domain/url should not be required in production.

Having a web server inside the image could resolve this by having a reverse proxy built in so it's not required for the end user to setup.

Best to wait for #44 first.

Server log

A log file for the server would probably be useful.

There is probably an easy to switch over to library out there.

Extra logging enabled with DEBUG env variable would be helpful.

Popup errors

Popup errors, which can replace the console.error/console.logs in some places, which will make the errors more useful, since they will be visible.

Probably don't want a modal to popup, a small message popup in the top/bottom right side would be good.

Removing watched items!!!!!!!!

Maybe a new button in statuses that deletes it. Need a button somewhere inside the content details page too, if it is watched.

Simple Profile Page

Just a simple profile page for now.

It will be extended upon in the future with settings, change pass, etc.

Import from text file

Probably want a delay between each new item so we dont 'spam' tmdb (not for cached content of course)

A UI for the import would be nice, we can check off each item as we import them. We can also then show errors for the content we couldn't find and allow for the user to resolve the issue, either by correcting the name or manually inputting an id from tmdb.

Import button should be added to empty watch list menu (for current user only)

  • Import files
    • Click to browse
    • Drag and drop
  • Display imported file data
    • Text file (supports extracting year from entry in text file if between brackets)
    • #130
  • Allow editing displayed import data
    • Edit name
    • Edit Type
    • Add new row
    • Remove row
  • Importing the actual data one by one
    • Support showing multiple results for import and allowing user to decide
      • Create modal view
      • Click poster in modal and try import again
      • Allow skipping selection (closing modal should skip too.. update with error icon on table)
      • Allow providing tmdb id manually in modal
    • Success, error, ? icons state updates for table
  • New activity type of Import (instead of added at, we can show imported at)
  • Add import button to empty watched lists
  • Make sure works in both light and dark themes

Episode Info

Clicking on an episode should open up a modal with extra info (the full cast and I'm sure there's more specific info we could display too).

Import and Sync from Jellyfin

Import and sync watched items from Jellyfin.

I think a separate import button and sync toggle would make sense? People could import past watched items whenever without syncing?

Fix input focus causing zoom on mobile

Doesn't seem to occur with dev or preview build, but does when deployed live from docker image which is weird. Need to investigate why there is this difference between them.

Site Themes

Mainly just Light, Dark and System (light/dark) theme options (put in profile page settings section or new settings page?).

Maybe custom picking of each color in settings if you can be bothered.

Sonarr/Radarr integration

  • Add to Sonarr/Radarr button
  • If content is already on sonarr/radarr, show it's status, including progress, if its currently downloading.

Best done after #136 and #137

Rework searching

Currently it navigates to a new route each time, which causes issues if typing in a show name slowly. It is worse on mobile, where the keyboard can hide itself, because the search bar loses focus.

Content Reviews

Allow reviewing content.

A simple text box in the content pages should do for now. Will mostly be used for quick thoughts about the movie/show, not thousand line reviews.

Fully support person media_type

Fully support people type from tmdb.

  • Fix image not being shown on poster.
  • Have a differentiator so we know when a poster is for a person, not actual media.
  • Person details page, with their known for movies?

Export watched list

A way for a user to export their own watched list (watched and content combined from tables) as JSON (and CSV?).

Requires:

  • New api endpoint for exporting list
  • Export button (probably in profile page) that calls the new endpoint and saves data to a file.

Open in jellyfin button / Providers

If content exists on jellyfin server (if linked) show an enabled 'Open In Jellyfin' button.

Jellyfin server must be provided in servers .env file.

Should the user have to be one logged in via jellyfin?

  • Add the jellyfin btn as first provider, when clicked should go to the content in jellyfin to watch.
  • Fix the styling for providers.
  • Add more provider images (look at response json and see which providers we can get logos for).
  • Simplify added Icon svgs.
  • If we have no provider icon, simply show its name.
  • Providers region should be based on users current region (just US for now on server).

Dont update status/rating/thoughts if not changed

Currently if you update (for example) the rating of a show to the same as current rating, it will actually send a request to the server.

Frontend shouldn't send a request if changing to same as current and backend should reject the request if value hasn't changed.

Update empty watched list message

The small message we show when a watched list is empty should probably be more clear and bigger.

Give more details so its more apparent that its time to start searching for shows to add to your list.

Maybe some quick points about how watcharr works.

Manage activity

Allow user to manage their content activity manually.

Editing isn't required, but deleting and adding should be added (timestamp for activity should be modifiable)

allow viewing content trailer

A way to view content trailers

Maybe this button can go under all the content in backdrop, other btns may be added there too.

Cache TMDB Requests

The server should cache every TMDB request for a certain amount of time (24h sounds reasonable?).

There is probably a middleware/package available that can handle this out the box for us, check before implementing ourselves.

Loading icons for everything

Loading icons for switching pages.

There should be either a loading icon for poster images, or a better default background image that doesn't show the alt text.

Anything to make the loading of images look nicer too, maybe a fade in when they finally load.

Rework docker images

Ideally there would be a way to combine both into just one image, this alone would make the setup process a lot easier.

Currently they are separate because I'm not sure of a way to run both apps in one image. An entrypoint script may allow us to start both independently inside one image.

Content pages can be less duplicated

The movie and tv pages have a lot of duplicated code between them.

Most of the things can be moved out to components, and styling should mostly be able to be shared.

A way to repair content table

A button or a task that runs when watcharr starts to look for content with missing fields, then re-requesting the information from themoviedb to 'repair' the tables data.

Any way to allow us to get missing data needs to be added, mostly because if we add a field to the db later on, that show will currently never get the new field data added automatically.

Maybe this should not only look for missing fields, but instead update all data for all content, then we can fetch updated pieces of data too.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.