Commit Graph

327 Commits

Author SHA1 Message Date
Justin Swanson
d3b72af7a8 ClientFactory moved to Wabbajack.Lib 2020-06-26 12:08:30 -05:00
Timothy Baldridge
cba3412ce8 Version 2.0.9.4 2020-06-16 16:21:01 -06:00
Timothy Baldridge
2d85e96214 Patch usage tracking, quick waking for polling tasks, several logging tweaks 2020-06-06 15:44:30 -06:00
Timothy Baldridge
0933e15c9e Several small tweaks for auto healing 2020-05-30 15:05:26 -06:00
Timothy Baldridge
655c60b505 Log out of the Mega client before logging in 2020-05-30 06:23:23 -06:00
Timothy Baldridge
68205f384e
Merge pull request #887 from wabbajack-tools/downloader-icons
Add favicons to login manager
2020-05-29 08:41:02 -07:00
Timothy Baldridge
2d457ad12d Add favicons to login manager 2020-05-28 22:09:39 -06:00
Timothy Baldridge
14a5efc3a8
Merge pull request #886 from wabbajack-tools/tesall-downloader
Add TESAll download support
2020-05-28 17:50:44 -07:00
Timothy Baldridge
c5dd1d6388 Add TESAll download support 2020-05-28 17:44:58 -06:00
Timothy Baldridge
c443016638 Add support for downloading via Yandex 2020-05-28 16:31:01 -06:00
Timothy Baldridge
81558dce22
Merge pull request #883 from wabbajack-tools/async-disposable-temp-files
Temp files now implement IAsyncDisposable instead of IDisposable and …
2020-05-27 21:16:47 -07:00
Timothy Baldridge
ea76d88012 Temp files now implement IAsyncDisposable instead of IDisposable and use AbsolutePath.DeleteAsync 2020-05-27 20:43:57 -06:00
Timothy Baldridge
c225c468fd Several fixes for the Youtube Downloader inferencing code. 2020-05-27 06:05:55 -06:00
Timothy Baldridge
9ade449985 Make all delete operations async 2020-05-26 05:31:11 -06:00
Timothy Baldridge
b2a112bd37 Whole app now useses Async IO exclusively 2020-05-25 11:34:25 -06:00
Timothy Baldridge
f9dc9148e7 Purge all non async IO routines from Paths.cs 2020-05-25 08:31:56 -06:00
Timothy Baldridge
600516be3f Restrict some of the links we check that don't change very often 2020-05-25 07:04:31 -06:00
Timothy Baldridge
4581988ae6 We no longer need to provide this info 2020-05-23 17:25:00 -06:00
Timothy Baldridge
96ca01f1dc Don't really need that test anymore 2020-05-23 15:03:25 -06:00
Timothy Baldridge
8c4a1dd125 a bit of code cleanup 2020-05-21 22:21:32 -06:00
Timothy Baldridge
51d62067d0 Version 2.0.6.0 - Don't die on 503s, retry 2020-05-21 17:24:26 -06:00
Timothy Baldridge
aab9ccd694 Version 2.0.6.0 - Don't die on 503s, retry 2020-05-21 16:12:51 -06:00
Timothy Baldridge
28b11b1c7f Version 2.0.6.0 - Hotfix for healing 2020-05-21 15:25:44 -06:00
Timothy Baldridge
7d58dbc161 List validator now tries to heal lists 2020-05-20 06:18:47 -06:00
Timothy Baldridge
da3d87093a End to end tests pass 2020-05-19 21:55:12 -06:00
Timothy Baldridge
03f5ff6c92 Can heal a simple pre-indexed download 2020-05-19 21:25:41 -06:00
Timothy Baldridge
88e3db0b2a Several server-side changes to make the system more durable to API call limits. 2020-05-16 09:08:40 -06:00
Timothy Baldridge
59df3dadee Give some debug information when we have a number format exception with Nexus archives. 2020-05-13 17:46:24 -06:00
Timothy Baldridge
1a33c043a3 Enable multi-threaded downloads for the WJ CDN 2020-05-12 21:53:20 -06:00
Timothy Baldridge
1f1f070351 Hotfix: support WJ CDN files in the gallery 2020-05-10 16:45:48 -06:00
Timothy Baldridge
e35ea51480 Hotfix: support WJ CDN files in the gallery 2020-05-10 15:35:15 -06:00
erri120
500f7d2589
Added WabbajackCDNDownloader.State to KnownSubTypes 2020-05-10 17:29:52 +02:00
Timothy Baldridge
e053136e25 Rewrite the Authored file routines. 2020-05-09 16:16:16 -06:00
Timothy Baldridge
4aadbfc9fa Fix whitelisting for manual downloader during tests 2020-05-05 15:42:01 -06:00
Timothy Baldridge
f639c4abff Fix enderal Game ids, fixes for game file indexing, fixes for bad metrics reporting (lagged by a day). 2020-05-05 14:59:47 -06:00
erri120
5c20d7c2e0
Added MFA support for INeedsLoginCredentials 2020-05-05 16:17:55 +02:00
Timothy Baldridge
daf7eba26a Merge remote-tracking branch 'origin/master' into game-sourced-downloads 2020-05-04 15:45:45 -06:00
Timothy Baldridge
391354e241 No longer use cef for mediafire (to avoid popups) 2020-05-04 15:02:26 -06:00
Timothy Baldridge
059f2ec96f Can source game downloads from the game folder 2020-05-02 15:09:29 -06:00
erri120
0703747702
Added manual validation for nexus files if cache fails 2020-05-02 15:39:07 +02:00
Timothy Baldridge
d0f5e7acb4
Merge branch 'master' into mega-json-fix 2020-04-29 10:40:06 -06:00
erri120
ba6925c536
Fixed JSON serialization failing for MEGA.AuthInfos 2020-04-29 17:39:27 +02:00
Timothy Baldridge
64540e2cab Bunch of small server-side fixes, LZ4 compression speed, and better list validation 2020-04-29 06:26:44 -06:00
Justin Swanson
2b0866b4f3 Adjusted TempFolder init concepts
Wasn't being awaited in the App ctor.  Swapped for a static factory that can be awaited to ensure initialization is complete
2020-04-27 22:17:06 -05:00
erri120
514d2f70fc
Fixed new mega links not being resolved 2020-04-27 20:49:22 +02:00
erri120
a5843e12fa
Fixed mediafire downloader never resolving the url 2020-04-27 20:46:47 +02:00
erri120
663b82f5a7
Multiple MEGA login fixes 2020-04-26 11:31:00 +02:00
Timothy Baldridge
8f08ac8003 Fix IPS4 Verification 2020-04-23 19:58:18 -06:00
erri120
2d27f398cc
Fixed NullException for AuthedClient 2020-04-23 12:38:43 +02:00
Timothy Baldridge
ebf9a686bf Fix misc tests 2020-04-22 17:11:06 -06:00
erri120
82d8939198
Implemented new Path classes in SteamHandler 2020-04-22 14:36:32 +02:00
Timothy Baldridge
a9ea0421be Bump all the deps in the project 2020-04-20 16:54:32 -06:00
Timothy Baldridge
bb9ef89dee BSA archives are now lazily extracted.
7Zip extracted archives now only extract the fewest files required.
Audited the uses of .Wait
Lazily init the VFS cleaning
2020-04-16 21:52:19 -06:00
Timothy Baldridge
470992cc4a Merge Master 2020-04-15 06:05:05 -06:00
Justin Swanson
cf765942e1 TryGet variants /w out parameter 2020-04-12 14:47:28 -05:00
Justin Swanson
c4cce47399 Swapped calls to intended TryGet variants 2020-04-12 14:37:42 -05:00
Justin Swanson
01588dbcc9 Merge branch 'master' into wabbajack-lib-nullability 2020-04-12 00:40:49 -05:00
Timothy Baldridge
f9f2c349c0 WIP List Validation code 2020-04-11 22:18:21 -06:00
Timothy Baldridge
ff2397b48b
Merge pull request #702 from Noggog/missing-prepare-awaits
Missing IDownloader.Prepare awaits
2020-04-10 22:04:57 -06:00
Timothy Baldridge
90c2bf6901
Don't prepare inside GetInstance 2020-04-10 21:26:05 -06:00
Timothy Baldridge
0830480821 Fixes for broken bethesda tests. 2020-04-10 15:52:31 -06:00
Justin Swanson
482b7f9c9e Missing IDownloader.Prepare awaits 2020-04-10 14:06:32 -05:00
Justin Swanson
806ff74893 Wabbajack.Lib nullability finished up 2020-04-10 13:32:35 -05:00
Justin Swanson
a30bba2c0b Inferencer nullability enabled 2020-04-10 13:23:23 -05:00
Justin Swanson
a29eb93caf Wabbajack.Lib downloaders enable nullable 2020-04-10 13:23:23 -05:00
Justin Swanson
5a38f40a66 GameMetaData.TryGetGameLocation()
Added choice of nullable return or not
2020-04-10 13:23:23 -05:00
Timothy Baldridge
712438c6a6 Several ProcessStartInfo -> ProcessHelper conversions 2020-04-10 06:58:55 -06:00
erri120
d25915c4f5
Using new Enum value for MEGA ApiResultCode 2020-04-10 12:47:29 +02:00
Timothy Baldridge
d4e7311115 Merge master 2020-04-09 16:36:07 -06:00
Timothy Baldridge
d6e4ca6b1a
Merge pull request #695 from erri120/loverslab-meta-fixes
Better data scrapping for loverslab
2020-04-09 14:24:21 -06:00
erri120
eb1d596711
Better data scrapping for loverslab 2020-04-09 14:10:46 +02:00
erri120
59ca6d94ad
Fixed MEGADownloader not initializing 2020-04-07 19:56:16 +02:00
Timothy Baldridge
45254b0055 No more MessagePack, Json is love, Json is life 2020-04-06 14:48:54 -06:00
Timothy Baldridge
3d16b1e838 Purge all remaining references to MongoDB and BJSON 2020-04-05 15:15:01 -06:00
Timothy Baldridge
653c840323 Fix Mega integration support 2020-04-04 16:55:17 -06:00
Timothy Baldridge
27417b2a4b Merge Master 2020-04-04 16:34:49 -06:00
Timothy Baldridge
895a555802 Merge Master 2020-04-04 16:15:55 -06:00
Timothy Baldridge
9454bcaa5f
Merge pull request #669 from erri120/issue-664
PR: Add MEGA Login
2020-04-04 16:07:05 -06:00
Timothy Baldridge
35f99b7100 Merge Master 2020-04-04 16:06:14 -06:00
erri120
d58fcab92e
Fixed ManifestURL 2020-04-04 19:53:05 +02:00
erri120
05399c4632
Attachments from IPS4 sites can now be downloaded 2020-04-04 19:41:27 +02:00
erri120
77a5cb4f25
Fixed trying to login while being logged in 2020-04-04 16:43:42 +02:00
erri120
e3ed9bf4fd
Switched TextBox to PasswordBox for the Password 2020-04-04 16:33:58 +02:00
erri120
21b78931a8
Created INeedsLoginCredentials and implemented in MEGADownloader 2020-04-04 15:55:33 +02:00
erri120
9eac8d7641
Implemented INeedsLogin in MegaDownloader 2020-04-04 15:55:33 +02:00
Timothy Baldridge
8af841f3d6 Fix several more tests 2020-04-03 16:41:42 -06:00
Timothy Baldridge
aaba7267bd Fix a few tests 2020-04-03 16:41:42 -06:00
Timothy Baldridge
8946389da4 Fix upgrading test broken by Nexus JSON property name change 2020-04-03 16:41:17 -06:00
Timothy Baldridge
a6e3ef5f72 Game type is now an enum for Nexus downloads 2020-04-03 16:41:17 -06:00
Timothy Baldridge
85b39d5dcc Fix some more race conditions in tests 2020-04-03 16:41:17 -06:00
Timothy Baldridge
b5006a0737 Everything compiles 2020-04-03 16:40:52 -06:00
Timothy Baldridge
129f6b4fc2 Cleaned up a bunch of warnings and errors 2020-04-03 16:40:52 -06:00
Timothy Baldridge
9d3af1db5c All downloader tests pass 2020-04-03 16:40:51 -06:00
Timothy Baldridge
723f624d7a Half of the downloaders pass tests 2020-04-03 16:40:51 -06:00
Timothy Baldridge
defbc15593 Only 149 errors left in Wabbajack.Lib 2020-04-03 16:38:48 -06:00
Timothy Baldridge
d6123a7fb2 MessagePack, and basic sanity test passes 2020-04-03 16:37:27 -06:00
Timothy Baldridge
3b895f4dbb WIP, converted Hashes to a Hash struct 2020-04-03 16:37:27 -06:00
Timothy Baldridge
7978cd098c Fixes for strange edge cases on the server, we now log metrics about list healing 2020-03-10 14:41:45 -06:00
erri120
1ce640ba2b
Add non-Nexus mods to the Slideshow (#574)
* Created AbstractMetaState

* Added IAbstractMetaState to NexusDownloader.State

Slideshow is fully working with this setup and nothing changed
functionally.

* Renamed IAbstractMetaState to IMetaState

* Changed modVMs in SlideShow from type NexusDownloader.State to IMetaState

* Simplified IMetaState and ModVM

* Removed Setter from IMetaState and added to LoversLabDownloader

* Throw exception when the modlist could not be loaded

* Created AbstractMetaState

AbstractMetaState implements AbstractDownloadState and indicates that a
State from a specific Download contains meta information. This is used
for the Slideshow and can also be used for the Manifest.

* Created GatherMetaData function

* Implemented new AbstractMetaState for LoversLab

* Implemented new AbstractMetaState for NexusMods

* Replaced Utils.Log with Utils.Error

* Slideshow fixes

* Replaced AbstractMetaState with IMetaState

* Updated CHANGELOG

Co-authored-by: Timothy Baldridge <tbaldridge@gmail.com>
2020-03-04 05:10:49 -07:00
Timothy Baldridge
a1e911669a
Youtube Downloader (#596)
* Can download audio tracks from Youtube, re-encoding to XWM in the process
2020-03-03 14:53:29 -07:00
Timothy Baldridge
356adf7d0e Fix broken progress bar in gallery 2020-02-28 17:00:23 -07:00
Timothy Baldridge
f30da8a27a Support self-healing lists, and a lot of server fixes 2020-02-27 06:46:34 -07:00
Timothy Baldridge
1a02adc43b Fix error not being thrown in IPS4 code 2020-02-26 06:06:02 -07:00
Timothy Baldridge
6491a1c3f4 Purge uses of HttpClient, fix a bug that caused Nexus's verify endpoint to be spammed. 2020-02-25 22:05:33 -07:00
Timothy Baldridge
076b060afd Bump version 2020-02-25 21:00:28 -07:00
Timothy Baldridge
8d13a4c455 Swap HttpClient over to SocketsHttpHandler 2020-02-14 15:23:27 -07:00
Timothy Baldridge
f036420b42 * Disable server-side indexing of all mods from the Nexus
* Accept download states from clients and index the mods we haven't seen
* Fixes for Skyrin VR USSEP patch
* Remember the download states that we index on the server
* Only print remaining nexus quotas when they change
2020-02-13 05:29:59 -07:00
Timothy Baldridge
9316819dd3 Fix AFKMods.com integration and implement test 2020-02-11 15:14:59 -07:00
Timothy Baldridge
608b8c77a7 Manual download improvements 2020-02-10 17:30:38 -07:00
Timothy Baldridge
bf19ad959a Command line options for downloading files from the CLI, fixes for Bethesda.NET integration. 2020-02-08 16:53:11 -07:00
Justin Swanson
b05c43661c Percent struct 2020-02-07 23:45:45 -06:00
Timothy Baldridge
a9224a084a Added support for logging in via Fallout 4, added better early-exit support for the Beth.NET login 2020-02-07 06:26:58 -07:00
Timothy Baldridge
5782bac4a9 Better termination logic for early game exiting 2020-02-07 05:38:20 -07:00
Timothy Baldridge
6255ec224f Allow manual Nexus downloads 2020-02-05 22:30:31 -07:00
Justin Swanson
d789e5a26d Added error message to print URL for failed Dropbox download 2020-02-03 20:30:45 -06:00
Justin Swanson
e830ffc540 Added null check for Dropbox download logic 2020-02-03 20:30:28 -06:00
Justin Swanson
7dc5b4c9d3 Added log message for failed ModInfo get in NexusDownloader 2020-02-03 20:06:35 -06:00
erri120
853ab81bbf
Renamed GetReportEntry to GetManifestURL 2020-02-02 13:52:53 +01:00
erri120
fda325eecf
Revert "Changed Url to URL and removed GetReportEntry"
This reverts commit d62d40add41e7c7e37c2b6bae677bcc6c1d1f356.
2020-02-02 13:52:53 +01:00
erri120
cc0577b0d8
Changed Url to URL and removed GetReportEntry 2020-02-02 13:52:53 +01:00
Timothy Baldridge
7998d1add4 Fix from URL support 2020-01-28 21:30:56 -07:00
Timothy Baldridge
61c841f053 Basic workings of BNet downloadings. Can download and convert a mod into a .zip 2020-01-28 21:17:24 -07:00
Timothy Baldridge
6bcbb98d0f Port old BNet code 2020-01-28 17:09:09 -07:00
erri120
1bf2eca57c
Adjusted IPS4Downloader to work with tesalliance 2020-01-27 18:16:44 +01:00
erri120
089322129b
Fixed AFK Mods and TESAlliance URLs 2020-01-22 21:00:32 +01:00
erri120
99ba9e18e5
Updated AFK Mods URL 2020-01-22 20:58:05 +01:00
erri120
06b2bfaac4
Added support for non https website 2020-01-22 20:57:48 +01:00
erri120
fe377085dd
Fixed SiteName for TESAlliance 2020-01-22 14:13:05 +01:00
erri120
02827ddc5b
Added TESAlliance Support 2020-01-22 14:13:05 +01:00
erri120
1e854df650
Added AFK Mods support 2020-01-22 10:41:28 +01:00
Justin Swanson
5db84a6ee6 Replaced all File.OpenWrite calls /w .Open(FileMode.Create)
File.OpenWrite is equivalent to FileMode.OpenOrCreate, which caused errors when replacing a file that was larger previously
2020-01-18 14:52:09 -06:00
Justin Swanson
3bac5d2f00 AbstractDownloadState.Download returns bool
There's sort of a theoretical disagreement, still.  Should a failed download throw an exception, or return false?  Users of this function still need to handle/prep for either/or.

Still, this is better than before, where some failures were being swallowed completely
2020-01-18 14:07:27 -06:00
Timothy Baldridge
853c6ad29a
Merge pull request #384 from wabbajack-tools/enqueue-recent-files
Enqueue recent files
2020-01-14 15:21:09 -07:00
Timothy Baldridge
14f7f45a77 Add size validation to HTTPDownloader, to catch stealth updates. Check whitelist during list validation. 2020-01-13 15:55:55 -07:00
trawzified
877989ba16 Fix typos + inconsistencies in logs 2020-01-13 22:11:07 +01:00
Timothy Baldridge
955924fdac
Merge pull request #377 from wabbajack-tools/asp-net-core-rewrite
Asp net core rewrite
2020-01-12 14:27:34 -08:00
Justin Swanson
75c48e5fe2 Merge branch 'master' into settings-pane 2020-01-11 00:42:51 -06:00
Timothy Baldridge
5393ed4a84 Can now get meta.ini data from a download state 2020-01-10 21:15:53 -07:00
Timothy Baldridge
bac5e958bf Primary key string 2020-01-10 06:25:01 -07:00
Justin Swanson
36a37a04a9 Swapped calls to ObserveOnGuiThread() 2020-01-09 20:51:19 -06:00
Justin Swanson
b3a61a00a7 Merge fixes 2020-01-07 19:30:22 -06:00
Justin Swanson
c5dd5c05bc Merge remote-tracking branch 'wabbajack-tools/master' into settings-pane 2020-01-07 19:23:32 -06:00
Timothy Baldridge
f2bb07a528 Wabbajack.Lib is now .NET Standard 2.0 2020-01-07 06:50:11 -07:00
Justin Swanson
98cb1ea28e More settings page styling work 2020-01-06 23:44:32 -06:00
erri120
837fca2580
Added DeadlyStream and VectorPlexus to Ceras, KnownSubTypes and Downloaders 2020-01-06 16:08:54 +01:00
erri120
91cfe359a8
Created DeadlyStreamDownloader 2020-01-06 16:08:21 +01:00
Justin Swanson
feb3e781fc Settings page work. Some experimentation /w RxUI binding 2020-01-05 23:15:10 -06:00
Timothy Baldridge
3e39ab8dba Implement VectorPlexus support as a downloader, abstracted common IPS4 data behind an abstract class. 2020-01-05 17:21:05 -07:00
Timothy Baldridge
27f0f98671
Merge pull request #353 from wabbajack-tools/abstract-login-downloader
Reworked the LL downloader
2020-01-05 14:24:08 -08:00
erri120
cfa5717df3
ApiKey can be encrypted via CLI 2020-01-05 14:14:53 +01:00