old_flsystem/应用/AutoAnswer/Tools.cs

115 lines
3.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}