Skip to content

Commit 18edfcf

Browse files
committed
Add media hint to player
1 parent 0d06d1e commit 18edfcf

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

endcord/media.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ def __init__(self, config, keybindings, ui=True, external=False):
173173
self.keybindings = {key: (val,) if not isinstance(val, tuple) else val for key, val in keybindings.items()}
174174
if self.default_color == -1:
175175
self.default_color = 0
176+
self.external = external
176177
if external:
177178
signal.signal(signal.SIGINT, self.sigint_handler)
178179
self.ascii_palette_len = len(self.ascii_palette) - 1
@@ -200,6 +201,7 @@ def sigint_handler(self, _signum, _frame):
200201
"""Handling Ctrl-C event"""
201202
self.stop_playback()
202203
time.sleep(1)
204+
terminal_utils.leave_tui()
203205
sys.exit() # failsafe
204206

205207

@@ -546,7 +548,7 @@ def play_youtube(self, url):
546548
logger.warning("Cant play youtube link, yt-dlp path is invalid")
547549

548550

549-
def play(self, path):
551+
def play(self, path, hint=None):
550552
"""Select runner based on file type"""
551553
if not path:
552554
return
@@ -573,6 +575,8 @@ def play(self, path):
573575
self.play_video(path)
574576
else:
575577
mime = get_mime(path).split("/")
578+
if hint:
579+
mime = [hint, None]
576580
if mime[0] == "image":
577581
if mime[1] == "gif":
578582
self.media_type = "gif"
@@ -591,6 +595,8 @@ def play(self, path):
591595
else:
592596
logger.warning(f"Unsupported media format: {mime}")
593597
self.run = False
598+
if self.external:
599+
sys.exit(f"Unsupported media format: {mime}")
594600
while self.run: # dont exit when video ends
595601
time.sleep(0.2)
596602
except Exception as e:
@@ -708,7 +714,7 @@ def wait_input(self):
708714
self.control_codes(104)
709715

710716

711-
def ascii_runner(path, config, keybindings):
717+
def runner(path, config, keybindings):
712718
"""Main function"""
713719
path = os.path.expanduser(path)
714720
if not os.path.exists(path):

main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,12 @@ def main(args):
100100
importlib.util.find_spec("av") is not None and
101101
importlib.util.find_spec("nacl") is not None
102102
):
103-
sys.exit("Ascii media player is not supported")
103+
sys.exit("Terminal media player is not supported")
104104
from endcord import media
105105
if uses_pgcurses:
106106
curses.enable_tray = False
107107
try:
108-
media.ascii_runner(args.media, config, keybindings)
108+
media.runner(args.media, config, keybindings)
109109
except curses.error as e:
110110
if str(e) != "endwin() returned ERR":
111111
logger.error(traceback.format_exc())

0 commit comments

Comments
 (0)