From 3666648c828174c414af13a8a313eeb93721251b Mon Sep 17 00:00:00 2001 From: seiuneko <25706824+seiuneko@users.noreply.github.com> Date: Sun, 21 Apr 2024 14:43:18 +0800 Subject: [PATCH] player: loadfile for mpv v0.38.0, fix #823 (#824) pickup from upstream: https://github.com/jaseg/python-mpv/commit/d96eaf7e64f1063ae16f88abfaa14c2997b3291d --- feeluown/mpv.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/feeluown/mpv.py b/feeluown/mpv.py index e37cc2dd38..4f9cdabc7f 100644 --- a/feeluown/mpv.py +++ b/feeluown/mpv.py @@ -863,6 +863,8 @@ def __init__(self, *extra_mpv_flags, log_handler=None, start_event_thread=True, self._event_thread.start() else: self._event_thread = None + if m := re.search(r'(\d+)\.(\d+)\.(\d+)', self.mpv_version): + self.mpv_version_tuple = tuple(map(int, m.groups())) def _loop(self): for event in _event_generator(self._event_handle): @@ -1152,9 +1154,16 @@ def playlist_play_index(self, idx): def _encode_options(options): return ','.join('{}={}'.format(_py_to_mpv(str(key)), str(val)) for key, val in options.items()) - def loadfile(self, filename, mode='replace', **options): + def loadfile(self, filename, mode='replace', index=None, **options): """Mapped mpv loadfile command, see man mpv(1).""" - self.command('loadfile', filename.encode(fs_enc), mode, MPV._encode_options(options)) + if self.mpv_version_tuple >= (0, 38, 0): + if index is None: + index = -1 + self.command('loadfile', filename.encode(fs_enc), mode, index, MPV._encode_options(options)) + else: + if index is not None: + warn(f'The index argument to the loadfile command is only supported on mpv >= 0.38.0') + self.command('loadfile', filename.encode(fs_enc), mode, MPV._encode_options(options)) def loadlist(self, playlist, mode='replace'): """Mapped mpv loadlist command, see man mpv(1)."""