2
0
Fork 0

add support for misskey-like cat fields (is cat & speak as cat) and frontend options for this

This commit is contained in:
notfire 2025-09-07 15:02:04 -04:00
commit 0b05ec0ce1
No known key found for this signature in database
15 changed files with 243 additions and 3 deletions

View file

@ -86,6 +86,9 @@ const StatusContent = {
translationLanguages () {
return (this.$store.state.instance.supportedTranslationLanguages.source || []).map(lang => ({ key: lang.code, value: lang.code, label: lang.name }))
},
canSpeakAsCat () {
return (this.$store.getters.mergedConfig.nyaizePosts && this.status.user.speak_as_cat)
},
...mapGetters(['mergedConfig'])
},
components: {
@ -140,6 +143,16 @@ const StatusContent = {
this.$store.dispatch(
'translateStatus', { id: this.status.id, language: translateTo, from: this.translateFrom }
).finally(() => { this.translating = false })
},
speakAsCat () {
// taken from https://github.com/misskey-dev/misskey/blob/develop/packages/misskey-js/src/nyaize.ts
const enRegex1 = /(?<=n)a/gi
const enRegex2 = /(?<=morn)ing/gi
const enRegex3 = /(?<=every)one/gi
return this.status.text
.replace(enRegex1, x => x === 'A' ? 'YA' : 'ya')
.replace(enRegex2, x => x === 'ING' ? 'YAN' : 'yan')
.replace(enRegex3, x => x === 'ONE' ? 'NYAN' : 'nyan')
}
}
}