mirror of
https://github.com/KevinMidboe/seasoned.git
synced 2026-04-24 08:43:36 +00:00
cb90281e5edc34f3e3a33dc8a63681d7fd2e72f9
* Add activity page components and Tautulli stats integration - Add StatsOverview component for watch statistics display - Add WatchHistory component for recent watch activity - Add useTautulliStats composable for Tautulli API integration - Components display total plays, watch time, movies/episodes watched - Support for fetching home stats and last watched content * Enhance Graph component with improved styling and options - Add wrapper div for better layout control - Update color scheme with modern palette (Indigo, Amber, Emerald) - Add Filler plugin for filled area charts - Improve bar chart styling with rounded corners - Add proper lifecycle cleanup with onBeforeUnmount - Enhance tooltip formatting for time and number values - Add deep watch for reactive data updates - Better TypeScript type safety with Chart.js types * Refactor ActivityPage with enhanced stats and visualizations - Integrate StatsOverview component for at-a-glance metrics - Add WatchHistory component for recent watch activity - Add hourly viewing patterns chart - Modernize UI with card-based layout - Improve controls styling with better labels and input handling - Remove authentication dependency (now handled by route guards) - Use useTautulliStats composable for data fetching - Add comprehensive watch statistics (total plays, hours, by media type) - Support for both plays and duration view modes * Improve Plex authentication check with cookie fallback - Add usePlexAuth composable import to routes - Enhance hasPlexAccount() to check cookies when Vuex store is empty - Fixes authentication check after page refreshes - Ensures activity page remains accessible with valid Plex auth
Seasoned Request
Seasoned request is frontend vue application for searching, requesting and viewing account watch activity.
Config setup
# make copy of example environment file
cp .env.example .env
# .env sane default values
SEASONED_API=
ELASTIC=
ELASTIC_INDEX=shows,movies
SEASONED_DOMAIN=
- Leave SEASONED_API empty to request
/apifrom same origin and proxy passed by nginx, set if hosting seasonedShows backend api locally. - Elastic is optional and can be used for a instant search feature for all movies and shows registered in tmdb, leave empty to disable.
# .env example values
SEASONED_API=http://localhost:31459
ELASTIC=http://localhost:9200
ELASTIC_INDEX=shows,movies
SEASONED_DOMAIN=request.movie
Build Steps
# install dependencies
yarn
# build vue project using webpack
yarn build
# test or host built files using docker, might require sudo:
docker build -t seasoned .
docker run -d -p 5000:5000 --name seasoned-request --env-file .env seasoned
Development Steps
# serve project with hot reloading at localhost:8080
yarn dev
To proxy requests to /api either update SEASONED_API in .env or run set environment variable, e.g.:
# export and run
export SEASONED_API=http://localhost:31459
yarn dev
# or run with environment variable inline
SEASONED_API=http://localhost:31459 yarn dev
Documentation
All api functions are documented in /docs and found here.
html version also available
License
Languages
Vue
81.5%
TypeScript
14.2%
SCSS
2.9%
JavaScript
1.1%
HTML
0.2%
Other
0.1%
