Example #1
0
        /// <summary>
        /// 启动Aria服务器
        /// </summary>
        private async void StartAriaServer()
        {
            List <string> header = new List <string>
            {
                $"Cookie: {LoginHelper.GetLoginInfoCookiesString()}",
                $"Origin: https://www.bilibili.com",
                $"Referer: https://www.bilibili.com",
                $"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36"
            };

            AriaConfig config = new AriaConfig()
            {
                ListenPort             = SettingsManager.GetInstance().GetAriaListenPort(),
                Token                  = "downkyi",
                LogLevel               = SettingsManager.GetInstance().GetAriaLogLevel(),
                MaxConcurrentDownloads = SettingsManager.GetInstance().GetMaxCurrentDownloads(),
                MaxConnectionPerServer = 8, // 最大取16
                Split                  = SettingsManager.GetInstance().GetAriaSplit(),
                //MaxTries = 5,
                MinSplitSize            = 10,                                                                     // 10MB
                MaxOverallDownloadLimit = SettingsManager.GetInstance().GetAriaMaxOverallDownloadLimit() * 1024L, // 输入的单位是KB/s,所以需要乘以1024
                MaxDownloadLimit        = SettingsManager.GetInstance().GetAriaMaxDownloadLimit() * 1024L,        // 输入的单位是KB/s,所以需要乘以1024
                MaxOverallUploadLimit   = 0,
                MaxUploadLimit          = 0,
                ContinueDownload        = true,
                FileAllocation          = SettingsManager.GetInstance().GetAriaFileAllocation(),
                Headers = header
            };
            var task = await AriaServer.StartServerAsync(config);

            if (task)
            {
                Console.WriteLine("Start ServerAsync Completed");
            }
            for (int i = 0; i < 10; i++)
            {
                var globOpt = await AriaClient.GetGlobalOptionAsync();

                if (globOpt != null)
                {
                    break;
                }
                await Task.Delay(1000);
            }
            Console.WriteLine("Start ServerAsync end");
        }