Skip to content

Commit 006ce9d

Browse files
committed
2.5.008
1 parent 941fb16 commit 006ce9d

File tree

6 files changed

+30
-22
lines changed

6 files changed

+30
-22
lines changed

.github/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ To stop playing press Ctrl+C in either the terminal or mpv
9595
<details><summary>List all subcommands</summary>
9696

9797
$ library
98-
xk media library subcommands (v2.5.007)
98+
xk media library subcommands (v2.5.008)
9999

100100
Create database subcommands:
101101
╭───────────────┬────────────────────────────────────────────────────╮

xklb/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.5.007"
1+
__version__ = "2.5.008"

xklb/lb.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ def add_parser(subparsers, func, aliases=None):
195195
add_parser(subparsers, "xklb.scripts.links_db.links_update")
196196
add_parser(subparsers, "xklb.scripts.mcda.mcda", ["mcdm", "rank"])
197197
add_parser(subparsers, "xklb.scripts.merge_dbs.merge_dbs", ["merge-db"])
198-
add_parser(subparsers, "xklb.scripts.merge_folders.merge_folders", ["merge-folder"])
198+
add_parser(subparsers, "xklb.scripts.merge_folders.merge_folders", ["merge-folder", "mv"])
199199
add_parser(subparsers, "xklb.scripts.merge_online_local.merge_online_local")
200200
add_parser(subparsers, "xklb.scripts.mining.extract_links.extract_links", ["links", "links_extract"])
201201
add_parser(subparsers, "xklb.scripts.mining.extract_text.extract_text", ["text", "text_extract"])

xklb/media/media_player.py

+18-17
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,27 @@
1818

1919

2020
def watch_chromecast(args, m: dict, subtitles_file=None) -> Optional[subprocess.CompletedProcess]:
21-
if "vlc" in args.player:
21+
if "vlc" in m["player"]:
22+
subtitles = ["--sub-file=" + subtitles_file] if subtitles_file else []
2223
catt_log = processes.cmd(
2324
"vlc",
2425
"--sout",
2526
"#chromecast",
2627
f"--sout-chromecast-ip={args.cc_ip}",
2728
"--demux-filter=demux_chromecast",
28-
"--sub-file=" + subtitles_file if subtitles_file else "",
29-
*args.player[1:],
29+
*subtitles,
30+
*m["player"][1:],
3031
m["path"],
3132
)
3233
else:
3334
if args.action in (SC.watch, SC.listen):
35+
subtitles = ["-s", subtitles_file] if subtitles_file else ["--no-subs"]
3436
catt_log = processes.cmd(
3537
"catt",
3638
"-d",
3739
args.chromecast_device,
3840
"cast",
39-
"-s",
40-
subtitles_file if subtitles_file else consts.FAKE_SUBTITLE,
41+
*subtitles,
4142
m["path"],
4243
)
4344
else:
@@ -90,7 +91,6 @@ def calculate_duration(args, m) -> Tuple[int, int]:
9091

9192
def listen_chromecast(args, m: dict) -> Optional[subprocess.CompletedProcess]:
9293
Path(consts.CAST_NOW_PLAYING).write_text(m["path"])
93-
Path(consts.FAKE_SUBTITLE).touch()
9494
catt = which("catt") or "catt"
9595
start, end = calculate_duration(args, m)
9696

@@ -101,8 +101,7 @@ def listen_chromecast(args, m: dict) -> Optional[subprocess.CompletedProcess]:
101101
"-d",
102102
args.chromecast_device,
103103
"cast",
104-
"-s",
105-
consts.FAKE_SUBTITLE,
104+
"--no-subs",
106105
"--block",
107106
"--seek-to",
108107
str(start),
@@ -124,8 +123,7 @@ def listen_chromecast(args, m: dict) -> Optional[subprocess.CompletedProcess]:
124123
"-d",
125124
args.chromecast_device,
126125
"cast",
127-
"-s",
128-
consts.FAKE_SUBTITLE,
126+
"--no-subs",
129127
"--block",
130128
"--seek-to",
131129
str(start),
@@ -184,7 +182,7 @@ def transcode(args, path) -> str:
184182
video_settings = ["-c:v", "copy"]
185183

186184
print("Transcoding", temp_video)
187-
processes.cmd_interactive(
185+
r = processes.cmd_interactive(
188186
"ffmpeg",
189187
"-nostdin",
190188
"-loglevel",
@@ -205,11 +203,14 @@ def transcode(args, path) -> str:
205203
temp_video,
206204
)
207205

208-
Path(path).unlink()
209-
shutil.move(temp_video, transcode_dest)
210-
with args.db.conn:
211-
args.db.conn.execute("UPDATE media SET path = ? where path = ?", [transcode_dest, path])
212-
return transcode_dest
206+
if Path(temp_video).exists():
207+
Path(path).unlink()
208+
shutil.move(temp_video, transcode_dest)
209+
with args.db.conn:
210+
args.db.conn.execute("UPDATE media SET path = ? where path = ?", [transcode_dest, path])
211+
return transcode_dest
212+
else:
213+
return path
213214

214215

215216
def get_browser() -> Optional[str]:
@@ -524,7 +525,7 @@ def single_player(args, m):
524525
if system() == "Windows" or args.action in (SC.watch):
525526
r = processes.cmd(*m["player"], m["path"], strict=False)
526527
else: # args.action in (SC.listen)
527-
r = processes.cmd_interactive(*m["player"], m["path"])
528+
r = processes.cmd_interactive(*m["player"], m["path"], strict=False)
528529

529530
if m["player_need_sleep"]:
530531
try:

xklb/utils/consts.py

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ def random_string() -> str:
2020

2121
TEMP_DIR = gettempdir()
2222
TEMP_SCRIPT_DIR = os.getenv("XDG_RUNTIME_DIR") or TEMP_DIR
23-
FAKE_SUBTITLE = str(Path(TEMP_DIR) / "sub.srt") # https://github.com/skorokithakis/catt/issues/393
2423
CAST_NOW_PLAYING = str(Path(TEMP_DIR) / "catt_playing")
2524
SUB_TEMP_DIR = str(Path(TEMP_DIR) / "library_temp_subtitles" / random_string())
2625
DEFAULT_MPV_LISTEN_SOCKET = str(Path(TEMP_SCRIPT_DIR) / "mpv_socket")

xklb/utils/processes.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,16 @@ def cmd_detach(*command, **kwargs) -> subprocess.CompletedProcess:
140140
return subprocess.CompletedProcess(command, 0, "Detached command is async")
141141

142142

143-
def cmd_interactive(*command) -> subprocess.CompletedProcess:
143+
def cmd_interactive(*command, strict=True) -> subprocess.CompletedProcess:
144144
return_code = os.spawnvpe(os.P_WAIT, command[0], command, os.environ)
145+
146+
if return_code != 0:
147+
msg = f"[{shlex.join(command)}] exited {return_code}"
148+
if strict:
149+
raise RuntimeError(msg)
150+
else:
151+
log.info(msg)
152+
145153
return subprocess.CompletedProcess(command, return_code)
146154

147155

0 commit comments

Comments
 (0)