public static void CrapTable() { var content = _httpHleper.GetString(tableUrl, "UTF-8"); string directorPath = AppDomain.CurrentDomain.BaseDirectory + fileFoldName; Directory.CreateDirectory(directorPath); string path = directorPath + tableFileName + ".txt"; FileReadWriteHelper.WriteFile(content, path); }
/// <summary> /// 获取心知天气 /// </summary> /// <param name="city">城市</param> /// <returns></returns> private WeatherInfo GetSeniverseWeather(string city) { if (string.IsNullOrEmpty(city)) { return(null); } WeatherInfo weatherInfo = new WeatherInfo() { results = new List <WeatherResult>() }; try { string requestUrl = "https://api.seniverse.com/v3/weather/now.json?"; string param = $"key={apikey}&location={city}&language={language}&unit=c"; requestUrl += param; string response = HttpClientHelper.Get(requestUrl); var seniverseWeather = SerializeHelper.SerializeJsonToObject <SeniverseWeather>(response); if (seniverseWeather == null) { return(null); } if (seniverseWeather.results == null || seniverseWeather.results.Length <= 0) { return(null); } foreach (var item in seniverseWeather.results) { WeatherResult weatherResult = new WeatherResult(); weatherResult.country = item.location.country; weatherResult.id = item.location.id; weatherResult.name = item.location.name; weatherResult.path = item.location.path; weatherResult.timezone = item.location.timezone; weatherResult.timezone_offset = item.location.timezone_offset; weatherResult.last_update = item.last_update; weatherResult.text = item.now.text; weatherResult.temperature = item.now.temperature + "℃"; string code = item.now.code; byte[] bytes = FileReadWriteHelper.ReadBytesFromBitmap(GetBitmap(code)); weatherResult.icon = Base64Helper.Encoding(bytes); weatherInfo.results.Add(weatherResult); } } catch (System.Exception ex) { LogHelper.WriteError(ex); } return(weatherInfo); }
/// <summary> /// 获取Jirengu天气(备用查询天气方案(地级市也可查询)) /// </summary> /// <param name="city">城市</param> /// <returns></returns> private WeatherInfo GetJirenguWeather(string city) { if (string.IsNullOrEmpty(city)) { return(null); } WeatherInfo weatherInfo = new WeatherInfo() { results = new List <WeatherResult>() }; try { string requestUrl = $"http://api.jirengu.com/getWeather.php?city={city}"; string response = HttpClientHelper.Get(requestUrl); var jirenguWeather = SerializeHelper.SerializeJsonToObject <JirenguWeather>(response); if (jirenguWeather == null) { return(null); } if (jirenguWeather.results == null || jirenguWeather.results.Length <= 0) { return(null); } foreach (var item in jirenguWeather.results) { int i = 0; WeatherResult weatherResult = new WeatherResult(); weatherResult.path = item.currentCity; weatherResult.text = item.weather_data[i].weather; string tempStr = item.weather_data[i].date; Regex reg = new Regex(@"实时:(.+)℃\)"); Match match = reg.Match(tempStr); string temperature = match.Groups[1].Value; weatherResult.temperature = temperature + "℃"; string code = GetWeatherCode(item.weather_data[i].weather); byte[] bytes = FileReadWriteHelper.ReadBytesFromBitmap(GetBitmap(code)); weatherResult.icon = Base64Helper.Encoding(bytes); weatherInfo.results.Add(weatherResult); i++; } } catch (Exception ex) { LogHelper.WriteError(ex); } return(weatherInfo); }
public static void ParseTable() { string directorPath = AppDomain.CurrentDomain.BaseDirectory + fileFoldName; string path = directorPath + tableFileName + ".txt"; var content = FileReadWriteHelper.ReadFile(path); //抓取到表格数据 var ScopeRegex = new Regex(tableRegex); //获取内容 var searchMatchData = ScopeRegex.Matches(content); var targetTable = searchMatchData[0].Value; StringBuilder sb = new StringBuilder(); sb.Append("<html><body>"); sb.Append(targetTable); sb.Append("</body></html>"); //使用HtmlAgilityPack加载table HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(sb.ToString()); string outpath = directorPath + tableFileName + targetTabletxt; StreamWriter sw = new StreamWriter(outpath, false, Encoding.Default); foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table")) { Console.WriteLine("Found: " + table.Id); foreach (HtmlNode row in table.SelectNodes("tr")) { Console.WriteLine("row"); foreach (HtmlNode cell in row.SelectNodes("th|td")) { string text = cell.InnerText; Console.WriteLine("cell: " + cell.InnerText); if (cell.SelectNodes("a") != null) { var ahtml = cell.SelectNodes("a").FirstOrDefault(); if (ahtml != null) { if (ahtml.HasAttributes) { var url = ahtml.Attributes["href"].Value; text += ':' + url; } } } // 输出到文件 sw.Write(text + " , "); sw.Write(""); } sw.WriteLine("\n"); } } sw.Close(); //抓取TR数据 //var trRegexs = new Regex(trRegex); //var trsCollection = trRegexs.Matches(targetTable); //foreach (Match item in trsCollection) //{ //} }
public ServerControl() { faceList = new List <FaceInfo>() { new FaceInfo() { type = "black", filename = "101.jpg", name = "101", sex = "w", serialnumber = 101, idnumber = "101", imagebytes = Convert.ToBase64String(FileReadWriteHelper.ReadBytesFromFile(@"D:\Test\123.jpg")) }, new FaceInfo() { type = "white", filename = "102.jpg", name = "102", sex = "m", serialnumber = 102, idnumber = "101", imagebytes = Convert.ToBase64String(FileReadWriteHelper.ReadBytesFromFile(@"D:\Test\124.jpg")) }, new FaceInfo() { type = "black", filename = "103.jpg", name = "103", sex = "m", serialnumber = 103, idnumber = "101", imagebytes = Convert.ToBase64String(FileReadWriteHelper.ReadBytesFromFile(@"D:\Test\125.jpg")) }, new FaceInfo() { type = "white", filename = "104.jpg", name = "104", sex = "w", serialnumber = 104, idnumber = "101", imagebytes = Convert.ToBase64String(FileReadWriteHelper.ReadBytesFromFile(@"D:\Test\126.jpg")) }, new FaceInfo() { type = "black", filename = "105.jpg", name = "105", sex = "m", serialnumber = 105, idnumber = "101", imagebytes = Convert.ToBase64String(FileReadWriteHelper.ReadBytesFromFile(@"D:\Test\127.jpg")) } }; AutoSetBlackBodyPoint(); }
public async Task OnSessionDataReceived(AsyncTcpServerSession session, byte[] data, int offset, int count) { if (data == null || data.Length <= 0) { return; } byte code = data[0]; //功能码 byte[] bytes = new byte[data.Length - 1]; //正文数据 Array.Copy(data, 1, bytes, 0, bytes.Length); string unBase64txt = Encoding.UTF8.GetString(bytes); byte[] unBase64Bytes = Convert.FromBase64String(unBase64txt); //bas64解码 if (!code.Equals(CODE_HEARTBEAT)) { Console.WriteLine($"功能码:{code.ToString()},数据{Encoding.UTF8.GetString(unBase64Bytes)}"); } try { switch (code) { case CODE_FACEUPLOAD: //名单上传 { string upLoadFaceStr = Encoding.UTF8.GetString(unBase64Bytes); UpLoadFace upLoadFace = SerializeHelper.SerializeJsonToObject <UpLoadFace>(upLoadFaceStr); byte[] imgBytes = Convert.FromBase64String(upLoadFace.imagebytes); FileReadWriteHelper.WriteBytesToFile($@"D:\Test\{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.jpg", imgBytes); //保存图片 ServerControl.GetInstance().faceList.Add(new FaceInfo() { filename = upLoadFace.filename, idnumber = upLoadFace.idnumber, imagebytes = upLoadFace.imagebytes, name = upLoadFace.name, sex = upLoadFace.sex, serialnumber = upLoadFace.serialnumber, type = upLoadFace.type }); ServerControl.GetInstance().ServerSendMsg(CODE_FACEUPLOAD, new byte[] { SUCCESS }); Console.WriteLine($"名单上传成功,列表还有白名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("white")).Count()}个,和名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).Count()}个!"); break; } case CODE_FACESELECT: //名单查询 { SelectFace selectFace = new SelectFace(); switch (unBase64Bytes[0]) { case WHITEFACE: selectFace.faceList = ServerControl.GetInstance().faceList.Where(p => p.type.Equals("white")).ToList(); break; case BLACKFACE: selectFace.faceList = ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).ToList(); break; case ALLFACE: selectFace.faceList = ServerControl.GetInstance().faceList; break; } string jsonStr = SerializeHelper.SerializeObjectToJson(selectFace); byte[] tBytes = Encoding.UTF8.GetBytes(jsonStr); ServerControl.GetInstance().ServerSendMsg(CODE_FACESELECT, tBytes); Console.WriteLine($"名单查询成功,一共查到{selectFace.faceList.Count}个名单!"); break; } case CODE_FACEDELETE: //名单删除 { string deleteFaceStr = Encoding.UTF8.GetString(unBase64Bytes); DeleteFace deleteFace = SerializeHelper.SerializeJsonToObject <DeleteFace>(deleteFaceStr); var dFace = ServerControl.GetInstance().faceList.Where(p => p.type.Equals(deleteFace.type) && p.serialnumber.Equals(deleteFace.serialnumber)).First(); ServerControl.GetInstance().faceList.Remove(dFace); ServerControl.GetInstance().ServerSendMsg(CODE_FACEDELETE, new byte[] { SUCCESS }); Console.WriteLine($"名单删除成功,列表还有白名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("white")).Count()}个,和名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).Count()}个!"); break; } case CODE_FACECLEAR: //名单清除 { List <FaceInfo> clList = new List <FaceInfo>(); switch (unBase64Bytes[0]) { case WHITEFACE: clList = ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).ToList(); break; case BLACKFACE: clList = ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).ToList(); break; case ALLFACE: clList = ServerControl.GetInstance().faceList; break; } foreach (var item in clList) { ServerControl.GetInstance().faceList.Remove(item); } ServerControl.GetInstance().ServerSendMsg(CODE_FACECLEAR, new byte[] { SUCCESS }); Console.WriteLine($"名单清除成功,列表还有白名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("white")).Count()}个,和名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).Count()}个!"); break; } case CODE_FACCONTRAST: //人脸对比 { switch (unBase64Bytes[0]) { case START: ServerControl.GetInstance().ServerSendMsg(CODE_FACCONTRAST, new byte[] { SUCCESS }); IsSend = false; Console.WriteLine("启动人脸对比成功,抓图中。。。"); SendImg(); break; case STOP: ServerControl.GetInstance().ServerSendMsg(CODE_FACCONTRAST, new byte[] { STOPSUCCESS }); IsSend = false; Console.WriteLine("关闭人脸对比成功!"); break; } break; } case CODE_FOLLOW: //跟随 { switch (unBase64Bytes[0]) { case START: ServerControl.GetInstance().ServerSendMsg(CODE_FOLLOW, new byte[] { SUCCESS }); Console.WriteLine("启动跟随成功!"); break; case STOP: ServerControl.GetInstance().ServerSendMsg(CODE_FOLLOW, new byte[] { STOPSUCCESS }); Console.WriteLine("关闭跟随成功!"); break; case RESTART: ServerControl.GetInstance().ServerSendMsg(CODE_FOLLOW, new byte[] { RESTARTSUCCESS }); Console.WriteLine("重新跟随成功!"); break; } break; } case CODE_GETPOINT: //获取黑体坐标 { BlackBodyPoint blackBodyPoint = new BlackBodyPoint() { xpoint = 55, ypoint = 105 }; string jsonStr = SerializeHelper.SerializeObjectToJson(blackBodyPoint); byte[] body = Encoding.UTF8.GetBytes(jsonStr); ServerControl.GetInstance().ServerSendMsg(CODE_SETPOINT, body); Console.WriteLine("校准黑体坐标成功!"); break; } case CODE_FACEIDENTIFY: //人脸识别 break; case CODE_FACEALARM: //人脸报警 break; case CODE_HEARTBEAT: //心跳 break; } } catch (Exception ex) { LogHelper.WriteError(ex); Console.WriteLine($"解析接收数据异常:{ex.ToString()}"); } }