Commit Graph

43 Commits

Author SHA1 Message Date
fc5a9d39c2 Add timestamp to mods for some resumability 2021-07-29 00:50:42 -04:00
a8424e830e Adds download_at to files, skips files that are impossible to download 2021-07-28 23:54:39 -04:00
8a356ac7f5 Retry connect failures, write plugins to disk instead of zip archive
Writing to the zip was starting to take forever. It makes more sense to just use my big HD and then zip after I'm done downloading every file.
2021-07-26 19:31:25 -04:00
f62324d36c Reset main.rs back w/ fix to listing RAR files 2021-07-26 17:02:14 -04:00
5d62fb7d61 Fix plugin listing for rar files, temporary backfil shim
`main` is just backfilling the eixsting bad rar files in the db. I will return script to normal once it's run.
2021-07-26 01:16:43 -04:00
87ca90be06 Fix plugin insert SQL binding 2021-07-25 18:33:45 -04:00
523f3eeb3f Add retry logic to metadata fetch, don't crash on 500 2021-07-25 18:03:54 -04:00
39ae7703b0 Upgrade skyrim-cell-dump and handle Cow<str>s 2021-07-23 23:40:05 -04:00
19126f4981 Add retry logic to API calls
Since apparently these can 500 occasionally.
2021-07-23 22:29:28 -04:00
81f12da99c Upgrade unrar to master branch to fix Utf8Error 2021-07-23 19:34:03 -04:00
e69165fe5a Set page size to 20 since nexus mods doesn't always obey 80 2021-07-22 21:55:31 -04:00
77562a7a05 Add CLI args with page, skip unreadable archives 2021-07-22 21:50:28 -04:00
e534447310 Simplify bulk_get_present_nexus_mod_ids query 2021-07-22 00:13:20 -04:00
f337917c99 Batch insert mods, add lifetimes to batch inserts
Using `&str`s prevents unneeded cloning everywhere, but unfortunately it doesn't work with the sqlx macros.
2021-07-21 23:20:51 -04:00
3fe09a8f8f Upgrade skyrim-cell-dump to 0.2.1
Fixes bug parsing Unofficial Skyrim Special Edition Patch
2021-07-21 22:26:16 -04:00
04773954f9 Remove backfill, add bulk get game_mod method 2021-07-21 22:25:45 -04:00
4b333b3b99 Add world tables and columns, temporary backfill
Too lazy to make a new script, main() has a backfill using plugins.zip. Once I run it I will remove it.
2021-07-21 21:35:11 -04:00
0e0fdfd59d Migration and models for worlds/plugin_worlds 2021-07-19 23:47:00 -04:00
7eba0c6adc Upgrade skyrim-cell-dump to 0.2.0 2021-07-19 23:45:51 -04:00
1fd979b8e0 Skip archived files which cannot be downloaded 2021-07-18 22:11:03 -04:00
f6a7490214 Skip empty or invalid file archives 2021-07-18 16:06:49 -04:00
a0aa24f360 Log warning and skip invalid plugins
There's not much I can do for plugins with invalid headers (e.g. TES4 Oblivion plugins), so just log the error and skip over it. A plugin row will not be created in the DB for invalid plugins.

It was useful to crash the process on parse errors before when I was working out the kinks in the parser, but I think I'm confident enough in it now to skip over the parse failures and defer analyzing the failures until after the fact to make sure there still isn't a bug in the parser and I skipped over a valid TES5 plugin.

Also fixes the plugin span logging in the delate64 error case when extracting zip files.
2021-07-18 15:09:23 -04:00
62c0f5295f Attempt to download file 3 times before crashing 2021-07-18 01:45:43 -04:00
4e500f0b0b Various fixes to errors that occurred during runs
Don't crash if metadata link 404s.

If extracting file from zip fails, try using linux unzip command instead. This fixes errors due to deflate64 compression.
2021-07-17 14:19:43 -04:00
5514fb5d29 Upgrade compress-tools to branch w/ fix for crash
See https://github.com/OSSystems/compress-tools-rs/issues/59 for details.
2021-07-16 00:13:38 -04:00
621b98cd8c Only process files (not dirs) extracted from rar 2021-07-15 13:46:33 -04:00
c7df9dec13 Fix file metadata parsing 2021-07-15 10:54:53 -04:00
ccac5b71de Upgrade skyrim-cell-dump to 0.1.4 2021-07-15 10:39:06 -04:00
93d4bfeca2 Skip downloading files with no plugins
Can determine if file contains plugin by recursively walking the file metadata listing until a .esp/.esm/.esl is found.
2021-07-12 19:33:43 -04:00
fd8015024f Always uncompress entire rar archive
To avoid libarchive bugs.
2021-07-12 13:49:02 -04:00
af5c11acc7 Tweak rate limit delay logic, log skipped files 2021-07-12 12:15:07 -04:00
81fcdfa381 Skip processing of invalid empty plugins 2021-07-12 10:43:03 -04:00
ced31f0eb6 Handle null value for size_in_bytes in API files 2021-07-12 00:43:54 -04:00
4612ffc3c4 Add some .env instructions to readme 2021-07-11 22:59:53 -04:00
b609e7059a Log spans, track size & undownloadable files 2021-07-11 22:49:29 -04:00
792e78391c Replace dbg macros with tracing events 2021-07-11 19:45:26 -04:00
22757bc475 Modularize scraping and api requests 2021-07-09 00:37:08 -04:00
19350081c3 Move SQL stuff into separate models module 2021-07-08 21:19:16 -04:00
d8080091f2 Skip already processed mods, fix pagination 2021-07-06 23:29:09 -04:00
184d240aac Fix handling rar files
Extracts rar files completely with unrar to avoid issue with compress-tools not supporting extracting certain rar files.
2021-07-04 00:01:59 -04:00
Tyler Hallada
421f2b7071 WIP fix rar file extraction
Also, starting to break up into smaller functions
2021-07-03 16:00:18 -04:00
d6b8f4e74a Mostly working download loop done
Still need to fix a panic that happens on some .rar archive files.
2021-06-13 22:30:40 -04:00
b132a94c64 Initital commit
Not quite working yet. WIP.
2021-06-03 12:30:04 -04:00