Commit Graph

110 Commits

Author SHA1 Message Date
Brandon Cohen
ae3818304b feat: availability sync rework (#3219)
* feat: add availability synchronization job

fix #377

* fix: feedback on PR

* perf: use pagination for Media Availability Synchronization job

The original approach loaded all media items from the database at once. With large libraries, this
could lead to performance issues. We're now using a paginated approach with a page size of 50.

* feat: updated the availability sync to work with 4k

* fix: corrected detection of media in plex

* refactor: code cleanup and minimized unnecessary calls

* fix: if media is not found, media check will continue

* fix: if non-4k or 4k show media is updated, seasons and request is now properly updated

* refactor: consolidated media updater into one function

* fix: season requests are now removed if season has been deleted

* refactor: removed joincolumn

* fix: makes sure we will always check radarr/sonarr to see if media exists

* fix: media will now only be updated to unavailable and deletion will be prevented

* fix: changed types in Media entity

* fix: prevent season deletion in preference of setting season to unknown

---------

Co-authored-by: Jari Zwarts <jari@oberon.nl>
Co-authored-by: Sebastian Kappen <sebastian@kappen.dev>
2023-02-24 05:28:22 +00:00
Danshil Kokil Mungur
cb650745f6 fix(request): mark request as approved if media is already available when retrying failed request (#3244) 2023-01-15 11:32:38 +04:00
Ryan Cohen
cd3574851a feat: add discover customization (#3182) 2023-01-03 16:04:28 +09:00
Ryan Cohen
15e246929b fix(api): handle auth for accounts where the plex id may have been set to null (#3125)
also made some changes to hopefully alleviate this issue from happening at all in the future
2022-11-20 19:07:32 +09:00
Ryan Cohen
c6a133d4e5 refactor: absolute imports with path alias (#2960) [skip ci] 2022-08-22 11:02:46 +09:00
Ryan Cohen
4b855b8114 style: fix organize-imports to work with tailwindcss prettier plugin (#2957) [skip ci] 2022-08-21 10:40:12 +00:00
TheCatLady
6c0fd40877 feat(notif): auto-request notif type (#2956) 2022-08-21 10:26:19 +00:00
Ryan Cohen
301f2bf7ab feat: plex watchlist sync integration (#2885) 2022-08-21 16:33:49 +09:00
TheCatLady
c143c0b8d2 fix: better ordering of RequestButton options & properly handle failed requests (#2944)
* fix: better ordering of RequestButton options & properly handle failed requests

* fix: appease prettier
2022-08-18 08:30:40 +00:00
Danshil Kokil Mungur
0fa84eae8d build(deps): bump dependencies (#2796) 2022-08-17 20:43:35 +09:00
Ryan Cohen
f5864b49de refactor: update a few dev deps and convert to using type imports where possible (#2886)
* build: bump deps and add some new eslint rules

* refactor: run eslint --fix on code to convert to type imports where possible
2022-08-03 12:57:51 +09:00
Brandon Cohen
575da306b0 feat: plex deep links for iOS devices (#2680) 2022-08-02 06:41:09 +00:00
TheCatLady
8cba486249 fix: address unhandled promise rejections & bump node to v16.13 (#2398)
* fix: unhandled promise rejections

* build(deps): bump node from 14.18 to 16.13

* fix: unhandled promise rejection in new Plex users endpoint

* fix: build error

Co-authored-by: Ryan Cohen <ryan@sct.dev>
2022-01-27 20:00:30 +09:00
TheCatLady
0842c233d0 feat: Tautulli integration (#2230)
* feat: media/user watch history data via Tautulli

* fix(frontend): only display slideover cog button if there is media to manage

* fix(lang): tweak permission denied messages

* refactor: reorder Media section in slideover

* refactor: use new Tautulli stats API

* fix(frontend): do not attempt to fetch data when user lacks req perms

* fix: remove unneccessary get_user requests

* feat(frontend): display user avatars

* feat: add external URL setting

* feat: add play counts for past week/month

* fix(lang): tweak strings

Co-authored-by: Ryan Cohen <ryan@sct.dev>
2022-01-20 10:36:59 +00:00
TheCatLady
88a8c1aa59 feat(notif): 4K media notifications (#2324) 2021-12-08 08:56:41 +09:00
TheCatLady
c9ffac33f7 feat(notif): issue notifications (#2242)
* feat(notif): issue notifications

* refactor: dedupe test notification strings

* fix: webhook key parsing

* fix(notif): skip send for admin who requested on behalf of another user

* fix(notif): send comment notifs to admins when other admins reply

* fix(notif): also send resolved notifs to admins, and reopened notifs to issue creator

* fix: don't send duplicate notifications

* fix(lang): tweak notification description strings

* fix(notif): tweak Slack notification styling

* fix(notif): tweak Pushbullet & Telegram notification styling

* docs: reformat webhooks page

* fix(notif): add missing issue_type & issue_status variables to LunaSea notif payloads

* fix: explicitly attach media & issue objects where applicable

* fix(notif): correctly notify both notifyUser and managers where applicable

* fix: update default webhook payload for new installs

* fix(notif): add missing comment_message to LunaSea notif payload

* refactor(sw): simplify notificationclick event listener logic

* fix(notif): add missing event description for MEDIA_AVAILABLE notifications
2021-12-04 21:24:26 +09:00
TheCatLady
aeb7a48d72 feat(notif): add Pushbullet and Pushover agents to user notification settings (#1740)
* feat(notif): add Pushbullet and Pushover agents to user notification settings

* docs(notif): add "hint" about user notifications to Pushbullet and Pushover pages

* fix: regenerate DB migration
2021-10-25 19:46:05 +09:00
Ryan Cohen
e402c42aaa feat: issues (#2180) 2021-10-24 12:44:20 +00:00
TheCatLady
b3b421a674 fix(email): do not attempt to display logo if app URL not configured (#2125)
* fix(email): do not attempt to display logo if app URL not configured

* fix(email): prevent Gmail from turning usernames with periods into hyperlinks

* fix(email): fix(email): use displayName instead of username/plexUserName and improve Gmail link fix
2021-10-18 14:08:50 +00:00
TheCatLady
1133a34ffd fix(email): omit links when application URL is not configured (#1806)
Co-authored-by: sct <ryan@sct.dev>
2021-07-13 09:32:37 +00:00
TheCatLady
3841fb06eb fix(ui): do not display negative remaining quota (#1859)
* fix(ui): do not display negative remaining quota

* fix: correct remaining quota count on API side
2021-07-01 00:16:40 +09:00
TheCatLady
42e45f38e5 fix(notif): truncate media overviews (#1800) 2021-06-17 04:54:36 +00:00
TheCatLady
0db0d4c280 build(deps): bump node to 14.17 and drop uuid in favor of native randomUUID (#1792) 2021-06-17 13:12:09 +09:00
TheCatLady
e60598905b feat: allow users to select notification types (#1512)
* feat: allow users to select notification types

* fix(ui): display personal notification types before management types

* fix: update allRequestsAutoApproved check to account for new REQUEST_MOVIE & REQUEST_TV perms

* fix(ui): do not display Discord notif type selector if user not eligible for any types

* refactor(ui): remove unnecessary 'enabled' checkboxes from user notif settings

* fix(ui): correct checkbox behavior

* fix: add missing return type on hasNotificationType

* refactor: remove unused isValid prop in NotificationsWebPush

* fix(ui): use SensitiveInput for users' public PGP keys

* fix(ui): add missing tip/hint for email encryption setting

* refactor(svg): use the new Discord logo

* revert(api): undo breaking change removing discordEnabled from UserSettingsNotificationsResponse

* fix(lang): update notification type descriptions for clarity

* fix(telegram): do not send users notifications of their own auto-approved requests
2021-06-04 19:31:05 +09:00
TheCatLady
4a042f12be fix: handle null values in User email transform (#1712) 2021-05-31 14:36:40 +09:00
TheCatLady
310cdb36df fix(plex): do not fail to import Plex users when Plex Home has managed users (#1699)
* fix(plex): do not fail to import Plex users when Plex Home has managed users

* fix: default display name to email when user has no username

also, do not set username or plexUsername when it is the same as the user's email address

* fix(ui): user display name placeholder should reflect fallback logic if username is not set

* fix(ui): hide email addresses of other users if logged-in user does not have Manage Users permission

* fix: always set Plex username even if same as user's email

* fix: remove unnecessary permission check

* fix: transform email addresses to lowercase
2021-05-31 08:38:52 +09:00
TheCatLady
a640a91390 feat(plex): add support for custom Plex Web App URLs (#1581)
* feat(plex): add support for custom Plex Web App URLs

* refactor: clean up Yup validation in *arr modals & email settings

* fix(lang): change Web App URL tip

* fix: remove web app URL validation and add 'Advanced' badge
2021-05-06 17:40:22 +09:00
TheCatLady
549103f6f6 fix(locale): default user locale should be the server setting (#1574)
* fix(locale): default user locale should be the server setting

* fix(db): fix user settings migration

* fix(db): set default locale to empty string

* revert: revert change to usersettings.ts
2021-05-05 13:33:43 +09:00
TheCatLady
b7b55e275c fix(backend): properly set request media status (#1541) 2021-05-01 00:43:42 +09:00
sct
ef3f9778aa fix(api): do not try to transform empty values passed to user notificationTypes
fixes #1501
2021-04-26 08:22:50 +09:00
sct
28830d4ef8 feat: PWA Support (#1488) 2021-04-25 20:44:12 +09:00
TheCatLady
4e98f56753 fix(notif): include year in notifications (#1439)
* fix(notif): include year in notifications

* fix(lang): fix shared overwritten strings

* fix: check if email agent is actually enabled when generating passwords
2021-04-18 10:11:56 +00:00
TheCatLady
46c4ee1625 feat(notif): allow users to enable/disable specific agents (#1172)
* refactor(ui): add tabs to user notification settings

* feat(notif): allow users to enable/disable specific agents

* fix(ui): only enforce required fields when agent is enabled

* fix(ui): hide unavailable notification agents

* feat(notif): mention admin users for admin Discord notifications

* fix(ui): modify styling of PGP key textareas to suit expected input

* fix(notif): mention all admins when there are multiple and fix rebase error

* fix: add missing form values, and fix Yup validation

* refactor: reduce repeated logic/code in email notif agent

* refactor: move 'Notification Types' label into NotificationTypeSelector component

* fix(email): correct inconsistencies in email template formatting

* refactor: use bitfields for storing user-enabled notif agent types

* feat: improve notification agent logging

* fix(ui): mark string fields as nullable so empty values are not type errors

* fix: add validation for PGP-related inputs

* fix: correctly fetch user in user settings & log mentioned IDs for Discord notifs

* fix(ui): fix mobile nav dropdown text & add hover effect to button-style tabs

* fix(notif): process admin email notifications asynchronously

* fix(logging): log name of notification type instead of its enum value

* fix: mark required fields and pass all user settings values to API

* fix(frontend): call mutate after changing email/Discord/Telegram global notif settings

* refactor: get global notif settings from relevant API endpoints instead of adding to public settings

* fix(notif): fall back to email notifications being enabled (default) if user settings do not exist

* fix(notif): do not set notifyUser for MEDIA_PENDING or MEDIA_AUTO_APPROVED

* fix: expose notif enabled settings in user notif endpoints & remove global enable notif setting

* fix(notif): remove unnecessary allowed_mentions object from Discord payload

* fix(notif): use form values for email test notification

* fix: make suggested changes and regenerate DB migration

* fix: loosen validation of PGP keys

* fix: fix user profile settings routes

* fix: remove route guard from profile pages
2021-04-13 03:31:31 +00:00
Jono Cairns
d3c6bc1619 fix(quotas): Time value of a quota was being ignored 2021-04-10 10:10:43 +09:00
TheCatLady
b4450a308c fix: various fixes for new tags feature (#1369)
* fix(backend): fix movie override tags check

* fix(lang): fix 'no tags' and 'anime tags' strings

* fix(logging): correct capitalization of Radarr/Sonarr

* fix(ui): consistently disable tag select / display loading placeholder
2021-04-06 07:56:21 +09:00
sct
a306ebc2d1 feat: radarr/sonarr tag support (#1366) 2021-04-05 21:16:55 +09:00
sct
6c75c88228 feat(requests): add request quotas (#1277)
* feat(quotas): rebased

* feat: add getQuota() method to User entity

* feat(ui): add default quota setting options

* feat: user quota settings

* feat: quota display in request modals

* fix: only show user quotas on own profile or with manage users permission

* feat: add request progress circles to profile page

* feat: add migration

* fix: add missing restricted field to api schema

* fix: dont show auto approve message for movie request when restricted

* fix(lang): change enable checkbox langauge to "enable override"

Co-authored-by: Jakob Ankarhem <jakob.ankarhem@outlook.com>
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
2021-03-24 19:26:13 +09:00
TheCatLady
4ee78ab2fe feat(notif): include requested season numbers in notifications (#1211) 2021-03-19 02:07:22 +00:00
Jakob Ankarhem
9e5adeb610 feat(email): add pgp support (#1138) 2021-03-14 22:39:43 +09:00
sct
8634081c86 fix: correctly send auto-approval notifictions for series
also adjusted see more card slightly
2021-03-12 07:29:32 +00:00
TheCatLady
f7d2723fab feat(notif): add "Media Automatically Approved" notification type (#1137) 2021-03-12 02:42:06 +00:00
Jakob Ankarhem
f6d00d8d15 feat(telegram): add support for individual chat notifications (#1027) 2021-03-05 09:18:56 +09:00
sct
da5ca02f81 fix(services): update all radarr/sonarr endpoints to use v3 2021-02-23 07:27:56 +00:00
Daniel Carter
b557c06b0a feat(regions): add region/original language setting for filtering Discover (#732) (#942) 2021-02-22 16:39:25 +09:00
TheCatLady
4e2706b421 fix(ui/notif): Custom application title in password-related emails and UI messages (#979) 2021-02-20 00:26:26 +00:00
sct
bbb683e637 feat: user profile/settings pages (#958) 2021-02-18 11:38:24 +09:00
Jakob Ankarhem
5e37a96bc0 fix(auth): handle sign-in attempts from emails with no password (#933)
* fix(auth): dont reject promise when missing password

* fix(auth): use static fallback error message
2021-02-15 17:34:40 +09:00
TheCatLady
2768155bba feat(notif): Notification improvements (#914) 2021-02-12 22:27:11 +09:00
Jakob Ankarhem
e037ba48f1 fix(requests): correctly handle when tvdbid is missing (#891)
cleans up media and mediarequest when request to sonarr has failed because of tvdbid
2021-02-10 09:16:53 +09:00
Jakob Ankarhem
53f6f59798 feat(requests): add language profile support (#860) 2021-02-08 00:33:18 +09:00