/**
 * 邮件解析器基类
 * 所有网站的邮件解析器都继承此类
 * 100%保持旧框架逻辑不变
 */

import { EmailMessage } from '../IEmailProvider';

export abstract class BaseParser {
  protected siteName: string;
  
  constructor(siteName: string) {
    this.siteName = siteName;
  }
  
  /**
   * 判断是否能解析此邮件
   */
  abstract canParse(email: EmailMessage): boolean;
  
  /**
   * 从邮件中提取验证码
   */
  abstract extractCode(email: EmailMessage): string | null;
  
  /**
   * 通用的验证码提取方法
   */
  protected extractByRegex(content: string, pattern: RegExp): string | null {
    if (!content) return null;
    
    const match = content.match(pattern);
    return match ? match[1] : null;
  }
  
  /**
   * 从HTML中提取文本
   */
  protected stripHtml(html: string): string {
    if (!html) return '';
    return html.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
  }
}
