old_flsystem/应用/AutoAnswer/Tools.cs

115 lines
3.9 KiB
C#
Raw Normal View History

2022-09-20 03:10:29 +00:00
using Api.Framework;
using AutoAnswer.Entitys;
using CsharpHttpHelper;
using Api.Framework.Tools;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web;
namespace AutoAnswer
{
public static class Tools
{
private static List<fl_plugin_autoanswer_definedlib> _WordbanckCache = null;
public static List<fl_plugin_autoanswer_definedlib> WordbanckCache
{
get
{
if (_WordbanckCache == null) RefreshWordbanck1();
return _WordbanckCache;
}
}
/// <summary>
/// 获取新的数据
/// </summary>
public static void RefreshWordbanck1()
{
_WordbanckCache = ApiClient.GetSession().Find<fl_plugin_autoanswer_definedlib>("select * from fl_plugin_autoanswer_definedlib where match_pattern = 1");
}
#region
/// <summary>
/// 图灵API
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public static string GetHtml(string text, string userid, string apikey = "")
{
userid = Regex.Replace(userid, "[^a-zA-Z0-9\u4e00-\u9fa5]", "");
userid = string.IsNullOrEmpty(userid) ? Guid.NewGuid().ToString("N") : userid;
try
{
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = "http://openapi.tuling123.com/openapi/api/v2",
Encoding = System.Text.Encoding.GetEncoding("utf-8"),
Method = "post",
Postdata = "{\"reqType\":0,\"perception\": {\"inputText\": {\"text\": \"" + String2Unicode(text) + "\"}},\"userInfo\": {\"apiKey\": \"" + (string.IsNullOrEmpty(apikey) ? Class1.Config.TuLing_apikey.Trim() : apikey.Trim()) + "\",\"userId\":\"" + userid + "\"}}",
ContentType = "text/html"
};
HttpResult result = http.GetHtml(item);
return result.Html;
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 字符串转Unicode
/// </summary>
/// <param name="source">源字符串</param>
/// <returns>Unicode编码后的字符串</returns>
private static string String2Unicode(string source)
{
var bytes = Encoding.Unicode.GetBytes(source);
var stringBuilder = new StringBuilder();
for (var i = 0; i < bytes.Length; i += 2)
{
stringBuilder.AppendFormat("\\u{0:x2}{1:x2}", bytes[i + 1], bytes[i]);
}
return stringBuilder.ToString();
}
#endregion
#region url编码工厂
/// <summary>
/// url编码工厂
/// </summary>
/// <param name="content"></param>
/// <param name="flag">编码还是解码true编码false解码</param>
/// <returns></returns>
public static string UrlEncodFactory(string content, bool flag = false)
{
try
{
return flag ? HttpUtility.UrlEncode(content, Encoding.UTF8) : HttpUtility.UrlDecode(content, Encoding.UTF8);
}
catch (Exception)
{ }
return string.Empty;
}
#endregion
private static List<fl_plugin_autoanswer_unprocessed> unprocesseds = null;
public static List<fl_plugin_autoanswer_unprocessed> FindUnprocesseds(bool flush = false)
{
if (flush || unprocesseds == null)
{
var db = ApiClient.GetSession();
unprocesseds = db.Find<fl_plugin_autoanswer_unprocessed>("select * from fl_plugin_autoanswer_unprocessed");
}
return unprocesseds;
}
}
}