From 02827ddc5b6022d23f171a7d13bd3ecd5ce9e2a7 Mon Sep 17 00:00:00 2001 From: erri120 Date: Wed, 22 Jan 2020 10:50:09 +0100 Subject: [PATCH 1/5] Added TESAlliance Support --- Wabbajack.Lib/CerasConfig.cs | 3 +-- .../Downloaders/AbstractDownloadState.cs | 3 ++- .../Downloaders/DownloadDispatcher.cs | 1 + .../Downloaders/TESAllianceDownloader.cs | 20 +++++++++++++++++++ 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs diff --git a/Wabbajack.Lib/CerasConfig.cs b/Wabbajack.Lib/CerasConfig.cs index f3706d22..2c618c13 100644 --- a/Wabbajack.Lib/CerasConfig.cs +++ b/Wabbajack.Lib/CerasConfig.cs @@ -29,8 +29,7 @@ namespace Wabbajack.Lib typeof(BA2FileEntryState), typeof(MediaFireDownloader.State), typeof(ArchiveMeta), typeof(PropertyFile), typeof(SteamMeta), typeof(SteamWorkshopDownloader), typeof(SteamWorkshopDownloader.State), typeof(LoversLabDownloader.State), typeof(GameFileSourceDownloader.State), typeof(VectorPlexusDownloader.State), - typeof(DeadlyStreamDownloader.State), typeof(AFKModsDownloader.State) - + typeof(DeadlyStreamDownloader.State), typeof(AFKModsDownloader.State), typeof(TESAllianceDownloader.State) }, }; Config.VersionTolerance.Mode = VersionToleranceMode.Standard; diff --git a/Wabbajack.Lib/Downloaders/AbstractDownloadState.cs b/Wabbajack.Lib/Downloaders/AbstractDownloadState.cs index 5f847d70..bd46e4a9 100644 --- a/Wabbajack.Lib/Downloaders/AbstractDownloadState.cs +++ b/Wabbajack.Lib/Downloaders/AbstractDownloadState.cs @@ -24,7 +24,8 @@ namespace Wabbajack.Lib.Downloaders typeof(SteamWorkshopDownloader.State), typeof(VectorPlexusDownloader.State), typeof(DeadlyStreamDownloader.State), - typeof(AFKModsDownloader.State) + typeof(AFKModsDownloader.State), + typeof(TESAllianceDownloader.State) }; public static Dictionary NameToType { get; set; } public static Dictionary TypeToName { get; set; } diff --git a/Wabbajack.Lib/Downloaders/DownloadDispatcher.cs b/Wabbajack.Lib/Downloaders/DownloadDispatcher.cs index d8361957..b908fe40 100644 --- a/Wabbajack.Lib/Downloaders/DownloadDispatcher.cs +++ b/Wabbajack.Lib/Downloaders/DownloadDispatcher.cs @@ -21,6 +21,7 @@ namespace Wabbajack.Lib.Downloaders new VectorPlexusDownloader(), new DeadlyStreamDownloader(), new AFKModsDownloader(), + new TESAllianceDownloader(), new HTTPDownloader(), new ManualDownloader(), }; diff --git a/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs b/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs new file mode 100644 index 00000000..1c568cdd --- /dev/null +++ b/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs @@ -0,0 +1,20 @@ +using System; + +namespace Wabbajack.Lib.Downloaders +{ + public class TESAllianceDownloader : AbstractIPS4Downloader + { + #region INeedsDownload + public override string SiteName => "Vector Plexus"; + public override Uri SiteURL => new Uri("http://tesalliance.org"); + public override Uri IconUri => new Uri("http://tesalliance.org/favicon.ico"); + #endregion + + public TESAllianceDownloader() : base(new Uri("http://tesalliance.org/forums/index.php?/login/"), + "tesalliance", "tesalliance.org") + { + } + + public class State : State{} + } +} From fe377085ddc27699fefaf1f626d8812485071bac Mon Sep 17 00:00:00 2001 From: erri120 Date: Wed, 22 Jan 2020 10:51:59 +0100 Subject: [PATCH 2/5] Fixed SiteName for TESAlliance --- Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs b/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs index 1c568cdd..69f3c4e7 100644 --- a/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs +++ b/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs @@ -5,7 +5,7 @@ namespace Wabbajack.Lib.Downloaders public class TESAllianceDownloader : AbstractIPS4Downloader { #region INeedsDownload - public override string SiteName => "Vector Plexus"; + public override string SiteName => "TESAlliance"; public override Uri SiteURL => new Uri("http://tesalliance.org"); public override Uri IconUri => new Uri("http://tesalliance.org/favicon.ico"); #endregion From 06b2bfaac4343355e67eaf9f0b16a3c3622d1ece Mon Sep 17 00:00:00 2001 From: erri120 Date: Wed, 22 Jan 2020 20:57:48 +0100 Subject: [PATCH 3/5] Added support for non https website --- .../Downloaders/AbstractIPS4Downloader.cs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Wabbajack.Lib/Downloaders/AbstractIPS4Downloader.cs b/Wabbajack.Lib/Downloaders/AbstractIPS4Downloader.cs index 71cc1d3e..09a94629 100644 --- a/Wabbajack.Lib/Downloaders/AbstractIPS4Downloader.cs +++ b/Wabbajack.Lib/Downloaders/AbstractIPS4Downloader.cs @@ -21,6 +21,7 @@ namespace Wabbajack.Lib.Downloaders { public override string SiteName { get; } public override Uri SiteURL { get; } + public async Task GetDownloaderState(dynamic archiveINI) { Uri url = DownloaderUtils.GetDirectURL(archiveINI); @@ -41,6 +42,9 @@ namespace Wabbajack.Lib.Downloaders public string FileID { get; set; } public string FileName { get; set; } + private static bool IsHTTPS => Downloader.SiteURL.AbsolutePath.StartsWith("https://"); + private static string URLPrefix => IsHTTPS ? "https://" : "http://"; + public override object[] PrimaryKey { get @@ -74,11 +78,11 @@ namespace Wabbajack.Lib.Downloaders string csrfurl; if (FileID == null) { - csrfurl = $"https://{downloader.SiteURL.Host}/files/file/{FileName}/?do=download"; + csrfurl = $"{URLPrefix}{downloader.SiteURL.Host}/files/file/{FileName}/?do=download"; } else { - csrfurl = $"https://{downloader.SiteURL.Host}/files/file/{FileName}/?do=download&r={FileID}"; + csrfurl = $"{URLPrefix}{downloader.SiteURL.Host}/files/file/{FileName}/?do=download&r={FileID}"; } var html = await downloader.AuthedClient.GetStringAsync(csrfurl); @@ -92,9 +96,9 @@ namespace Wabbajack.Lib.Downloaders string url; if (FileID == null) - url = $"https://{downloader.SiteURL.Host}/files/file/{FileName}/?do=download&confirm=1&t=1&csrfKey={csrfKey}"; + url = $"{URLPrefix}{downloader.SiteURL.Host}/files/file/{FileName}/?do=download&confirm=1&t=1&csrfKey={csrfKey}"; else - url = $"https://{downloader.SiteURL.Host}/files/file/{FileName}/?do=download&r={FileID}&confirm=1&t=1&csrfKey={csrfKey}"; + url = $"{URLPrefix}{downloader.SiteURL.Host}/files/file/{FileName}/?do=download&r={FileID}&confirm=1&t=1&csrfKey={csrfKey}"; var streamResult = await downloader.AuthedClient.GetAsync(url); @@ -150,7 +154,7 @@ namespace Wabbajack.Lib.Downloaders public override string GetReportEntry(Archive a) { var downloader = (INeedsLogin)GetDownloader(); - return $"* {((INeedsLogin)GetDownloader()).SiteName} - [{a.Name}](https://{downloader.SiteURL.Host}/files/file/{FileName}/?do=download&r={FileID})"; + return $"* {((INeedsLogin)GetDownloader()).SiteName} - [{a.Name}]({URLPrefix}{downloader.SiteURL.Host}/files/file/{FileName}/?do=download&r={FileID})"; } public override string[] GetMetaIni() @@ -161,12 +165,12 @@ namespace Wabbajack.Lib.Downloaders return new[] { "[General]", - $"directURL=https://{downloader.SiteURL.Host}/files/file/{FileName}/?do=download&r={FileID}&confirm=1&t=1" + $"directURL={URLPrefix}{downloader.SiteURL.Host}/files/file/{FileName}/?do=download&r={FileID}&confirm=1&t=1" }; return new[] { "[General]", - $"directURL=https://{downloader.SiteURL.Host}/files/file/{FileName}" + $"directURL={URLPrefix}{downloader.SiteURL.Host}/files/file/{FileName}" }; } From 99ba9e18e50be077f3a8cc1e3eabbff60587fe60 Mon Sep 17 00:00:00 2001 From: erri120 Date: Wed, 22 Jan 2020 20:58:05 +0100 Subject: [PATCH 4/5] Updated AFK Mods URL --- Wabbajack.Lib/Downloaders/AFKModsDownloader.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Wabbajack.Lib/Downloaders/AFKModsDownloader.cs b/Wabbajack.Lib/Downloaders/AFKModsDownloader.cs index 213e0b4f..fce9929d 100644 --- a/Wabbajack.Lib/Downloaders/AFKModsDownloader.cs +++ b/Wabbajack.Lib/Downloaders/AFKModsDownloader.cs @@ -6,7 +6,7 @@ namespace Wabbajack.Lib.Downloaders { #region INeedsDownload public override string SiteName => "AFK Mods"; - public override Uri SiteURL => new Uri("https://www.afkmods.com"); + public override Uri SiteURL => new Uri("https://www.afkmods.com/index.php?/"); public override Uri IconUri => new Uri("https://www.afkmods.com/favicon.ico"); #endregion From 089322129bfa6644627049803ec6a0bbcd579a04 Mon Sep 17 00:00:00 2001 From: erri120 Date: Wed, 22 Jan 2020 21:00:32 +0100 Subject: [PATCH 5/5] Fixed AFK Mods and TESAlliance URLs --- Wabbajack.Lib/Downloaders/AFKModsDownloader.cs | 2 +- Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Wabbajack.Lib/Downloaders/AFKModsDownloader.cs b/Wabbajack.Lib/Downloaders/AFKModsDownloader.cs index fce9929d..fdeb1385 100644 --- a/Wabbajack.Lib/Downloaders/AFKModsDownloader.cs +++ b/Wabbajack.Lib/Downloaders/AFKModsDownloader.cs @@ -6,7 +6,7 @@ namespace Wabbajack.Lib.Downloaders { #region INeedsDownload public override string SiteName => "AFK Mods"; - public override Uri SiteURL => new Uri("https://www.afkmods.com/index.php?/"); + public override Uri SiteURL => new Uri("https://www.afkmods.com/index.php?"); public override Uri IconUri => new Uri("https://www.afkmods.com/favicon.ico"); #endregion diff --git a/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs b/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs index 69f3c4e7..3885c816 100644 --- a/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs +++ b/Wabbajack.Lib/Downloaders/TESAllianceDownloader.cs @@ -6,7 +6,7 @@ namespace Wabbajack.Lib.Downloaders { #region INeedsDownload public override string SiteName => "TESAlliance"; - public override Uri SiteURL => new Uri("http://tesalliance.org"); + public override Uri SiteURL => new Uri("http://tesalliance.org/forums/index.php?"); public override Uri IconUri => new Uri("http://tesalliance.org/favicon.ico"); #endregion