handle akkoma not supporting status notification type
This commit is contained in:
parent
c5c27a2167
commit
4b5e6804a9
2 changed files with 32 additions and 16 deletions
|
|
@ -157,6 +157,7 @@ const defaultState = {
|
|||
pleromaCustomEmojiReactionsAvailable: false,
|
||||
pleromaBookmarkFoldersAvailable: false,
|
||||
pleromaPublicFavouritesAvailable: true,
|
||||
statusNotificationTypeAvailable: true,
|
||||
gopherAvailable: false,
|
||||
mediaProxyAvailable: false,
|
||||
suggestionsEnabled: false,
|
||||
|
|
|
|||
|
|
@ -5,11 +5,10 @@ import { promiseInterval } from '../promise_interval/promise_interval.js'
|
|||
const update = ({ store, notifications, older }) => {
|
||||
store.dispatch('addNewNotifications', { notifications, older })
|
||||
}
|
||||
|
||||
const fetchAndUpdate = ({ store, credentials, older = false, since }) => {
|
||||
//
|
||||
// For using include_types when fetching notifications.
|
||||
// Note: chat_mention excluded as pleroma-fe polls them separately
|
||||
const mastoApiNotificationTypes = [
|
||||
const mastoApiNotificationTypes = new Set([
|
||||
'mention',
|
||||
'status',
|
||||
'favourite',
|
||||
|
|
@ -19,8 +18,11 @@ const fetchAndUpdate = ({ store, credentials, older = false, since }) => {
|
|||
'move',
|
||||
'poll',
|
||||
'pleroma:emoji_reaction',
|
||||
'pleroma:report'
|
||||
]
|
||||
'pleroma:report',
|
||||
'test'
|
||||
])
|
||||
|
||||
const fetchAndUpdate = ({ store, credentials, older = false, since }) => {
|
||||
|
||||
const args = { credentials }
|
||||
const { getters } = store
|
||||
|
|
@ -29,7 +31,11 @@ const fetchAndUpdate = ({ store, credentials, older = false, since }) => {
|
|||
const hideMutedPosts = getters.mergedConfig.hideMutedPosts
|
||||
|
||||
if (rootState.instance.pleromaChatMessagesAvailable) {
|
||||
mastoApiNotificationTypes.push('pleroma:chat_mention')
|
||||
mastoApiNotificationTypes.add('pleroma:chat_mention')
|
||||
}
|
||||
|
||||
if (!rootState.instance.statusNotificationTypeAvailable) {
|
||||
mastoApiNotificationTypes.delete('status')
|
||||
}
|
||||
|
||||
args.includeTypes = mastoApiNotificationTypes
|
||||
|
|
@ -75,8 +81,17 @@ const fetchNotifications = ({ store, args, older }) => {
|
|||
return apiService.fetchTimeline(args)
|
||||
.then((response) => {
|
||||
if (response.errors) {
|
||||
if (response.status === 400) {
|
||||
store.dispatch('setInstanceOption', {
|
||||
name: 'statusNotificationTypeAvailable',
|
||||
value: false
|
||||
})
|
||||
mastoApiNotificationTypes.delete('status')
|
||||
return fetchNotifications({ store, args, older })
|
||||
} else {
|
||||
throw new Error(`${response.status} ${response.statusText}`)
|
||||
}
|
||||
}
|
||||
const notifications = response.data
|
||||
update({ store, notifications, older })
|
||||
return notifications
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue