seerr: fix discord ID setting
APi change, discordId is now discordIds (an array).
This commit is contained in:
+2
-1
@@ -1,6 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"slices"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@@ -45,7 +46,7 @@ func (app *appContext) SynchronizeJellyseerrUser(jfID string) {
|
|||||||
}
|
}
|
||||||
if discordEnabled {
|
if discordEnabled {
|
||||||
dcUser, ok := app.storage.GetDiscordKey(jfID)
|
dcUser, ok := app.storage.GetDiscordKey(jfID)
|
||||||
if ok && dcUser.ID != "" && notif.DiscordID != dcUser.ID {
|
if ok && dcUser.ID != "" && !slices.Contains(notif.DiscordIDs, dcUser.ID) {
|
||||||
contactMethods[jellyseerr.FieldDiscord] = dcUser.ID
|
contactMethods[jellyseerr.FieldDiscord] = dcUser.ID
|
||||||
contactMethods[jellyseerr.FieldDiscordEnabled] = dcUser.Contact
|
contactMethods[jellyseerr.FieldDiscordEnabled] = dcUser.Contact
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -425,6 +425,13 @@ func (js *Jellyseerr) ApplyNotificationsTemplateToUser(jfID string, tmpl Notific
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (js *Jellyseerr) ModifyNotifications(jfID string, conf map[NotificationsField]any) error {
|
func (js *Jellyseerr) ModifyNotifications(jfID string, conf map[NotificationsField]any) error {
|
||||||
|
// Fix for API change: discord IDs are now stored as an array rather than as a single ID string
|
||||||
|
if v, ok := conf[FieldDiscord]; ok {
|
||||||
|
switch v.(type) {
|
||||||
|
case string:
|
||||||
|
conf[FieldDiscord] = []string{v.(string)}
|
||||||
|
}
|
||||||
|
}
|
||||||
u, err := js.getUser(jfID)
|
u, err := js.getUser(jfID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
+38
-26
@@ -10,25 +10,26 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
UserTemplate // Note: You can set this with User.UserTemplate = value.
|
UserTemplate // Note: You can set this with User.UserTemplate = value.
|
||||||
UserType int64 `json:"userType,omitempty"`
|
UserType int64 `json:"userType,omitempty"`
|
||||||
Warnings []any `json:"warnings,omitempty"`
|
Warnings []any `json:"warnings,omitempty"`
|
||||||
ID int64 `json:"id,omitempty"`
|
ID int64 `json:"id,omitempty"`
|
||||||
Email string `json:"email,omitempty"`
|
Email string `json:"email,omitempty"`
|
||||||
PlexUsername string `json:"plexUsername,omitempty"`
|
PlexUsername string `json:"plexUsername,omitempty"`
|
||||||
JellyfinUsername string `json:"jellyfinUsername,omitempty"`
|
JellyfinUsername string `json:"jellyfinUsername,omitempty"`
|
||||||
Username string `json:"username,omitempty"`
|
Username string `json:"username,omitempty"`
|
||||||
RecoveryLinkExpirationDate any `json:"recoveryLinkExpirationDate,omitempty"`
|
RecoveryLinkExpirationDate any `json:"recoveryLinkExpirationDate,omitempty"`
|
||||||
PlexID string `json:"plexId,omitempty"`
|
PlexID string `json:"plexId,omitempty"`
|
||||||
JellyfinUserID string `json:"jellyfinUserId,omitempty"`
|
JellyfinUserID string `json:"jellyfinUserId,omitempty"`
|
||||||
JellyfinDeviceID string `json:"jellyfinDeviceId,omitempty"`
|
JellyfinDeviceID string `json:"jellyfinDeviceId,omitempty"`
|
||||||
JellyfinAuthToken string `json:"jellyfinAuthToken,omitempty"`
|
JellyfinAuthToken string `json:"jellyfinAuthToken,omitempty"`
|
||||||
PlexToken string `json:"plexToken,omitempty"`
|
PlexToken string `json:"plexToken,omitempty"`
|
||||||
Avatar string `json:"avatar,omitempty"`
|
Avatar string `json:"avatar,omitempty"`
|
||||||
CreatedAt time.Time `json:"createdAt,omitempty"`
|
CreatedAt time.Time `json:"createdAt,omitempty"`
|
||||||
UpdatedAt time.Time `json:"updatedAt,omitempty"`
|
UpdatedAt time.Time `json:"updatedAt,omitempty"`
|
||||||
RequestCount int64 `json:"requestCount,omitempty"`
|
RequestCount int64 `json:"requestCount,omitempty"`
|
||||||
DisplayName string `json:"displayName,omitempty"`
|
DisplayName string `json:"displayName,omitempty"`
|
||||||
|
Settings *UserSettings `json:"settings,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u User) Name() string {
|
func (u User) Name() string {
|
||||||
@@ -44,6 +45,13 @@ func (u User) Name() string {
|
|||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fields have been omitted (those I know not the type of)
|
||||||
|
type UserSettings struct {
|
||||||
|
ID int64 `json:"id,omitempty"`
|
||||||
|
Locale string `json:"locale,omitempty"`
|
||||||
|
NotificationsSettings
|
||||||
|
}
|
||||||
|
|
||||||
type UserTemplate struct {
|
type UserTemplate struct {
|
||||||
Permissions Permissions `json:"permissions,omitempty"`
|
Permissions Permissions `json:"permissions,omitempty"`
|
||||||
MovieQuotaLimit any `json:"movieQuotaLimit,omitempty"`
|
MovieQuotaLimit any `json:"movieQuotaLimit,omitempty"`
|
||||||
@@ -88,7 +96,7 @@ type NotificationTypes struct {
|
|||||||
type NotificationsField string
|
type NotificationsField string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
FieldDiscord NotificationsField = "discordId"
|
FieldDiscord NotificationsField = "discordIds"
|
||||||
FieldTelegram NotificationsField = "telegramChatId"
|
FieldTelegram NotificationsField = "telegramChatId"
|
||||||
FieldEmailEnabled NotificationsField = "emailEnabled"
|
FieldEmailEnabled NotificationsField = "emailEnabled"
|
||||||
FieldDiscordEnabled NotificationsField = "discordEnabled"
|
FieldDiscordEnabled NotificationsField = "discordEnabled"
|
||||||
@@ -97,12 +105,16 @@ const (
|
|||||||
|
|
||||||
type Notifications struct {
|
type Notifications struct {
|
||||||
NotificationsTemplate
|
NotificationsTemplate
|
||||||
PgpKey any `json:"pgpKey,omitempty"`
|
NotificationsSettings
|
||||||
DiscordID string `json:"discordId,omitempty"`
|
}
|
||||||
PushbulletAccessToken any `json:"pushbulletAccessToken,omitempty"`
|
|
||||||
PushoverApplicationToken any `json:"pushoverApplicationToken,omitempty"`
|
type NotificationsSettings struct {
|
||||||
PushoverUserKey any `json:"pushoverUserKey,omitempty"`
|
PgpKey any `json:"pgpKey,omitempty"`
|
||||||
TelegramChatID string `json:"telegramChatId,omitempty"`
|
DiscordIDs []string `json:"discordIds,omitempty"`
|
||||||
|
PushbulletAccessToken any `json:"pushbulletAccessToken,omitempty"`
|
||||||
|
PushoverApplicationToken any `json:"pushoverApplicationToken,omitempty"`
|
||||||
|
PushoverUserKey any `json:"pushoverUserKey,omitempty"`
|
||||||
|
TelegramChatID string `json:"telegramChatId,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type NotificationsTemplate struct {
|
type NotificationsTemplate struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user