Esempio n. 1
0
        /// <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[] { "" });
            }
        }
Esempio n. 2
0
        /// <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);
            }
        }
Esempio n. 3
0
 /// <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);
     }
 }
Esempio n. 4
0
 /// <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);
     }
 }
Esempio n. 5
0
 /// <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);
     }
 }
Esempio n. 6
0
 /// <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);
     }
 }
Esempio n. 7
0
 /// <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);
     }
 }