mirror of
https://github.com/sct/overseerr.git
synced 2025-09-17 17:24:35 +02:00
feat(notif): add Pushbullet channel tag (#2198)
* feat(notif): add pushbullet channel tag to server notif settings * feat(notif): suggested changes * docs(notif): add pushbullet channel tag
This commit is contained in:

committed by
GitHub

parent
eb9ca2e86f
commit
f9200b7977
@@ -11,3 +11,7 @@ User notifications are separate from system notifications, and the available not
|
||||
### Access Token
|
||||
|
||||
[Create an access token](https://www.pushbullet.com/#settings) and set it here to grant Overseerr access to the Pushbullet API.
|
||||
|
||||
### Channel Tag (optional)
|
||||
|
||||
Optionally, [create a channel](https://www.pushbullet.com/my-channel) to allow other users to follow the notification feed using the specified channel tag.
|
||||
|
@@ -1239,6 +1239,9 @@ components:
|
||||
properties:
|
||||
accessToken:
|
||||
type: string
|
||||
channelTag:
|
||||
type: string
|
||||
nullable: true
|
||||
PushoverSettings:
|
||||
type: object
|
||||
properties:
|
||||
|
@@ -19,6 +19,7 @@ interface PushbulletPayload {
|
||||
type: string;
|
||||
title: string;
|
||||
body: string;
|
||||
channel_tag?: string;
|
||||
}
|
||||
|
||||
class PushbulletAgent
|
||||
@@ -116,11 +117,15 @@ class PushbulletAgent
|
||||
});
|
||||
|
||||
try {
|
||||
await axios.post(endpoint, notificationPayload, {
|
||||
headers: {
|
||||
'Access-Token': settings.options.accessToken,
|
||||
},
|
||||
});
|
||||
await axios.post(
|
||||
endpoint,
|
||||
{ ...notificationPayload, channel_tag: settings.options.channelTag },
|
||||
{
|
||||
headers: {
|
||||
'Access-Token': settings.options.accessToken,
|
||||
},
|
||||
}
|
||||
);
|
||||
} catch (e) {
|
||||
logger.error('Error sending Pushbullet notification', {
|
||||
label: 'Notifications',
|
||||
@@ -188,8 +193,9 @@ class PushbulletAgent
|
||||
.map(async (user) => {
|
||||
if (
|
||||
user.settings?.pushbulletAccessToken &&
|
||||
user.settings.pushbulletAccessToken !==
|
||||
settings.options.accessToken
|
||||
(settings.options.channelTag ||
|
||||
user.settings.pushbulletAccessToken !==
|
||||
settings.options.accessToken)
|
||||
) {
|
||||
logger.debug('Sending Pushbullet notification', {
|
||||
label: 'Notifications',
|
||||
|
@@ -181,6 +181,7 @@ export interface NotificationAgentTelegram extends NotificationAgentConfig {
|
||||
export interface NotificationAgentPushbullet extends NotificationAgentConfig {
|
||||
options: {
|
||||
accessToken: string;
|
||||
channelTag?: string;
|
||||
};
|
||||
}
|
||||
|
||||
|
@@ -18,6 +18,7 @@ const messages = defineMessages({
|
||||
accessTokenTip:
|
||||
'Create a token from your <PushbulletSettingsLink>Account Settings</PushbulletSettingsLink>',
|
||||
validationAccessTokenRequired: 'You must provide an access token',
|
||||
channelTag: 'Channel Tag',
|
||||
pushbulletSettingsSaved:
|
||||
'Pushbullet notification settings saved successfully!',
|
||||
pushbulletSettingsFailed: 'Pushbullet notification settings failed to save.',
|
||||
@@ -57,6 +58,7 @@ const NotificationsPushbullet: React.FC = () => {
|
||||
enabled: data?.enabled,
|
||||
types: data?.types,
|
||||
accessToken: data?.options.accessToken,
|
||||
channelTag: data.options.channelTag,
|
||||
}}
|
||||
validationSchema={NotificationsPushbulletSchema}
|
||||
onSubmit={async (values) => {
|
||||
@@ -66,6 +68,7 @@ const NotificationsPushbullet: React.FC = () => {
|
||||
types: values.types,
|
||||
options: {
|
||||
accessToken: values.accessToken,
|
||||
channelTag: values.channelTag,
|
||||
},
|
||||
});
|
||||
addToast(intl.formatMessage(messages.pushbulletSettingsSaved), {
|
||||
@@ -110,6 +113,7 @@ const NotificationsPushbullet: React.FC = () => {
|
||||
types: values.types,
|
||||
options: {
|
||||
accessToken: values.accessToken,
|
||||
channelTag: values.channelTag,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -181,6 +185,16 @@ const NotificationsPushbullet: React.FC = () => {
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
<div className="form-row">
|
||||
<label htmlFor="channelTag" className="text-label">
|
||||
{intl.formatMessage(messages.channelTag)}
|
||||
</label>
|
||||
<div className="form-input">
|
||||
<div className="form-input-field">
|
||||
<Field id="channelTag" name="channelTag" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<NotificationTypeSelector
|
||||
currentTypes={values.enabled ? values.types : 0}
|
||||
onUpdate={(newTypes) => {
|
||||
|
@@ -401,6 +401,7 @@
|
||||
"components.Settings.Notifications.NotificationsPushbullet.accessToken": "Access Token",
|
||||
"components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Create a token from your <PushbulletSettingsLink>Account Settings</PushbulletSettingsLink>",
|
||||
"components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Enable Agent",
|
||||
"components.Settings.Notifications.NotificationsPushbullet.channelTag": "Channel Tag",
|
||||
"components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Pushbullet notification settings failed to save.",
|
||||
"components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Pushbullet notification settings saved successfully!",
|
||||
"components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Pushbullet test notification failed to send.",
|
||||
|
Reference in New Issue
Block a user