Commit Graph

323 Commits

Author SHA1 Message Date
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
Timothy Baldridge
5f969a00df Reworked the LL downloader to abstract commonly used items in an abstract class 2020-01-04 22:38:08 -07:00
Justin Swanson
553a3123bd TCS cancellations in downloaders now call TrySetCancelled
Multiple Cancel calls threw unnecessary exception otherwise.  Would rather be able to cancel multiple times without worrying about throwing
2020-01-04 19:33:00 -06:00
Justin Swanson
c9f3fabd69 Removed ViewModel/Notifying concepts from INeedsLogin
No properties are actually making use of the ViewModel/[Reactive] concepts, where normal properties might change after the fact, and users might want to construct an Rx observable from a property and its changes, or a GUI might want to watch (via notifypropertychange) changes.

All concepts that are mutable and want to be followed are already able to do so without the ViewModel concepts, as the implement IObservable (IsLoggedIn, for ex)

ViewModel ideally should only be used in a GUI, as it's the weird marriage of Rx + real properties that XAML can bind to.  The ViewModel is the hybrid glue to bring those two worlds together.  In a situation with no GUI, it's unnecessary
2020-01-04 19:30:53 -06:00
Justin Swanson
5aaf416dca Utils.CatchAndLog. Nexus/LL downloaders use in login commands 2020-01-04 19:30:42 -06:00