feat: notification framework

This commit is contained in:
sct
2020-11-22 19:11:14 +09:00
parent fb5c791b0b
commit d8e542e5fe
15 changed files with 577 additions and 3 deletions

View File

@@ -20,6 +20,7 @@ import RadarrAPI from '../api/radarr';
import logger from '../logger';
import SeasonRequest from './SeasonRequest';
import SonarrAPI from '../api/sonarr';
import notificationManager, { Notification } from '../lib/notifications';
@Entity()
export class MediaRequest {
@@ -60,6 +61,22 @@ export class MediaRequest {
Object.assign(this, init);
}
@AfterInsert()
private async notifyNewRequest() {
if (this.status === MediaRequestStatus.PENDING) {
const tmdb = new TheMovieDb();
if (this.media.mediaType === MediaType.MOVIE) {
const movie = await tmdb.getMovie({ movieId: this.media.tmdbId });
notificationManager.sendNotification(Notification.MEDIA_ADDED, {
subject: `New Request: ${movie.title}`,
message: movie.overview,
image: `https://image.tmdb.org/t/p/w600_and_h900_bestv2${movie.poster_path}`,
username: this.requestedBy.username,
});
}
}
}
@AfterUpdate()
@AfterInsert()
private async updateParentStatus() {