public static CQCode GetIllustPic(Pixiv_PID info) { string path = Path.Combine(Environment.CurrentDirectory, "data", "image", "LoliconPic", $"{info.data.id}.jpg"); string pathcqcode = Path.Combine("LoliConPic", $"{info.data.id}.jpg"); using (HttpWebClient http = new HttpWebClient()) { http.TimeOut = 5000; try { if (!File.Exists(path)) { string url = string.Empty; url = info.data.imageUrls[0].original.Replace("pximg.net", "pixiv.cat"); http.DownloadFile(url, path); CommonHelper.AntiHX(path); MainSave.CQLog.Info("插画详情", "图片下载成功,正在尝试发送"); } } catch (Exception e) { MainSave.CQLog.Info("插画详情", $"图片下载失败,错误信息:{e.Message}"); return(CQApi.CQCode_Image("Error.jpg")); } } return(CQApi.CQCode_Image(pathcqcode)); }
/// <summary> /// 本地图片拉取 /// </summary> /// <param name="ls"></param> /// <param name="e"></param> /// <returns></returns> public static SendText LocalPic_Image(string orderText, long GroupID, long QQID) { SendText result = new SendText(); CustomObject item = LocalPicOrderList.Where(x => x.Order == orderText) .OrderBy(_ => Guid.NewGuid()).First(); result.HandlingFlag = item.AutoRevoke; try { DirectoryInfo directoryInfo = new DirectoryInfo(item.Path); FileInfo[] fileInfos = directoryInfo.GetFiles("*.*") .Where(x => x.FullName.EndsWith("jpg") || x.FullName.EndsWith("gif") || x.FullName.EndsWith("png") || x.FullName.EndsWith("bmp") || x.FullName.EndsWith("webp") || x.FullName.EndsWith("tif") || x.FullName.EndsWith("tga")).ToArray(); //随机取一个 var picinfo = fileInfos.OrderBy(_ => Guid.NewGuid()).First(); string picpathOrigin = picinfo.FullName; if (!Directory.Exists(MainSave.ImageDirectory + "\\LocalPic")) { Directory.CreateDirectory(MainSave.ImageDirectory + "\\LocalPic"); } string picpathFinal = MainSave.ImageDirectory + "\\LocalPic\\" + picinfo.Name; if (!File.Exists(picpathFinal)) { File.Copy(picpathOrigin, picpathFinal); } MainSave.CQLog.Info("本地图片接口", $"图片获取成功,尝试发送"); CommonHelper.AntiHX(picpathFinal); string imageCQCodePath = Path.Combine("LocalPic", picinfo.Name); result.MsgToSend.Add(CQApi.CQCode_Image(imageCQCodePath).ToSendString()); return(result); } catch (Exception exc) { result.MsgToSend.Add("本地图片接口调用失败"); MainSave.CQLog.Info("本地图片接口", $"调用失败,错误信息:{exc.Message}"); if (item.Usestrict) { QuotaHelper.PlusMemberQuota(GroupID, QQID); } return(result); } }
public static CQCode GetSearchPic(Datum info) { string path = Path.Combine(Environment.CurrentDirectory, "data", "image", "LoliconPic", $"{info.id}.jpg"); var b = Path.GetDirectoryName(path); if (!Directory.Exists(b)) { Directory.CreateDirectory(b); } string pathcqcode = Path.Combine("LoliConPic", $"{info.id}.jpg"); using (HttpWebClient http = new HttpWebClient() { TimeOut = 10000, Encoding = Encoding.UTF8, Proxy = MainSave.Proxy, AllowAutoRedirect = true, }) { try { if (!File.Exists(path)) { string url = info.imageUrls[0].original.Replace("pximg.net", "pixiv.cat"); http.DownloadFile(url, path); CommonHelper.AntiHX(path); MainSave.CQLog.Info("搜索详情", "图片下载成功,正在尝试发送"); } } catch (Exception e) { MainSave.CQLog.Info("搜索详情", $"图片下载失败,错误信息:{e.Message}\n{e.StackTrace}"); return(CQApi.CQCode_Image("Error.jpg")); } } return(CQApi.CQCode_Image(pathcqcode)); }
/// <summary> /// 获取图片 /// </summary> /// <param name="ordertext">除指令外的控制文本</param> /// <returns></returns> public static SendText GetSetuPic(string ordertext, out string objectTostring) { SendText result = new SendText(); objectTostring = String.Empty; using (HttpWebClient http = new HttpWebClient() { TimeOut = 10000, Encoding = Encoding.UTF8, Proxy = MainSave.Proxy, AllowAutoRedirect = true, }) { try { IniConfig ini = MainSave.ConfigMain; string url = api; //拼接Url if (PublicVariables.Lolicon_ApiSwitch) { url = api + $"apikey={PublicVariables.Lolicon_ApiKey}"; } url += GetOrderText(ordertext); if (url.Contains("r18=1") && ini.Object["R18"]["R18PicRevoke"] == "1") { GetLoliconPic.RevokeState = true;//用于后续撤回 } string json = ""; try { json = http.DownloadString(url); } catch (Exception e) { MainSave.CQLog.Info("Error", e.Message); result.MsgToSend.Add(e.Message); result.HandlingFlag = false; return(result); } //检查路径是否存在 if (!Directory.Exists(MainSave.ImageDirectory + @"\LoliconPic\")) { Directory.CreateDirectory(MainSave.ImageDirectory + @"\LoliconPic\"); } //反序列化json Setu deserialize = JsonConvert.DeserializeObject <Setu>(json); objectTostring = deserialize.ToString(); if (deserialize.code != 0)//非成功调用 { MainSave.CQLog.Info("非正常返回", json); result.MsgToSend.Add("非正常返回"); result.HandlingFlag = false; return(result); } //获取Data数组信息 var pic = deserialize.data[0]; string path = Path.Combine(MainSave.ImageDirectory, "LoliconPic", $"{pic.pid}.jpg"); if (!File.Exists(path)) { http.CookieCollection = new CookieCollection(); http.DownloadFile(pic.url, path); CommonHelper.AntiHX(path); } result.MsgToSend.Add(CQApi.CQCode_Image(@"\LoliconPic\" + pic.pid + ".jpg").ToSendString()); return(result); } catch (Exception e) { MainSave.CQLog.Info("Error", $"发生错误的对象{e.Source} , 发送错误: {e.Message}\n{e.StackTrace}"); result.MsgToSend.Add(e.Message); result.HandlingFlag = false; return(result); } } }