Exemplo n.º 1
0
        public override DownLoadComic GetDownImageList(string response)
        {
            DownLoadComic downLoad   = new DownLoadComic();
            Regex         urlRegex   = new Regex(@"MANGABZ_CURL\s*=\s*""(?<data>[\w/]*)""");
            Regex         midRegex   = new Regex(@"MANGABZ_MID\s*=\s*(?<data>\d+)");
            Regex         cidRegex   = new Regex(@"MANGABZ_CID=(?<data>\d+)");
            Regex         signRegex  = new Regex(@"MANGABZ_VIEWSIGN=""(?<data>\w+)""");
            Regex         dtRegex    = new Regex(@"MANGABZ_VIEWSIGN_DT=""(?<data>[\w\s\-\:]*)""");
            Regex         countRegex = new Regex(@"MANGABZ_IMAGE_COUNT\s*=\s*(?<data>\d+)");

            var url   = "";
            var mid   = "";
            var cid   = "";
            var sign  = "";
            var dt    = "";
            var count = Convert.ToInt32(countRegex.Match(response).Groups["data"].Value);

            var           requestUrl = "";
            string        temp       = "";
            List <string> urlList    = new List <string>();

            urlList.Add(currentUrl);

            for (int i = 1; i < count + 1; i++)
            {
                temp = currentUrl + "#ipg" + i;
                urlList.Add(temp);
            }

            int pos = 1;

            downLoad.ImageList = new List <string>();

            for (int i = 0; i < urlList.Count; i++)
            {
                response = AnalyseTool.HttpGet(urlList[i]);
                url      = urlRegex.Match(response).Groups["data"].Value;
                mid      = midRegex.Match(response).Groups["data"].Value;
                cid      = cidRegex.Match(response).Groups["data"].Value;
                sign     = signRegex.Match(response).Groups["data"].Value;

                requestUrl = host + string.Format("{0}chapterimage.ashx?cid={1}&page={2}&key=&" +
                                                  "_cid={1}&_mid={3}&_dt={4}&sign={5}", url, cid, pos++, mid, System.Web.HttpUtility.UrlEncode(dt), sign);

                var msg = AnalyseTool.HttpGet(requestUrl, currentUrl);

                if (msg == "")
                {
                    msg = AnalyseTool.HttpGet(requestUrl, currentUrl);
                }

                url = urlRegex.Match(response).Groups["data"].Value;

                if (msg != null && msg.Length > 0)
                {
                    Microsoft.JScript.ArrayObject obj = AnalyseTool.EvalJScript(msg);
                    int len = Convert.ToInt32(obj.length);

                    for (int k = 0; k < len; k++)
                    {
                        string imgUrl = obj[k].ToString();

                        if (downLoad.ImageList.Exists(o => o == imgUrl) == false)
                        {
                            downLoad.ImageList.Add(imgUrl);
                        }
                    }
                }
            }

            downLoad.Count = downLoad.ImageList.Count;
            return(downLoad);
        }
Exemplo n.º 2
0
 public void applyFilters(FilterChain chain)
 {
     //get current data as byte array
     byte[] data = Utils.ConvertJSArrayToByteArray(_data);
     var arr = new List<object>();
     var bmp = new Bitmap((int) width, (int) height);
     //for (int i = 0; i < data.Length; i += 4)
     //{
     //    int k = i/4;
     //    int x = k%(int)width;
     //    int y = k / (int)width;
     //    bmp.SetPixel(x, y, Color.FromArgb(data[i+3], data[i], data[i+1], data[i+2]));
     //}
     Utils.CopyBytesToBitmap(data, (int) width, (int) height, ref bmp);
     Bitmap filtered = chain.ApplyFilters(bmp);
     byte[] bytes = Utils.CopyBitmapToBytes(0, 0, (int) width, (int) height, filtered);
     var objects = new object[bytes.Length];
     bytes.CopyTo(objects, 0);
     //store result as array
     _data = Utils.ConvertArrayToJSArray(objects);
 }