Make IUrlDownloader.GetDownloaderState nullable

This commit is contained in:
erri120 2021-07-25 14:37:55 +02:00
parent c7bc7dbbd8
commit 428e4db2f2
No known key found for this signature in database
GPG Key ID: 7FA9556C936B847C
9 changed files with 38 additions and 38 deletions

View File

@ -13,11 +13,12 @@ namespace Wabbajack.Lib.Downloaders
return GetDownloaderState(urlstring);
}
public AbstractDownloadState? GetDownloaderState(string url)
public AbstractDownloadState? GetDownloaderState(string? url)
{
if (url == null) return null;
try
{
if (url == null) return null;
var uri = new UriBuilder(url);
if (uri.Host != "www.dropbox.com") return null;
var query = HttpUtility.ParseQueryString(uri.Query);

View File

@ -20,16 +20,17 @@ namespace Wabbajack.Lib.Downloaders
return GetDownloaderState(url);
}
public AbstractDownloadState? GetDownloaderState(string url)
public AbstractDownloadState? GetDownloaderState(string? url)
{
if (url != null && url.StartsWith("https://drive.google.com"))
{
var regex = new Regex("((?<=id=)[a-zA-Z0-9_-]*)|(?<=\\/file\\/d\\/)[a-zA-Z0-9_-]*");
var match = regex.Match(url);
return new State(match.ToString());
}
if (url == null) return null;
if (!url.StartsWith("https://drive.google.com"))
return null;
var regex = new Regex("((?<=id=)[a-zA-Z0-9_-]*)|(?<=\\/file\\/d\\/)[a-zA-Z0-9_-]*");
var match = regex.Match(url);
return new State(match.ToString());
return null;
}
public async Task Prepare()

View File

@ -23,24 +23,23 @@ namespace Wabbajack.Lib.Downloaders
return GetDownloaderState(url, archiveINI);
}
public AbstractDownloadState? GetDownloaderState(string uri)
public AbstractDownloadState? GetDownloaderState(string? uri)
{
return GetDownloaderState(uri, null);
}
public AbstractDownloadState? GetDownloaderState(string url, dynamic? archiveINI)
public AbstractDownloadState? GetDownloaderState(string? url, dynamic? archiveINI)
{
if (url != null)
{
var tmp = new State(url);
if (archiveINI?.General?.directURLHeaders != null)
{
tmp.Headers.AddRange(archiveINI?.General.directURLHeaders.Split('|'));
}
return tmp;
}
if (url == null)
return null;
var tmp = new State(url);
if (archiveINI?.General?.directURLHeaders != null)
{
tmp.Headers.AddRange(archiveINI?.General.directURLHeaders.Split('|'));
}
return tmp;
return null;
}
public async Task Prepare()

View File

@ -2,6 +2,6 @@
{
public interface IUrlDownloader : IDownloader
{
AbstractDownloadState? GetDownloaderState(string url);
AbstractDownloadState? GetDownloaderState(string? url);
}
}

View File

@ -117,8 +117,10 @@ namespace Wabbajack.Lib.Downloaders
return GetDownloaderState(url);
}
public AbstractDownloadState? GetDownloaderState(string url)
public AbstractDownloadState? GetDownloaderState(string? url)
{
if (url == null) return null;
if ((url.StartsWith(Consts.MegaPrefix) || url.StartsWith(Consts.MegaFilePrefix)))
return new State(url);
return null;

View File

@ -92,12 +92,12 @@ namespace Wabbajack.Lib.Downloaders
{
}
public AbstractDownloadState? GetDownloaderState(string u)
public AbstractDownloadState? GetDownloaderState(string? u)
{
if (u == null) return null;
var url = new Uri(u);
if (url.Host != "www.mediafire.com") return null;
return new State(url.ToString());
return url.Host != "www.mediafire.com" ? null : new State(url.ToString());
}
}
}

View File

@ -18,7 +18,7 @@ namespace Wabbajack.Lib.Downloaders
return GetDownloaderState(url);
}
public AbstractDownloadState? GetDownloaderState(string url)
public AbstractDownloadState? GetDownloaderState(string? url)
{
if (url != null && url.StartsWith("https://www.moddb.com/downloads/start"))
{

View File

@ -40,9 +40,9 @@ namespace Wabbajack.Lib.Downloaders
{
}
public AbstractDownloadState? GetDownloaderState(string url)
public AbstractDownloadState? GetDownloaderState(string? url)
{
return StateFromUrl(new Uri(url));
return url == null ? null : StateFromUrl(new Uri(url));
}

View File

@ -22,15 +22,12 @@ namespace Wabbajack.Lib.Downloaders
{
}
public AbstractDownloadState? GetDownloaderState(string url)
public AbstractDownloadState? GetDownloaderState(string? url)
{
if (url == null) return null;
var uri = new Uri(url);
if (uri.Host == "yadi.sk")
{
return new State(uri);
}
return null;
return uri.Host == "yadi.sk" ? new State(uri) : null;
}
[JsonName("YandexDownloader+State")]