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(); }
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); } }
public async void StartPauseSingle(DownloadItem downloadItem) { if (downloadItem.IsStop) { await Aria2Manager.GetInstance().StartSingle(downloadItem.GetGid); } else { await Aria2Manager.GetInstance().PauseSingle(downloadItem.GetGid); } }
private void Init() { _view.LvSetItemSource(Aria2Manager.GetInstance().GetDownloadItems()); Aria2Manager.GetInstance().StartRefreshing(s => { if (String.IsNullOrEmpty(s)) { Aria2Manager.GetInstance().StopRefreshing(); } else { _view.SetTbDwonloadInfo(s); } }); }
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(); }
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); } }); }
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); } }
public void OnClosing() { Aria2Manager.GetInstance().ClearInitHandlers(); }
public async void AddDownload(String psnPath) { await Aria2Manager.GetInstance().AddDownload(psnPath); }
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(); } } }
public async void PauseAll() { await Aria2Manager.GetInstance().PauseAll(); }
public async void StartAll() { await Aria2Manager.GetInstance().StartAll(); }
public void OnClosing() { Aria2Manager.GetInstance().ClearProgressHandlers(); Aria2Manager.GetInstance().StopRefreshing(); }