public static void Grab() { PSG.infln(""); PSG.infln(string.Format(" {0,-40} [--------------------]", ">> " + alQue.Count + " files to download")); while (alQue.Count > 0) { tryGrab(); System.Threading.Thread.Sleep(1); } }
public static void tryGrab() { if (bGrab) { return; } bGrab = true; if (!isDowning() && isGood() && alQue.Count == 0) { bGrab = false; return; } for (int a = 0; a < Cli.Length; a++) { if (Cli[a] == null || Cli[a].State == WebGet.eState.Completed || Cli[a].State == WebGet.eState.Ready) { if (alQue.Count == 0) { break; } FileDL fDL = (FileDL)alQue[0]; if (a >= fDL.scConf.iThreads) { break; } alQue.RemoveAt(0); PSG.infln(string.Format(" {0,-40} [", sMLen((a + 1) + ": " + fDL.sFName, 40))); if (System.IO.File.Exists(fDL.sFPath + fDL.sFName)) { PSG.inf("Exists"); } else { PSG.inf("Downloading"); Cli[a] = new WebGet(fDL); } } if (Cli[a] != null && Cli[a].State == WebGet.eState.Failed) { string sOut = string.Format(" {0,-40} [", sMLen((a + 1) + ": " + Cli[a].Info.sFName, 40)); string sAbsPath = Cli[a].Info.sFPath + Cli[a].Info.sFName; if (Cli[a].Info.scConf.fcAct == ServCF.FileCut.Ignore) { sOut = "/" + sOut; iCutFile_ignore++; sOut += "DC - Ignore #" + iCutFile_ignore; Cli[a].State = WebGet.eState.Ready; PSG.infln(sOut); } if (Cli[a].Info.scConf.fcAct == ServCF.FileCut.Kill) { sOut = "X" + sOut; iCutFile_skip++; System.IO.File.Delete(sAbsPath); sOut += "DC - Delete #" + iCutFile_skip; Cli[a].State = WebGet.eState.Ready; PSG.infln(sOut); } if (Cli[a].Info.scConf.fcAct == ServCF.FileCut.RetryIgnore || Cli[a].Info.scConf.fcAct == ServCF.FileCut.RetryKill) { if (Cli[a].Info.fcReCnt < Cli[a].Info.scConf.fcReLim) { sOut = "~" + sOut; Cli[a].Info.fcReCnt++; System.IO.File.Delete(sAbsPath); sOut += "DC - Retry #" + Cli[a].Info.fcReCnt; Cli[a] = new WebGet(Cli[a].Info); PSG.infln(sOut); } else { if (Cli[a].Info.scConf.fcAct == ServCF.FileCut.RetryIgnore) { sOut = "/" + sOut; iCutFile_ignore++; sOut += "DC - Ignore #" + iCutFile_ignore; Cli[a].State = WebGet.eState.Ready; PSG.infln(sOut); } else { sOut = "X" + sOut; iCutFile_skip++; System.IO.File.Delete(sAbsPath); sOut += "DC - Delete #" + iCutFile_skip; Cli[a].State = WebGet.eState.Ready; PSG.infln(sOut); } } } } } bGrab = false; }