Merge pull request #46 from itouakirai/v2
Some checks failed
/ Build Windows (push) Has been cancelled

fix and feat
This commit is contained in:
世界观察日志
2025-08-24 07:34:13 +08:00
committed by GitHub
2 changed files with 12 additions and 5 deletions

View File

@@ -32,6 +32,7 @@ class InteractiveShell:
loop.run_until_complete(run_sync(it(WebAPI).init))
loop.run_until_complete(it(WrapperManager).init(it(Config).instance.url, it(Config).instance.secure))
safely_create_task(it(WrapperManager).decrypt_init(on_success=on_decrypt_success, on_failure=on_decrypt_failed))
loop.run_until_complete(self.show_status())
self.parser = argparse.ArgumentParser(exit_on_error=False)
subparser = self.parser.add_subparsers()
@@ -43,8 +44,13 @@ class InteractiveShell:
download_parser.add_argument("-f", "--force", default=False, action="store_true")
download_parser.add_argument("--include-participate-songs", default=False, dest="include", action="store_true")
subparser.add_parser("status")
subparser.add_parser("exit")
async def show_status(self):
st_resp = await it(WrapperManager).status()
print(f"Regions available on wm instace: {st_resp.regions}")
async def command_parser(self, cmd: str):
if not cmd.strip():
return
@@ -57,6 +63,8 @@ class InteractiveShell:
match cmds[0]:
case "download" | "dl":
await self.do_download(args.url, args.codec, args.force, args.include)
case "status":
await self.show_status()
case "exit":
self.loop.stop()
sys.exit()

View File

@@ -1,7 +1,6 @@
import asyncio
import concurrent.futures
import subprocess
import sys
import time
from asyncio import AbstractEventLoop
from copy import deepcopy
@@ -194,9 +193,9 @@ def get_song_name_and_dir_path(codec: str, metadata, playlist: PlaylistInfo = No
audio_info=get_audio_info_str(metadata, codec),
**safe_meta)
dir_path = Path(it(Config).download.dirPathFormat.format(codec=codec, **safe_meta))
if sys.platform == "win32":
song_name = get_valid_filename(song_name)
dir_path = Path(*[get_valid_dir_name(part) if ":\\" not in part else part for part in dir_path.parts])
song_name = get_valid_filename(song_name)
dir_path = Path(*[get_valid_dir_name(part) if ":\\" not in part else part for part in dir_path.parts])
return song_name, dir_path
@@ -278,4 +277,4 @@ def count_total_track_and_disc(tracks: Tracks):
def get_tasks_num():
return len(background_tasks)
return len(background_tasks)