using HuanMeng.DotNetCore.TextCensor.SensitiveWord;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
namespace HuanMeng.DotNetCore.TextCensor
{
///
///
///
public static class TextCensorExtend
{
///
/// 获取文本检测
///
///
///
public static ITextCensor GetITextCensor(string _dirPath)
{
return GetSensitiveWordFilterFrozen(_dirPath)
//GetSensitiveWordFilter(_dirPath)
;
}
///
///
///
///
///
public static SensitiveWordFilter GetSensitiveWordFilter(string _dirPath)
{
SensitiveWordFilter sensitiveWordFilter = new SensitiveWordFilter();
var ckPath = Path.GetFullPath(_dirPath);
var filePath = Directory.EnumerateFiles(ckPath);
foreach (var item in filePath)
{
AddShieldString(item, sensitiveWordFilter);
}
return sensitiveWordFilter;
}
///
///
///
///
///
public static SensitiveWordFilterFrozen GetSensitiveWordFilterFrozen(string _dirPath)
{
SensitiveWordFilterFrozen sensitiveWordFilter = new SensitiveWordFilterFrozen();
var ckPath = Path.GetFullPath(_dirPath);
var filePath = Directory.EnumerateFiles(ckPath);
foreach (var item in filePath)
{
AddShieldString(item, sensitiveWordFilter);
}
return sensitiveWordFilter;
}
///
///
///
///
///
public static void AddShieldString(string path, SensitiveWordFilterFrozen sensitiveWordFilter)
{
if (!File.Exists(path))
{
throw new Exception("文件不存在");
}
using (StreamReader reader = new StreamReader(path, UnicodeEncoding.UTF8))
{
while (reader.Peek() > 0)
{
var tempStr = (reader.ReadLine() ?? "");
if (!string.IsNullOrEmpty(tempStr))
{
sensitiveWordFilter.AddSensitiveWord(tempStr);
}
}
}
}
///
///
///
///
///
public static void AddShieldString(string path, SensitiveWordFilter sensitiveWordFilter)
{
if (!File.Exists(path))
{
throw new Exception("文件不存在");
}
using (StreamReader reader = new StreamReader(path, UnicodeEncoding.UTF8))
{
while (reader.Peek() > 0)
{
var tempStr = (reader.ReadLine() ?? "");
if (!string.IsNullOrEmpty(tempStr))
{
sensitiveWordFilter.AddSensitiveWord(tempStr);
}
}
}
}
}
}