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 _WordbanckCache = null; public static List WordbanckCache { get { if (_WordbanckCache == null) RefreshWordbanck1(); return _WordbanckCache; } } /// /// 获取新的数据 /// public static void RefreshWordbanck1() { _WordbanckCache = ApiClient.GetSession().Find("select * from fl_plugin_autoanswer_definedlib where match_pattern = 1"); } #region 图灵 /// /// 图灵API /// /// /// 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; } } /// /// 字符串转Unicode /// /// 源字符串 /// Unicode编码后的字符串 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编码工厂 /// /// url编码工厂 /// /// /// 编码还是解码,true编码,false解码 /// 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 unprocesseds = null; public static List FindUnprocesseds(bool flush = false) { if (flush || unprocesseds == null) { var db = ApiClient.GetSession(); unprocesseds = db.Find("select * from fl_plugin_autoanswer_unprocessed"); } return unprocesseds; } } }