Skip to content

Commit 002d5ad

Browse files
committed
Discord don't always display episodes
1 parent 5db263e commit 002d5ad

1 file changed

Lines changed: 17 additions & 15 deletions

File tree

src/main/java/fr/rakambda/plexdeleter/notify/DiscordNotificationService.java

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -112,27 +112,27 @@ public void notifyWatchlist(@NonNull NotificationEntity notification, @NonNull U
112112
}
113113

114114
public void notifyRequirementAdded(@NonNull NotificationEntity notification, @NonNull UserGroupEntity userGroupEntity, @NonNull MediaEntity media) throws MessagingException, UnsupportedEncodingException, RequestFailedException, InterruptedException{
115-
notifySimple(notification, userGroupEntity, media, "discord.requirement.added.subject");
115+
notifySimple(notification, userGroupEntity, media, "discord.requirement.added.subject", true);
116116
}
117117

118118
public void notifyMediaAvailable(@NonNull NotificationEntity notification, @NonNull UserGroupEntity userGroupEntity, @NonNull MediaEntity media) throws RequestFailedException, InterruptedException{
119-
notifySimple(notification, userGroupEntity, media, "discord.media.available.subject");
119+
notifySimple(notification, userGroupEntity, media, "discord.media.available.subject", true);
120120
}
121121

122122
public void notifyMediaDeleted(@NonNull NotificationEntity notification, @NonNull UserGroupEntity userGroupEntity, @NonNull MediaEntity media) throws RequestFailedException, InterruptedException{
123-
notifySimple(notification, userGroupEntity, media, "discord.media.deleted.subject");
123+
notifySimple(notification, userGroupEntity, media, "discord.media.deleted.subject", false);
124124
}
125125

126126
public void notifyMediaWatched(@NonNull NotificationEntity notification, @NonNull UserGroupEntity userGroupEntity, @NonNull MediaEntity media) throws RequestFailedException, InterruptedException{
127-
notifySimple(notification, userGroupEntity, media, "discord.media.watched.subject");
127+
notifySimple(notification, userGroupEntity, media, "discord.media.watched.subject", false);
128128
}
129129

130130
public void notifyRequirementManuallyWatched(@NonNull NotificationEntity notification, @NonNull UserGroupEntity userGroupEntity, @NonNull MediaEntity media) throws MessagingException, UnsupportedEncodingException, RequestFailedException, InterruptedException{
131-
notifySimple(notification, userGroupEntity, media, "discord.requirement.manually-watched.subject");
131+
notifySimple(notification, userGroupEntity, media, "discord.requirement.manually-watched.subject", false);
132132
}
133133

134134
public void notifyRequirementManuallyAbandoned(@NonNull NotificationEntity notification, @NonNull UserGroupEntity userGroupEntity, @NonNull MediaEntity media) throws RequestFailedException, InterruptedException{
135-
notifySimple(notification, userGroupEntity, media, "discord.requirement.manually-abandoned.subject");
135+
notifySimple(notification, userGroupEntity, media, "discord.requirement.manually-abandoned.subject", false);
136136
}
137137

138138
public void notifyMediaAdded(@NonNull NotificationEntity notification, @NonNull UserGroupEntity userGroupEntity, @NonNull MediaMetadataContext mediaMetadataContext, @Nullable MediaEntity media) throws RequestFailedException, InterruptedException{
@@ -293,7 +293,7 @@ public void notifyMediaAdded(@NonNull NotificationEntity notification, @NonNull
293293
discordWebhookApiService.sendWebhookMessage(discordUrl, messageBuilder.build());
294294
}
295295

296-
private void notifySimple(@NonNull NotificationEntity notification, @NonNull UserGroupEntity userGroupEntity, @NonNull MediaEntity media, @NonNull String subjectKey) throws RequestFailedException, InterruptedException{
296+
private void notifySimple(@NonNull NotificationEntity notification, @NonNull UserGroupEntity userGroupEntity, @NonNull MediaEntity media, @NonNull String subjectKey, boolean includeEpisodes) throws RequestFailedException, InterruptedException{
297297
var locale = userGroupEntity.getLocaleAsObject();
298298
var params = notification.getValue().split(",");
299299
var discordUserId = params[0];
@@ -307,7 +307,7 @@ private void notifySimple(@NonNull NotificationEntity notification, @NonNull Use
307307
.threadName(header)
308308
.content("<@%s>\n%s\n\n%s".formatted(
309309
discordUserId,
310-
getWatchlistMediaText(userGroupEntity, media, locale),
310+
getWatchlistMediaText(userGroupEntity, media, locale, includeEpisodes),
311311
getFooterContent(locale)
312312
));
313313
}
@@ -316,7 +316,7 @@ private void notifySimple(@NonNull NotificationEntity notification, @NonNull Use
316316
.content("<@%s>\n# %s\n%s\n\n%s".formatted(
317317
discordUserId,
318318
header,
319-
getWatchlistMediaText(userGroupEntity, media, locale),
319+
getWatchlistMediaText(userGroupEntity, media, locale, includeEpisodes),
320320
getFooterContent(locale)
321321
));
322322
}
@@ -332,7 +332,7 @@ private void writeWatchlistSection(@NonNull String discordUrl, @Nullable Long th
332332
discordWebhookApiService.sendWebhookMessage(discordUrl, threadId, WebhookMessage.builder().content("# %s\n".formatted(messageSource.getMessage(sectionHeaderCode, new Object[0], locale))).build());
333333
var messages = medias.stream()
334334
.sorted(MediaEntity.COMPARATOR_BY_TYPE_THEN_NAME_THEN_INDEX)
335-
.map(media -> getWatchlistMediaText(userGroupEntity, media, locale))
335+
.map(media -> getWatchlistMediaText(userGroupEntity, media, locale, true))
336336
.toList();
337337
for(var message : messages){
338338
discordWebhookApiService.sendWebhookMessage(discordUrl, threadId, WebhookMessage.builder()
@@ -343,17 +343,19 @@ private void writeWatchlistSection(@NonNull String discordUrl, @Nullable Long th
343343
}
344344

345345
@SneakyThrows(RequestFailedException.class)
346-
private String getWatchlistMediaText(@NonNull UserGroupEntity userGroupEntity, @NonNull MediaEntity media, @NonNull Locale locale){
346+
private String getWatchlistMediaText(@NonNull UserGroupEntity userGroupEntity, @NonNull MediaEntity media, @NonNull Locale locale, boolean includeEpisodes){
347347
var sb = new StringBuilder();
348348
sb.append(messageSource.getMessage(getTypeKey(media), new Object[]{
349349
media.getName(),
350350
media.getIndex(),
351351
}, locale));
352352

353-
var episodes = getEpisodes(media, userGroupEntity);
354-
if(!episodes.isEmpty()){
355-
sb.append(" | ");
356-
sb.append(messageSource.getMessage("discord.watchlist.body.media.series.episodes", new Object[]{String.join(", ", episodes)}, locale));
353+
if(includeEpisodes){
354+
var episodes = getEpisodes(media, userGroupEntity);
355+
if(!episodes.isEmpty()){
356+
sb.append(" | ");
357+
sb.append(messageSource.getMessage("discord.watchlist.body.media.series.episodes", new Object[]{String.join(", ", episodes)}, locale));
358+
}
357359
}
358360

359361
var overseerrUrl = thymeleafService.getMediaOverseerrUrl(media);

0 commit comments

Comments
 (0)