コード例 #1
0
        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));
        }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        /// <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);
                }
            }
        }