Ejemplo n.º 1
0
        public async void Save()
        {
            if (String.IsNullOrWhiteSpace(_view.TbExt))
            {
                ExceptionHelper.ShowErrorMsg(_view.TryFindResource("StrExtsEmpty") as String);
                return;
            }
            SettingsHelper.Exts = _view.TbExt;

            ResourceDictionary resource = new ResourceDictionary {
                Source = new Uri(@"Resource\Languages\langs.xaml", UriKind.Relative)
            };

            foreach (Object key in resource.Keys)
            {
                Object value = resource[key.ToString()];
                if (value.ToString().Equals(_view.CbLang))
                {
                    SettingsHelper.Lang = key.ToString();
                }
            }

            SettingsHelper.DownloadPath = _view.BtnDownloadPath;
            await Aria2Manager.GetInstance().SetDownloadPath();
        }
Ejemplo n.º 2
0
        public async void CancelAll()
        {
            try
            {
                await Aria2Manager.GetInstance().CancelAll(b =>
                {
                    if (b)
                    {
                        foreach (DownloadItem downloadItem in Aria2Manager.GetInstance().GetDownloadItems())
                        {
                            FileHelper.DeleteFile(downloadItem.GetLocalPath);
                            FileHelper.DeleteFile(downloadItem.GetLocalPath + ".aria2");
                        }

                        SetBadge(0);
                    }
                    else
                    {
                        ExceptionHelper.ShowErrorMsg(_view.FindResource("StrDeleteFail") as String);
                    }
                });
            }
            catch (Exception e)
            {
                ExceptionHelper.ShowErrorMsg("Presenter.CancelSingle", e);
            }
        }
Ejemplo n.º 3
0
 public async void StartPauseSingle(DownloadItem downloadItem)
 {
     if (downloadItem.IsStop)
     {
         await Aria2Manager.GetInstance().StartSingle(downloadItem.GetGid);
     }
     else
     {
         await Aria2Manager.GetInstance().PauseSingle(downloadItem.GetGid);
     }
 }
Ejemplo n.º 4
0
 private void Init()
 {
     _view.LvSetItemSource(Aria2Manager.GetInstance().GetDownloadItems());
     Aria2Manager.GetInstance().StartRefreshing(s =>
     {
         if (String.IsNullOrEmpty(s))
         {
             Aria2Manager.GetInstance().StopRefreshing();
         }
         else
         {
             _view.SetTbDwonloadInfo(s);
         }
     });
 }
Ejemplo n.º 5
0
        public static void StartCompanionThread()
        {
            new Thread(async () =>
            {
                while (true)
                {
                    Thread.Sleep(5 * 1000);

                    if (!IsMainProcessOn())
                    {
                        await Aria2Manager.GetInstance().StopServer();
                        break;
                    }
                }
                Environment.Exit(0);
            })
            { IsBackground = true }.Start();
        }
Ejemplo n.º 6
0
        private async void Init()
        {
            SettingsHelper.InitSettings();
            HistoryReocrds.InitHistoryRecords();

            _view.MaxHeight = SystemParameters.MaximizedPrimaryScreenHeight;
            _view.MaxWidth  = SystemParameters.MaximizedPrimaryScreenWidth;
            _view.SetLbTitleVersion($" - {Assembly.GetExecutingAssembly().GetName().Version.ToString()}");
            SetIpPort();
            _view.LvSetItemSource(_list);

            await Aria2Manager.GetInstance().Init(b =>
            {
                if (b)
                {
                    _view.SetControlsEnable();
                    _view.SetBadge(Aria2Manager.GetInstance().GetDownloadItems().Count);
                }
                else
                {
                    ExceptionHelper.ShowErrorMsg(_view.FindResource("StrDownloadManagerConnectError") as String);
                }
            }, b =>
            {
                if (b)
                {
                    _view.SetBadge(Aria2Manager.GetInstance().GetDownloadItems().Count);
                }
            }, (psn, local) =>
            {
                if (!String.IsNullOrEmpty(psn) && !String.IsNullOrEmpty(local))
                {
                    _view.SetBadge(Aria2Manager.GetInstance().GetDownloadItems().Count);
                    HistoryReocrds.Add(psn, local);
                }
            });
        }
