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); }
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); }