public IEnumerator CheckExistanceQueue() { while (true) { yield return(null); if (queueExistance.Count != 0) { E621_NavigationButton b = queueExistance.Dequeue(); b.existanceChecked = false; b.CheckExistance(); float waitTime = Time.time + 3f; int maxTries = 3, currentTries = 1; do { yield return(null); if (waitTime <= Time.time && !b.existanceChecked && maxTries < currentTries) { waitTime = Time.time + 3f; print("Retry"); currentTries++; } else if (!b.existanceChecked && maxTries >= currentTries) { b.imageExistance.color = Color.magenta; } }while (waitTime > Time.time && !b.existanceChecked); } } }
public IEnumerator DownloadImageCo(string url, Sprite sprPrev, GameObject objProgress, ImageData downloaded, E621_NavigationButton origin) { yield return(null); Image imgProgress = objProgress.transform.GetChild(0).GetComponent <Image>(); Image imgPrev = objProgress.transform.GetChild(1).GetComponent <Image>(); imgPrev.sprite = sprPrev; Text textProgress = objProgress.transform.GetChild(2).GetComponent <Text>(); textProgress.text = "...Downloading..."; using (UnityWebRequest uwr = UnityWebRequest.Get(url)) { uwr.SendWebRequest(); while (!uwr.isDone) { imgProgress.fillAmount = uwr.downloadProgress; yield return(null); } //yield return uwr.SendWebRequest(); if (uwr.isNetworkError || uwr.isHttpError) { textProgress.text = uwr.error; textProgress.color = Color.red; Debug.Log(uwr.error); yield return(new WaitForSeconds(10f)); Destroy(objProgress); } else { //https://static1.e621.net/data/fa/04/fa0477361df7971421e00f3c38950f47.jpg string filename = url.Substring(url.LastIndexOf("/") + 1, url.Length - (url.LastIndexOf("/") + 1)); filename = downloaded.id + "-" + filename; byte[] result = uwr.downloadHandler.data; //string targetUrl = @"D:\HardDrive\No pls\e621\Te lo advierto\Tools\test"; string targetUrl = !(downloaded.tags.Contains("dickgirl") || downloaded.tags.Contains("intersex") || downloaded.tags.Contains("herm")) ? inputStraightGal.text : inputDickgirlGal.text; if (downloaded.tags.Contains("animated")) { targetUrl = !targetUrl.Contains("Dickgirl") ? inputStraightVid.text : inputDickgirlVid.text; } File.WriteAllBytes(targetUrl + "/" + filename, result); print(targetUrl); } } Resources.UnloadUnusedAssets(); imgProgress.fillAmount = 0f; textProgress.text = "Done..."; try { queueExistance.Enqueue(origin); } catch { print("IMG download: Button didn't exist anymore"); } yield return(new WaitForSeconds(1f)); listCoroutines.Remove(listCoroutines.Where(temp => temp.data.id == downloaded.id).Single()); Destroy(objProgress); }
void ThreadedLoadPage() { try { //Ejecutar hasta que no haya mas datos while (html.IndexOf("Post.register({") != -1) { html = html.Substring(html.IndexOf("Post.register({"), html.Length - html.IndexOf("Post.register({")); //eliminar el post register actual para no ciclarse infinitamente html = html.Substring(15, html.Length - 15); int id = -1; List <string> tags = new List <string>(); string urlDownload = ""; string urlThumb = ""; string urlPreview = ""; string rating = ""; string status = ""; string md5 = ""; string temp; //obtener datos del post //ID temp = html.Substring(html.IndexOf("id") + 4, html.IndexOf(",") - 5); id = int.Parse(temp); html = html.Substring(html.IndexOf(",") + 9, html.Length - html.IndexOf(",") - 9); //print(html); //tags temp = html.Substring(0, html.IndexOf(",") - 1); temp += " "; while (temp.IndexOf(" ") != -1) { tags.Add(temp.Substring(0, temp.IndexOf(" "))); temp = temp.Substring(temp.IndexOf(" ") + 1, temp.Length - (temp.IndexOf(" ") + 1)); } html = html.Substring(html.IndexOf("md5") + 6, html.Length - (html.IndexOf("md5") + 6)); //MD5 md5 = html.Substring(0, html.IndexOf(",") - 1); //print("MD5: " + md5); html = html.Substring(html.IndexOf("file_url") + 11, html.Length - (html.IndexOf("file_url") + 11)); //Image URL urlDownload = html.Substring(0, html.IndexOf(",") - 1); //print(urlDownload); html = html.Substring(html.IndexOf("preview_url") + 14, html.Length - (html.IndexOf("preview_url") + 14)); //Thumb URL urlThumb = html.Substring(0, html.IndexOf(",") - 1); //print(urlThumb); html = html.Substring(html.IndexOf("sample_url") + 13, html.Length - (html.IndexOf("sample_url") + 13)); //Preview URL urlPreview = html.Substring(0, html.IndexOf(",") - 1); //print(urlPreview); html = html.Substring(html.IndexOf("rating") + 9, html.Length - (html.IndexOf("rating") + 9)); //Rating rating = html.Substring(0, html.IndexOf(",") - 1); //print(html); print("Rating: " + rating); html = html.Substring(html.IndexOf("rating") + 9, html.Length - (html.IndexOf("rating") + 9)); //Status print(html); html = html.Substring(html.IndexOf("status") + 9, html.Length - (html.IndexOf("status") + 9)); print(html); status = html.Substring(0, html.IndexOf(",") - 1); //print(status); //Spawn Button bool end = false; UnityThread.executeInUpdate(() => { GameObject button = Instantiate(prefabNavButton, transformNavigation); E621_NavigationButton b = button.GetComponent <E621_NavigationButton>(); b.urlDownload = urlDownload; b.urlThumb = urlThumb; b.urlPreview = urlPreview; b.rating = rating; b.status = status; b.md5 = md5; b.urlPage = @"https://e621.net/post/index/1/id:" + id; b.id = id; b.tags = tags; b.Initialize(); end = true; }); while (!end) { } } UnityThread.executeInUpdate(() => { buttonSearch.interactable = true; buttonReturn.interactable = true; }); } catch { print("Thread Error: Navigation."); return; } }
public DownloadImage(string urlDownlaod, E621_NavigationButton origin, Sprite sprPrev, ImageData _data, GameObject _objProgress) { data = _data; objProgress = _objProgress; E621_Navigation.act.StartCoroutine(E621_Navigation.act.DownloadImageCo(urlDownlaod, sprPrev, objProgress, data, origin)); }