Commit Graph

41 Commits

Author SHA1 Message Date
5066a4e2b3
fix: update game & voiceover now works properly. 2022-07-13 13:52:57 +07:00
efc2abf858
feat: add -Swp option
perf: tar.extractall wrapped in asyncio.to_thread
2022-06-27 04:09:47 +07:00
aa147792e6
fix: calculate_md5 will return "" for nonexistent files 2022-06-26 01:56:14 +07:00
23980276ee
fix: patcher.py properly disable crash reporters.
fix: revert_patch now works correctly.
It was because of me forgetting to merge the game data name with the game directory
I hope my crash log wasn't uploaded to mHY since I blocked their hosts...
2022-06-26 01:53:37 +07:00
d4773bc38d
fix: _ask won't automatically think the answer is yes.
I am dumb
2022-06-25 02:09:26 +07:00
a5659f7ff3
refactor: convert all task-intensive functions to async.
chore: rename gui.py to cli.py
fix: internal downloader can resume download now.
feat: add verify_game, verify_from_pkg_version, clear_cache to installer.py.
feat: add clear_cache to patcher.py.
fix: linux now check for pkexec before executing it.
fix: add get_name to voicepack.py, latest.py, diff.py to get name from path (since the developer didn't set a name to these files in the sdk url)
chore: remove deprecation message in read_version_from_config in installer.py
misc: use chunk from self._download_chunk instead of being hardcoded to 8192.
fix: is_telemetry_blocked will only wait 15s for a connection.
chore: move appdirs to constants.py

This commit refactor almost all functions to be compatible with asyncio, also restructured CLI to use asyncio.run on main function instead of executing it randomly.
Also prioritize the use of asyncio.gather, sometimes making tasks faster
2022-06-25 01:13:47 +07:00
8b2d0cad8f
Remove game version check in download_full_game()
Fix remote archive name detection (because archive.game.latest.name doesn't contain it anymore)

Signed-off-by: tretrauit <tretrauit@gmail.com>
2022-04-01 09:43:33 +07:00
b18da4e495
Remove game version check in download_full_game()
Fix remote archive name detection (because archive.game.latest.name doesn't contain it anymore)

Signed-off-by: tretrauit <tretrauit@gmail.com>
2022-04-01 09:27:03 +07:00
4b99162bce
Fix hdiffpatch executables not being detected on Windows
Signed-off-by: tretrauit <tretrauit@gmail.com>
2022-03-31 20:38:59 +07:00
fd00e8b51d
Add support for hdiffpatch files
Game now apply update properly (hopefully)

Signed-off-by: tretrauit <tretrauit@gmail.com>
2022-03-31 02:09:33 +07:00
c7918f8a20
Fix improper game version check 2022-03-30 16:54:47 +07:00
7c45133508
Add support for downloading HDiffPatch 2022-02-27 18:22:21 +07:00
992048ede3
Use create_subprocess_shell and fix hosts file appending on Linux 2022-02-27 13:50:59 +07:00
44cdf424dc
Use create_subprocess_shell 2022-02-27 13:44:51 +07:00
8f541ff0c4
Wait for patch process to exit
Bump to 1.2.9-2
2022-02-27 13:37:08 +07:00
f7e5362e86
Fix blocking telemetry fail.
Bump to 1.2.9-1
2022-02-27 13:32:18 +07:00
aaf728445d
Various changes, block telemetry feature.
-Sp/--patch is now required to do block telemetry before patching.
Still preparing for hdiffpatch (will be coming at 1.10)
Ay yo hosty support coming soon xD
2022-02-27 01:54:20 +07:00
fbe4692f84
Await AsyncPath.exists()
Bump to 1.2.8-1
2022-02-19 19:05:52 +07:00
e4cc701166
Don't rely on xdelta3 python module
Don't crash if xdelta3 module is not present, and add the ability to download game & voicepack in CLI
Bump to 1.2.8
2022-02-19 18:57:45 +07:00
2d6cff77c6
Disable crash reporters on patch
Bump to 1.2.7
2022-02-18 23:34:10 +07:00
ccb2d876fc
Fix syntax error on xlua patching function 2022-02-18 21:41:50 +07:00
f4e668d8b0
Extend file duration from 3600 to 86400
I've never wanted to say fuck Linux like this before
2022-02-18 21:34:41 +07:00
659befc8f8
Change timestamp check (prevent false positive) 2022-02-18 21:30:24 +07:00
bd515c73cd
Xdelta3 workaround (because xdelta3-python doesn't work) 2022-02-18 21:04:44 +07:00
a481e529b6
Wait for git process to finish
Bump to 1.2.2
2022-02-18 20:18:24 +07:00
4359a43771
Fix syntax error, bump to 1.2.1 2022-02-18 20:15:29 +07:00
f1beaacd3b
Download patch before patch, bump to 1.2.0 2022-02-18 20:10:40 +07:00
5a492c912c
WIP game patcher
Now worthless can patch the game using xdelta3-python
2022-02-18 20:09:03 +07:00
bb37e4554d
Support downloading game & voicepacks and install, bump to 1.1.0
In CLI too, also optimized code & added test for voiceover functions.
2022-02-18 11:11:55 +07:00
32b6ba965f
Implement install game in CLI 2022-02-18 08:45:05 +07:00
ef24ad43ca
Added voiceover language info & archive type and install_game function
Available through Installer.get_voiceover_archive_type and Installer.get_voiceover_archive_language
Also some other optimizations including not extracting unneeded files from diff archive, deprecate _read_version_from_config function, and added install_game, uninstall_game, voiceover_lang_translate, get_installed_voiceovers
2022-02-17 22:02:08 +07:00
b1a9223c19
Added support for updating game & applying voiceover packs
Implemented & Improved some CLI commands.
Currently working in 2.5.0 version.

A few more work and this should be fully usable,,,
2022-02-17 02:43:21 +07:00
da3ee30ab1
Wrap game resource info from the server
Also add function to get the diff archive (for faster updating)

Download function soon, although I can't make sure that the download function will work properly (like pause, resume download etc.)
2022-02-16 22:18:56 +07:00
81fbdec553
Remove message about QQ unimplemented. 2022-02-16 02:58:48 +07:00
140e508dbf
Support chinese variant game version detection (not tested)
Also some minor improvements for preparation of installation features.
2022-02-16 02:55:19 +07:00
ad391a551c
Read version from game file (thanks to An Anime Game Launcher project)
Basically I copied their method of doing that and their regex pattern.
2022-02-16 01:58:45 +07:00
2b811d99b9
Remove irrelevant files 2022-02-16 00:50:36 +07:00
c22918673b
Support chinese variant, QQ object in launcher and some code optimizations 2022-02-16 00:49:33 +07:00
048a7ac9d0
Update tests 2022-01-29 23:32:38 +07:00
a7ddd0c49a
Object-oriented programming
All launcher functions are now return an object instead of a dict
2022-01-29 23:25:03 +07:00
015164404c
Update source (still WIP) 2022-01-28 20:08:53 +07:00