Revert "Changed Url to URL and removed GetReportEntry"

This reverts commit d62d40add41e7c7e37c2b6bae677bcc6c1d1f356.
This commit is contained in:
erri120 2020-02-02 13:15:29 +01:00
parent cc0577b0d8
commit fda325eecf
No known key found for this signature in database
GPG Key ID: A8C0A18D8D4D3135
13 changed files with 94 additions and 63 deletions

View File

@ -38,9 +38,7 @@ namespace Wabbajack.Lib.Downloaders
}
public abstract object[] PrimaryKey { get; }
public abstract string URL { get; set; }
public string PrimaryKeyString
{
get
@ -84,6 +82,7 @@ namespace Wabbajack.Lib.Downloaders
public abstract IDownloader GetDownloader();
public abstract string GetReportEntry(Archive a);
public abstract string[] GetMetaIni();
}
}

View File

@ -53,12 +53,6 @@ namespace Wabbajack.Lib.Downloaders
public string FileID { get; set; }
public string FileName { get; set; }
public override string URL
{
get => Site;
set => throw new NotImplementedException();
}
private static bool IsHTTPS => Downloader.SiteURL.AbsolutePath.StartsWith("https://");
private static string URLPrefix => IsHTTPS ? "https://" : "http://";
@ -160,6 +154,11 @@ namespace Wabbajack.Lib.Downloaders
return DownloadDispatcher.GetInstance<TDownloader>();
}
public override string GetReportEntry(Archive a)
{
return $"* {((INeedsLogin)GetDownloader()).SiteName} - [{a.Name}]({Site}/files/file/{FileName}/?do=download&r={FileID})";
}
public override string[] GetMetaIni()
{
if (FileID != null)

View File

@ -110,9 +110,6 @@ namespace Wabbajack.Lib.Downloaders
{
public string GameName { get; set; }
public string ContentId { get; set; }
public override string URL { get; set; }
public override object[] PrimaryKey => new object[] {GameName, ContentId};
public override bool IsWhitelisted(ServerWhitelist whitelist)
@ -258,6 +255,11 @@ namespace Wabbajack.Lib.Downloaders
throw new NotImplementedException();
}
public override string GetReportEntry(Archive a)
{
throw new NotImplementedException();
}
public override string[] GetMetaIni()
{
throw new NotImplementedException();

View File

@ -28,7 +28,7 @@ namespace Wabbajack.Lib.Downloaders
return new HTTPDownloader.State()
{
URL = uri.ToString().Replace("dropbox.com:443/", "dropbox.com/")
Url = uri.ToString().Replace("dropbox.com:443/", "dropbox.com/")
};
}

View File

@ -55,8 +55,6 @@ namespace Wabbajack.Lib.Downloaders
internal string SourcePath => Path.Combine(Game.MetaData().GameLocation(), GameFile);
public override string URL { get; set; }
public override object[] PrimaryKey { get => new object[] {Game, GameVersion, GameFile}; }
public override bool IsWhitelisted(ServerWhitelist whitelist)
@ -85,6 +83,11 @@ namespace Wabbajack.Lib.Downloaders
return DownloadDispatcher.GetInstance<GameFileSourceDownloader>();
}
public override string GetReportEntry(Archive a)
{
return $"* Game File {Game} - {GameFile}";
}
public override string[] GetMetaIni()
{
return new[] {"[General]", $"gameName={Game.MetaData().MO2ArchiveName}", $"gameFile={GameFile}"};

View File

@ -37,9 +37,6 @@ namespace Wabbajack.Lib.Downloaders
public class State : AbstractDownloadState
{
public string Id { get; set; }
public override string URL { get; set; }
public override object[] PrimaryKey { get => new object[] {Id}; }
public override bool IsWhitelisted(ServerWhitelist whitelist)
@ -63,7 +60,7 @@ namespace Wabbajack.Lib.Downloaders
var regex = new Regex("(?<=/uc\\?export=download&amp;confirm=).*(?=;id=)");
var confirm = regex.Match(await response.Content.ReadAsStringAsync());
var url = $"https://drive.google.com/uc?export=download&confirm={confirm}&id={Id}";
var httpState = new HTTPDownloader.State {URL = url, Client = client};
var httpState = new HTTPDownloader.State {Url = url, Client = client};
return httpState;
}
@ -78,6 +75,11 @@ namespace Wabbajack.Lib.Downloaders
return DownloadDispatcher.GetInstance<GoogleDriveDownloader>();
}
public override string GetReportEntry(Archive a)
{
return $"* GoogleDrive - [{a.Name}](https://drive.google.com/uc?id={Id}&export=download)";
}
public override string[] GetMetaIni()
{
return new [] {"[General]",$"directURL=https://drive.google.com/uc?id={Id}&export=download"};

View File

@ -36,7 +36,7 @@ namespace Wabbajack.Lib.Downloaders
{
var tmp = new State
{
URL = url
Url = url
};
if (archiveINI?.General?.directURLHeaders != null)
{
@ -56,18 +56,18 @@ namespace Wabbajack.Lib.Downloaders
[MemberConfig(TargetMember.All)]
public class State : AbstractDownloadState
{
public override string URL { get; set; }
public string Url { get; set; }
public List<string> Headers { get; set; }
[Exclude]
public HttpClient Client { get; set; }
public override object[] PrimaryKey { get => new object[] {URL};}
public override object[] PrimaryKey { get => new object[] {Url};}
public override bool IsWhitelisted(ServerWhitelist whitelist)
{
return whitelist.AllowedPrefixes.Any(p => URL.StartsWith(p));
return whitelist.AllowedPrefixes.Any(p => Url.StartsWith(p));
}
public override Task<bool> Download(Archive a, string destination)
@ -101,8 +101,8 @@ namespace Wabbajack.Lib.Downloaders
long totalRead = 0;
var bufferSize = 1024 * 32;
Utils.Status($"Starting Download {a?.Name ?? URL}", 0);
var response = await client.GetAsync(URL, HttpCompletionOption.ResponseHeadersRead);
Utils.Status($"Starting Download {a?.Name ?? Url}", 0);
var response = await client.GetAsync(Url, HttpCompletionOption.ResponseHeadersRead);
TOP:
if (!response.IsSuccessStatusCode)
@ -115,7 +115,7 @@ TOP:
}
catch (Exception ex)
{
Utils.Error(ex, $"While downloading {URL}");
Utils.Error(ex, $"While downloading {Url}");
return false;
}
@ -162,9 +162,9 @@ TOP:
if (supportsResume)
{
Utils.Log(
$"Abort during download, trying to resume {URL} from {totalRead.ToFileSizeString()}");
$"Abort during download, trying to resume {Url} from {totalRead.ToFileSizeString()}");
var msg = new HttpRequestMessage(HttpMethod.Get, URL);
var msg = new HttpRequestMessage(HttpMethod.Get, Url);
msg.Headers.Range = new RangeHeaderValue(totalRead, null);
response = await client.SendAsync(msg,
HttpCompletionOption.ResponseHeadersRead);
@ -200,14 +200,19 @@ TOP:
return DownloadDispatcher.GetInstance<HTTPDownloader>();
}
public override string GetReportEntry(Archive a)
{
return $"* [{a.Name} - {Url}]({Url})";
}
public override string[] GetMetaIni()
{
if (Headers != null)
return new [] {"[General]",
$"directURL={URL}",
$"directURL={Url}",
$"directURLHeaders={string.Join("|", Headers)}"};
else
return new [] {"[General]", $"directURL={URL}"};
return new [] {"[General]", $"directURL={Url}"};
}
}

View File

@ -16,7 +16,7 @@ namespace Wabbajack.Lib.Downloaders
public AbstractDownloadState GetDownloaderState(string url)
{
if (url != null && url.StartsWith(Consts.MegaPrefix))
return new State { URL = url };
return new State { Url = url };
return null;
}
@ -31,7 +31,7 @@ namespace Wabbajack.Lib.Downloaders
var client = new MegaApiClient();
Utils.Status("Logging into MEGA (as anonymous)");
client.LoginAnonymous();
var fileLink = new Uri(URL);
var fileLink = new Uri(Url);
var node = client.GetNodeFromLink(fileLink);
Utils.Status($"Downloading MEGA file: {a.Name}");
client.DownloadFile(fileLink, destination);
@ -43,7 +43,7 @@ namespace Wabbajack.Lib.Downloaders
var client = new MegaApiClient();
Utils.Status("Logging into MEGA (as anonymous)");
client.LoginAnonymous();
var fileLink = new Uri(URL);
var fileLink = new Uri(Url);
try
{
var node = client.GetNodeFromLink(fileLink);

View File

@ -63,7 +63,7 @@ namespace Wabbajack.Lib.Downloaders
public async Task<AbstractDownloadState> GetDownloaderState(dynamic archiveINI)
{
var url = archiveINI?.General?.manualURL;
return url != null ? new State { URL = url} : null;
return url != null ? new State { Url = url} : null;
}
public async Task Prepare()
@ -72,9 +72,8 @@ namespace Wabbajack.Lib.Downloaders
public class State : AbstractDownloadState
{
public override string URL { get; set; }
public override object[] PrimaryKey { get => new object[] {URL}; }
public string Url { get; set; }
public override object[] PrimaryKey { get => new object[] {Url}; }
public override bool IsWhitelisted(ServerWhitelist whitelist)
{
@ -89,7 +88,7 @@ namespace Wabbajack.Lib.Downloaders
{
try
{
Utils.Log($"You must manually visit {URL} and download {a.Name} file by hand");
Utils.Log($"You must manually visit {Url} and download {a.Name} file by hand");
Utils.Log($"Waiting for {a.Name}");
downloader._watcher.EnableRaisingEvents = true;
var watcher = downloader._fileEvents
@ -98,7 +97,7 @@ namespace Wabbajack.Lib.Downloaders
.Buffer(new TimeSpan(0, 5, 0), 1)
.Select(x => x.FirstOrDefault())
.FirstOrDefaultAsync();
Process.Start(URL);
Process.Start(Url);
absPath = (await watcher)?.FullPath;
if (!File.Exists(absPath))
@ -123,11 +122,16 @@ namespace Wabbajack.Lib.Downloaders
return DownloadDispatcher.GetInstance<ManualDownloader>();
}
public override string GetReportEntry(Archive a)
{
return $"* Manual Download - [{a.Name} - {Url}]({Url})";
}
public override string[] GetMetaIni()
{
return new [] {
"[General]",
$"manualURL={URL}"
$"manualURL={Url}"
};
}

View File

@ -16,19 +16,19 @@ namespace Wabbajack.Lib.Downloaders
return new State
{
URL = url.ToString()
Url = url.ToString()
};
}
public class State : AbstractDownloadState
{
public override string URL { get; set; }
public string Url { get; set; }
public override object[] PrimaryKey { get => new object[] {URL};}
public override object[] PrimaryKey { get => new object[] {Url};}
public override bool IsWhitelisted(ServerWhitelist whitelist)
{
return whitelist.AllowedPrefixes.Any(p => URL.StartsWith(p));
return whitelist.AllowedPrefixes.Any(p => Url.StartsWith(p));
}
public override async Task<bool> Download(Archive a, string destination)
@ -54,7 +54,7 @@ namespace Wabbajack.Lib.Downloaders
return new HTTPDownloader.State()
{
Client = new HttpClient(),
URL = newURL
Url = newURL
};
}
}
@ -64,12 +64,17 @@ namespace Wabbajack.Lib.Downloaders
return DownloadDispatcher.GetInstance<MediaFireDownloader>();
}
public override string GetReportEntry(Archive a)
{
return $"* [{a.Name} - {Url}]({Url})";
}
public override string[] GetMetaIni()
{
return new []
{
"[General]",
$"directURL={URL}"
$"directURL={Url}"
};
}
}
@ -85,7 +90,7 @@ namespace Wabbajack.Lib.Downloaders
return new State
{
URL = url.ToString()
Url = url.ToString()
};
}
}

