/// <summary> /// 下载磁链接文件 /// </summary> /// <param name="metalink">磁链接文件</param> /// <param name="fileName">输出文件名</param> /// <param name="dir">下载目录</param> /// <param name="taskOptions">下载任务选项</param> /// <returns>成功返回任务标识符数组,失败返回空数组</returns> public string[] AddMetalink(string metalink, string fileName = "", string dir = "", List <Dictionary <string, string> > taskOptions = null) { try { string autoSaveFileID = ""; string[] gids = Aria2cWarpper.AddMetalink(ref autoSaveFileID, metalink, fileName, dir, taskOptions); foreach (var gid in gids) { if (!string.IsNullOrWhiteSpace(gid)) { Aria2cTask task = Aria2cWarpper.TellStatus(gid); OnStart?.Invoke(this, new Aria2cTaskEvent(task)); AddDownTask(task); if (autoSaveFileID != "") { gidAndTorrentOrMeta4Map.Add(gid, autoSaveFileID + ".meta4"); } } } return(gids); } catch (Exception ex) { Console.WriteLine(ex); return(new string[] { "" }); } }
/// <summary> /// 下载种子链接文件 /// </summary> /// <param name="torrent">种子文件</param> /// <param name="fileName">输出文件名</param> /// <param name="dir">下载目录</param> /// <param name="taskOptions">下载任务选项</param> /// <returns>成功返回任务标识符,失败返回空</returns> public string AddTorrent(string torrent, string fileName = "", string dir = "", List <Dictionary <string, string> > taskOptions = null) { try { string autoSaveFileID = ""; string gid = Aria2cWarpper.AddTorrent(ref autoSaveFileID, torrent, fileName, dir, taskOptions); if (!string.IsNullOrWhiteSpace(gid)) { Aria2cTask task = Aria2cWarpper.TellStatus(gid); OnStart?.Invoke(this, new Aria2cTaskEvent(task)); AddDownTask(task); if (autoSaveFileID != "") { gidAndTorrentOrMeta4Map.Add(gid, autoSaveFileID + ".torrent"); } } return(gid); } catch (Exception ex) { Console.WriteLine(ex); return(string.Empty); } }
/// <summary> /// 获取下载状态 /// </summary> /// <param name="gid">任务标识符</param> /// <param name="task">获取的任务信息</param> /// <param name="keys">属性过滤字段</param> /// <returns>成功返回任务信息,失败返回空</returns> public Aria2cTask TellStatus(string gid, params string[] keys) { try { return(Aria2cWarpper.TellStatus(gid, keys)); } catch (Exception ex) { Console.WriteLine(ex); return(null); } }
/// <summary> /// 取消暂停任务 /// </summary> /// <param name="gid">任务标识符</param> /// <returns>成功返回true, 失败返回fale</returns> public bool UnPause(string gid) { try { bool result = Aria2cWarpper.UnPause(gid); if (result) { Aria2cTask task = Aria2cWarpper.TellStatus(gid); OnUnPause?.Invoke(this, new Aria2cTaskEvent(task)); } return(result); } catch (Exception ex) { Console.WriteLine(ex); return(false); } }
/// <summary> /// 强制暂停任务 /// </summary> /// <param name="gid">任务标识符</param> /// <returns>成功返回true, 失败返回fale</returns> public bool ForcePause(string gid) { try { bool pause = Aria2cWarpper.ForcePause(gid); if (pause) { Aria2cTask task = Aria2cWarpper.TellStatus(gid); OnPaused?.Invoke(this, new Aria2cTaskEvent(task)); } return(pause); } catch (Exception ex) { Console.WriteLine(ex); return(false); } }
/// <summary> /// 下载磁链接文件 /// </summary> /// <param name="metalink">磁链接文件</param> /// <param name="dir">下载目录</param> /// <returns>成功返回任务标识符,失败返回空</returns> public string AddMetalink(string metalink, string fileName = "", string dir = "") { try { string gid = Aria2cWarpper.AddMetalink(metalink, fileName, dir); if (!string.IsNullOrWhiteSpace(gid)) { Aria2cTask task = Aria2cWarpper.TellStatus(gid); OnStart?.Invoke(this, new Aria2cTaskEvent(task)); AddDownTask(task); } return(gid); } catch (Exception ex) { Console.WriteLine(ex); return(string.Empty); } }
/// <summary> /// 添加下载任务 /// </summary> /// <param name="uri">下载地址</param> /// <param name="fileName">输出文件名</param> /// <param name="dir">下载文件夹</param> /// <param name="taskOptions">下载任务选项</param> /// <returns>成功返回任务标识符,失败返回空</returns> public string AddUri(string uri, string fileName = "", string dir = "", List <Dictionary <string, string> > taskOptions = null) { try { string gid = Aria2cWarpper.AddUri(uri, fileName, dir, taskOptions); if (!string.IsNullOrWhiteSpace(gid)) { Aria2cTask task = Aria2cWarpper.TellStatus(gid); OnStart?.Invoke(this, new Aria2cTaskEvent(task)); AddDownTask(task); } return(gid); } catch (Exception ex) { Console.WriteLine(ex); return(string.Empty); } }