Ejemplo n.º 7
0
        public async void CancelSingle(DownloadItem downloadItem)
        {
            try
            {
                await Aria2Manager.GetInstance().CancelSingle(downloadItem.GetGid, newDownloadItem =>
                {
                    if (newDownloadItem != null)
                    {
                        FileHelper.DeleteFile(newDownloadItem.GetLocalPath);
                        FileHelper.DeleteFile(newDownloadItem.GetLocalPath + ".aria2");

                        SetBadge(Aria2Manager.GetInstance().GetDownloadItems().Count);
                    }
                    else
                    {
                        ExceptionHelper.ShowErrorMsg(_view.FindResource("StrDeleteFail") as String);
                    }
                });
            }
            catch (Exception e)
            {
                ExceptionHelper.ShowErrorMsg("Presenter.CancelSingle", e);
            }
        }
Ejemplo n.º 8
0
 public void OnClosing()
 {
     Aria2Manager.GetInstance().ClearInitHandlers();
 }
Ejemplo n.º 9
0
 public async void AddDownload(String psnPath)
 {
     await Aria2Manager.GetInstance().AddDownload(psnPath);
 }
Ejemplo n.º 10
0
        private void HandleQuery(String query)
        {
            if (_headerFields.Count == 0 || !_headerFields.ContainsKey("Host"))
            {
                SendBadRequest();
                return;
            }

            String host;
            Int32  port;

            if (_requestMethod.ToUpper().Equals("CONNECT"))
            {
                String[] parts = _requestedPath.Split(new Char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                if (parts.Length == 2)
                {
                    host = parts[0];
                    port = Int32.Parse(parts[1]);
                }
                else if (parts.Length == 1)
                {
                    host = parts[0];
                    port = 443;
                }
                else
                {
                    host = _requestedPath;
                    port = 80;
                }
            }
            else
            {
                String[] parts = _headerFields["Host"].Split(new Char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                if (parts.Length == 2)
                {
                    host = parts[0];
                    port = Int32.Parse(parts[1]);
                }
                else
                {
                    host = parts[0];
                    port = 80;
                }

                if (_requestMethod.ToUpper().Equals("POST"))
                {
                    Int32 position = query.IndexOf("\r\n\r\n");
                    _requestPostBody = query.Substring(position + 4);
                }
            }

            String  psnPath       = _requestUrl;
            String  localPath     = String.Empty;
            Boolean isDownloading = false;
            Boolean isPackageFile = NetworkHelper.IsMatchExt(psnPath);

            if (isPackageFile)
            {
                localPath     = HistoryReocrds.GetLocalPath(psnPath);
                isDownloading = Aria2Manager.GetInstance().IsDownloading(psnPath);
            }

            if (!_requestMethod.ToUpper().Equals("CONNECT") && localPath != String.Empty)
            {
                SendLocalFile(localPath, _headerFields.ContainsKey("Range") ? _headerFields["Range"] : null, _headerFields.ContainsKey("Proxy-Connection") ? _headerFields["Proxy-Connection"] : null);
                isDownloading = true;
                _updateRequest(psnPath, localPath, isDownloading);
            }
            else
            {
                try
                {
                    _serverSocket = new Socket(SocketType.Stream, ProtocolType.Tcp);
                    if (_headerFields.ContainsKey("Proxy-Connection") && _headerFields["Proxy-Connection"].ToLower().Equals("keep-alive"))
                    {
                        _serverSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, 1);
                    }
                    _serverSocket.BeginConnect(host, port, OnConnected, _serverSocket);

                    if (isPackageFile)
                    {
                        _updateRequest(psnPath, localPath, isDownloading);
                    }
                }
                catch
                {
                    SendBadRequest();
                }
            }
        }
Ejemplo n.º 11
0
 public async void PauseAll()
 {
     await Aria2Manager.GetInstance().PauseAll();
 }
Ejemplo n.º 12
0
 public async void StartAll()
 {
     await Aria2Manager.GetInstance().StartAll();
 }
Ejemplo n.º 13
0
 public void OnClosing()
 {
     Aria2Manager.GetInstance().ClearProgressHandlers();
     Aria2Manager.GetInstance().StopRefreshing();
 }