pleroma-fe/src/services/status_parser/status_parser.js

31 lines
992 B
JavaScript
Raw Normal View History

2025-03-25 19:48:12 +02:00
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
2025-03-25 19:48:12 +02:00
export const muteFilterHits = (status) => {
const statusText = status.text.toLowerCase()
const statusSummary = status.summary.toLowerCase()
2025-03-25 19:48:12 +02:00
const muteFilters = Object.values(useServerSideStorageStore().prefsStorage.simple.muteFilters)
return muteFilters.toSorted((a,b) => b.order - a.order).map(filter => {
2025-03-25 19:49:02 +02:00
const { hide, expires, name, value, type, enabled} = filter
if (!enabled) return false
2025-03-25 19:48:12 +02:00
if (expires !== null && expires < Date.now()) return false
switch (type) {
case 'word': {
if (statusText.includes(value) || statusSummary.includes(value)) {
return { hide, name }
}
}
case 'regexp': {
try {
const re = new RegExp(value, 'i')
if (re.test(statusText) || re.test(statusSummary)) {
return { hide, name }
}
} catch {
return false
}
}
}
}).filter(_ => _)
}