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