Improve handling of torrent URL's that are HTTP files.
This commit is contained in:
parent
659675d538
commit
fe3b7d8867
2 changed files with 37 additions and 5 deletions
|
|
@ -137,7 +137,16 @@ namespace RdtClient.Service.Services
|
|||
|
||||
public async Task UploadMagnet(String magnetLink, String category, Boolean autoDelete)
|
||||
{
|
||||
var magnet = MagnetLink.Parse(magnetLink);
|
||||
MagnetLink magnet;
|
||||
|
||||
try
|
||||
{
|
||||
magnet = MagnetLink.Parse(magnetLink);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception($"{ex.Message}, trying to parse {magnetLink}");
|
||||
}
|
||||
|
||||
var rdTorrent = await GetRdNetClient().AddTorrentMagnetAsync(magnetLink);
|
||||
|
||||
|
|
@ -146,12 +155,21 @@ namespace RdtClient.Service.Services
|
|||
|
||||
public async Task UploadFile(Byte[] bytes, String category, Boolean autoDelete)
|
||||
{
|
||||
var torrent = await MonoTorrent.Torrent.LoadAsync(bytes);
|
||||
|
||||
var rdTorrent = await GetRdNetClient().AddTorrentFileAsync(bytes);
|
||||
MonoTorrent.Torrent torrent;
|
||||
|
||||
var fileAsBase64 = Convert.ToBase64String(bytes);
|
||||
|
||||
try
|
||||
{
|
||||
torrent = await MonoTorrent.Torrent.LoadAsync(bytes);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception($"{ex.Message}, trying to parse {fileAsBase64}");
|
||||
}
|
||||
|
||||
var rdTorrent = await GetRdNetClient().AddTorrentFileAsync(bytes);
|
||||
|
||||
await Add(rdTorrent.Id, torrent.InfoHash.ToHex(), category, autoDelete, fileAsBase64, true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
|
@ -245,7 +246,20 @@ namespace RdtClient.Web.Controllers
|
|||
|
||||
foreach (var url in urls)
|
||||
{
|
||||
await _qBittorrent.TorrentsAddMagnet(url.Trim(), request.Category, false);
|
||||
if (url.StartsWith("magnet"))
|
||||
{
|
||||
await _qBittorrent.TorrentsAddMagnet(url.Trim(), request.Category, false);
|
||||
}
|
||||
else if (url.StartsWith("http"))
|
||||
{
|
||||
var httpClient = new HttpClient();
|
||||
var result = await httpClient.GetByteArrayAsync(url);
|
||||
await _qBittorrent.TorrentsAddFile(result, request.Category, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"Invalid torrent link format {url}");
|
||||
}
|
||||
}
|
||||
|
||||
return Ok();
|
||||
|
|
|
|||
Loading…
Reference in a new issue