View File

@ -24,7 +24,7 @@ namespace Wabbajack.Lib.Downloaders
{
return new State
{
URL = url
Url = url
};
}
@ -37,9 +37,8 @@ namespace Wabbajack.Lib.Downloaders
public class State : AbstractDownloadState
{
public override string URL { get; set; }
public override object[] PrimaryKey { get => new object[]{URL}; }
public string Url { get; set; }
public override object[] PrimaryKey { get => new object[]{Url}; }
public override bool IsWhitelisted(ServerWhitelist whitelist)
{
@ -55,7 +54,7 @@ namespace Wabbajack.Lib.Downloaders
{
try
{
await new HTTPDownloader.State {URL = url}.Download(a, destination);
await new HTTPDownloader.State {Url = url}.Download(a, destination);
return true;
}
catch (Exception)
@ -70,7 +69,7 @@ namespace Wabbajack.Lib.Downloaders
private async Task<string[]> GetDownloadUrls()
{
var uri = new Uri(URL);
var uri = new Uri(Url);
var modId = uri.AbsolutePath.Split('/').Reverse().First(f => int.TryParse(f, out int _));
var mirrorUrl = $"https://www.moddb.com/downloads/start/{modId}/all";
var doc = await new HtmlWeb().LoadFromWebAsync($"https://www.moddb.com/downloads/start/{modId}/all");
@ -106,9 +105,14 @@ namespace Wabbajack.Lib.Downloaders
return DownloadDispatcher.GetInstance<ModDBDownloader>();
}
public override string GetReportEntry(Archive a)
{
return $"* ModDB - [{a.Name}]({Url})";
}
public override string[] GetMetaIni()
{
return new[] {"[General]", $"directURL={URL}"};
return new[] {"[General]", $"directURL={Url}"};
}
}
}

View File

@ -128,12 +128,6 @@ namespace Wabbajack.Lib.Downloaders
public string Summary { get; set; }
public bool Adult { get; set; }
public override string URL
{
get => NexusURL;
set => NexusURL = value;
}
public override object[] PrimaryKey { get => new object[]{GameName, ModID, FileID};}
public override bool IsWhitelisted(ServerWhitelist whitelist)
@ -160,7 +154,7 @@ namespace Wabbajack.Lib.Downloaders
return await new HTTPDownloader.State
{
URL = url
Url = url
}.Download(a, destination);
}
@ -199,6 +193,17 @@ namespace Wabbajack.Lib.Downloaders
return DownloadDispatcher.GetInstance<NexusDownloader>();
}
public override string GetReportEntry(Archive a)
{
var profile = UploaderProfile.Replace("/games/",
"/" + NexusApiUtils.ConvertGameName(GameName).ToLower() + "/");
return string.Join("\n",
$"* [{a.Name}](http://nexusmods.com/{NexusApiUtils.ConvertGameName(GameName)}/mods/{ModID})",
$" * Author : [{UploadedBy}]({profile})",
$" * Version : {Version}");
}
public override string[] GetMetaIni()
{
return new[] {"[General]", $"gameName={GameName}", $"modID={ModID}", $"fileID={FileID}"};

View File

@ -41,8 +41,6 @@ namespace Wabbajack.Lib.Downloaders
public class State : AbstractDownloadState
{
public override string URL { get; set; }
public SteamWorkshopItem Item { get; set; }
public override object[] PrimaryKey { get => new object[] {Item.Game, Item.ItemID}; }
@ -94,6 +92,11 @@ namespace Wabbajack.Lib.Downloaders
return DownloadDispatcher.GetInstance<SteamWorkshopDownloader>();
}
public override string GetReportEntry(Archive a)
{
return $"* Steam - [{Item.ItemID}]";
}
public override string[] GetMetaIni()
{
return new[]