Bilibili-Evolved/registry/lib/deprecated/feeds-translate/index.ts
2022-10-12 23:27:58 +08:00

42 lines
1.2 KiB
TypeScript

import { defineComponentMetadata } from '@/components/define'
import { FeedsCard } from '@/components/feeds/api'
import { feedsUrls } from '@/core/utils/urls'
const entry = async () => {
const { default: MachineTranslator } = await import(
'@/components/i18n/machine-translator/MachineTranslator.vue'
)
const { forEachFeedsCard } = await import('@/components/feeds/api')
const injectButton = (card: FeedsCard) => {
const text = card.text.replace(/#(.+?)#/g, '')
if (text === '') {
return
}
if (dq(card.element, '.translate-container')) {
return
}
const cardContent = card.element.querySelector('.card-content') as HTMLElement
const translator = new MachineTranslator({
propsData: {
text,
},
}).$mount()
cardContent.insertAdjacentElement('beforeend', translator.$el)
}
forEachFeedsCard({
added: injectButton,
})
}
export const component = defineComponentMetadata({
name: 'feedsTranslate',
displayName: '动态翻译',
description: {
'zh-CN': '在每条动态下方添加翻译按钮.',
},
tags: [componentsTags.utils, componentsTags.feeds],
entry,
urlInclude: feedsUrls,
})