mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 15:34:13 +00:00 
			
		
		
		
	fix(backend): parse5関係の型のimport方法を変更 (#14146)
This commit is contained in:
		
							parent
							
								
									0ea88c07b4
								
							
						
					
					
						commit
						fe852920c3
					
				
					 1 changed files with 20 additions and 24 deletions
				
			
		| 
						 | 
				
			
			@ -7,16 +7,18 @@ import { URL } from 'node:url';
 | 
			
		|||
import { Inject, Injectable } from '@nestjs/common';
 | 
			
		||||
import * as parse5 from 'parse5';
 | 
			
		||||
import { Window, XMLSerializer } from 'happy-dom';
 | 
			
		||||
import * as TreeAdapter from 'parse5/dist/tree-adapters/default.js';
 | 
			
		||||
import { DI } from '@/di-symbols.js';
 | 
			
		||||
import type { Config } from '@/config.js';
 | 
			
		||||
import { intersperse } from '@/misc/prelude/array.js';
 | 
			
		||||
import { normalizeForSearch } from '@/misc/normalize-for-search.js';
 | 
			
		||||
import type { IMentionedRemoteUsers } from '@/models/Note.js';
 | 
			
		||||
import { bindThis } from '@/decorators.js';
 | 
			
		||||
import type { DefaultTreeAdapterMap } from 'parse5';
 | 
			
		||||
import type * as mfm from 'mfm-js';
 | 
			
		||||
 | 
			
		||||
const treeAdapter = TreeAdapter.defaultTreeAdapter;
 | 
			
		||||
const treeAdapter = parse5.defaultTreeAdapter;
 | 
			
		||||
type Node = DefaultTreeAdapterMap['node'];
 | 
			
		||||
type ChildNode = DefaultTreeAdapterMap['childNode'];
 | 
			
		||||
 | 
			
		||||
const urlRegex = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+/;
 | 
			
		||||
const urlRegexFull = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+$/;
 | 
			
		||||
| 
						 | 
				
			
			@ -46,7 +48,7 @@ export class MfmService {
 | 
			
		|||
 | 
			
		||||
		return text.trim();
 | 
			
		||||
 | 
			
		||||
		function getText(node: TreeAdapter.Node): string {
 | 
			
		||||
		function getText(node: Node): string {
 | 
			
		||||
			if (treeAdapter.isTextNode(node)) return node.value;
 | 
			
		||||
			if (!treeAdapter.isElementNode(node)) return '';
 | 
			
		||||
			if (node.nodeName === 'br') return '\n';
 | 
			
		||||
| 
						 | 
				
			
			@ -58,7 +60,7 @@ export class MfmService {
 | 
			
		|||
			return '';
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		function appendChildren(childNodes: TreeAdapter.ChildNode[]): void {
 | 
			
		||||
		function appendChildren(childNodes: ChildNode[]): void {
 | 
			
		||||
			if (childNodes) {
 | 
			
		||||
				for (const n of childNodes) {
 | 
			
		||||
					analyze(n);
 | 
			
		||||
| 
						 | 
				
			
			@ -66,14 +68,16 @@ export class MfmService {
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		function analyze(node: TreeAdapter.Node) {
 | 
			
		||||
		function analyze(node: Node) {
 | 
			
		||||
			if (treeAdapter.isTextNode(node)) {
 | 
			
		||||
				text += node.value;
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Skip comment or document type node
 | 
			
		||||
			if (!treeAdapter.isElementNode(node)) return;
 | 
			
		||||
			if (!treeAdapter.isElementNode(node)) {
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			switch (node.nodeName) {
 | 
			
		||||
				case 'br': {
 | 
			
		||||
| 
						 | 
				
			
			@ -81,8 +85,7 @@ export class MfmService {
 | 
			
		|||
					break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				case 'a':
 | 
			
		||||
				{
 | 
			
		||||
				case 'a': {
 | 
			
		||||
					const txt = getText(node);
 | 
			
		||||
					const rel = node.attrs.find(x => x.name === 'rel');
 | 
			
		||||
					const href = node.attrs.find(x => x.name === 'href');
 | 
			
		||||
| 
						 | 
				
			
			@ -90,7 +93,7 @@ export class MfmService {
 | 
			
		|||
					// ハッシュタグ
 | 
			
		||||
					if (normalizedHashtagNames && href && normalizedHashtagNames.has(normalizeForSearch(txt))) {
 | 
			
		||||
						text += txt;
 | 
			
		||||
					// メンション
 | 
			
		||||
						// メンション
 | 
			
		||||
					} else if (txt.startsWith('@') && !(rel && rel.value.startsWith('me '))) {
 | 
			
		||||
						const part = txt.split('@');
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -102,7 +105,7 @@ export class MfmService {
 | 
			
		|||
						} else if (part.length === 3) {
 | 
			
		||||
							text += txt;
 | 
			
		||||
						}
 | 
			
		||||
					// その他
 | 
			
		||||
						// その他
 | 
			
		||||
					} else {
 | 
			
		||||
						const generateLink = () => {
 | 
			
		||||
							if (!href && !txt) {
 | 
			
		||||
| 
						 | 
				
			
			@ -130,8 +133,7 @@ export class MfmService {
 | 
			
		|||
					break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				case 'h1':
 | 
			
		||||
				{
 | 
			
		||||
				case 'h1': {
 | 
			
		||||
					text += '【';
 | 
			
		||||
					appendChildren(node.childNodes);
 | 
			
		||||
					text += '】\n';
 | 
			
		||||
| 
						 | 
				
			
			@ -139,16 +141,14 @@ export class MfmService {
 | 
			
		|||
				}
 | 
			
		||||
 | 
			
		||||
				case 'b':
 | 
			
		||||
				case 'strong':
 | 
			
		||||
				{
 | 
			
		||||
				case 'strong': {
 | 
			
		||||
					text += '**';
 | 
			
		||||
					appendChildren(node.childNodes);
 | 
			
		||||
					text += '**';
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				case 'small':
 | 
			
		||||
				{
 | 
			
		||||
				case 'small': {
 | 
			
		||||
					text += '<small>';
 | 
			
		||||
					appendChildren(node.childNodes);
 | 
			
		||||
					text += '</small>';
 | 
			
		||||
| 
						 | 
				
			
			@ -156,8 +156,7 @@ export class MfmService {
 | 
			
		|||
				}
 | 
			
		||||
 | 
			
		||||
				case 's':
 | 
			
		||||
				case 'del':
 | 
			
		||||
				{
 | 
			
		||||
				case 'del': {
 | 
			
		||||
					text += '~~';
 | 
			
		||||
					appendChildren(node.childNodes);
 | 
			
		||||
					text += '~~';
 | 
			
		||||
| 
						 | 
				
			
			@ -165,8 +164,7 @@ export class MfmService {
 | 
			
		|||
				}
 | 
			
		||||
 | 
			
		||||
				case 'i':
 | 
			
		||||
				case 'em':
 | 
			
		||||
				{
 | 
			
		||||
				case 'em': {
 | 
			
		||||
					text += '<i>';
 | 
			
		||||
					appendChildren(node.childNodes);
 | 
			
		||||
					text += '</i>';
 | 
			
		||||
| 
						 | 
				
			
			@ -207,8 +205,7 @@ export class MfmService {
 | 
			
		|||
				case 'h3':
 | 
			
		||||
				case 'h4':
 | 
			
		||||
				case 'h5':
 | 
			
		||||
				case 'h6':
 | 
			
		||||
				{
 | 
			
		||||
				case 'h6': {
 | 
			
		||||
					text += '\n\n';
 | 
			
		||||
					appendChildren(node.childNodes);
 | 
			
		||||
					break;
 | 
			
		||||
| 
						 | 
				
			
			@ -221,8 +218,7 @@ export class MfmService {
 | 
			
		|||
				case 'article':
 | 
			
		||||
				case 'li':
 | 
			
		||||
				case 'dt':
 | 
			
		||||
				case 'dd':
 | 
			
		||||
				{
 | 
			
		||||
				case 'dd': {
 | 
			
		||||
					text += '\n';
 | 
			
		||||
					appendChildren(node.childNodes);
 | 
			
		||||
					break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue