#!/bin/python3
import json
import sys
import re
from collections import Counter
from logger_config import get_logger
# 获取日志记录器
logger = get_logger()

def count_sensitive_words(text, sensitive_words):
    # 使用 Counter 直接统计敏感词出现次数
    word_count = Counter()

    for word in sensitive_words:
        # 使用正则表达式查找敏感字并计算出现次数
        count = len(re.findall(re.escape(word), text))
        if count > 0:
            word_count[word] += count

    return word_count

def generate_summary(text,keywords):
    # 初始化结果字典
    result = {"total": 0, "keywords": []}
    
    for keyword in keywords:
        # 计算每个关键词在文本中的出现次数
        count = text.count(keyword)
        # 将关键词和出现次数添加到结果字典中
        result["keywords"].append({"keyword": keyword, "count": count})
        # 累加总出现次数
        result["total"] += count

    return result

if __name__ == "__main__":
    # 从命令行参数获取文本和敏感字数组
    if len(sys.argv) != 3:
        print("Usage: python3 count_sensitive_words.py <text> <sensitive_words>")
        sys.exit(1)

    text = sys.argv[1]
    # 解析敏感字数组
    sensitive_words = sys.argv[2].strip("[]").replace('"', '').split(',') if sys.argv[2] else []

    # 生成输出
    output = generate_summary(text,sensitive_words)
    logger.debug(f"调试： 敏感字检查结果为： {output}")
    json_str = json.dumps(output, indent=None)
    print(json_str)
