branch: elpa/subed
commit e71a64b76642f67766f7cec609ab54ad633a8d6f
Author: Sacha Chua <[email protected]>
Commit: Sacha Chua <[email protected]>
Refactor common code into subed-mpv-play-video
* subed/subed-mpv.el (subed-mpv--play): New function.
(subed-mpv-play-video-from-url): Call subed-mpv--play.
(subed-mpv-find-video): Call subed-mpv--play.
---
subed/subed-mpv.el | 32 +++++++++++++-------------------
1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/subed/subed-mpv.el b/subed/subed-mpv.el
index cf3a92f..bd706bc 100644
--- a/subed/subed-mpv.el
+++ b/subed/subed-mpv.el
@@ -335,15 +335,14 @@ See \"List of events\" in mpv(1)."
(or (file-directory-p filepath)
(member (file-name-extension filename) subed-video-extensions)))))
-(defun subed-mpv-play-video-from-url (url)
- "Open video file from URL in mpv."
- (interactive "MURL: ")
+(defun subed-mpv--play (video)
+ "Open VIDEO and play it in MPV."
(when (subed-mpv--server-started-p)
(subed-mpv-kill))
(when (apply #'subed-mpv--server-start subed-mpv-arguments)
- (subed-debug "Opening video from URL: %s" url)
+ (subed-debug "Opening video: %s" video)
(subed-mpv--client-connect subed-mpv--retry-delays)
- (subed-mpv--client-send `(loadfile ,url replace))
+ (subed-mpv--client-send `(loadfile ,video replace))
;; mpv won't add the subtitles if the file doesn't exist yet, so we add
it
;; via after-save-hook.
(if (file-exists-p (buffer-file-name))
@@ -352,26 +351,21 @@ See \"List of events\" in mpv(1)."
(subed-mpv--client-send `(observe_property 1 time-pos))
(subed-mpv-playback-speed subed-playback-speed-while-not-typing)))
+(defun subed-mpv-play-video-from-url (url)
+ "Open video file from URL in mpv.
+See the MPV manual for a list of supported URL types. If you have
+youtube-dl installed, MPV can open videos from a variety of
+hosting providers."
+ (interactive "MURL: ")
+ (subed-mpv--play url))
+
(defun subed-mpv-find-video (file)
"Open video file FILE in mpv.
Video files are expected to have any of the extensions listed in
`subed-video-extensions'."
(interactive (list (read-file-name "Find video: " nil nil t nil
#'subed-mpv--is-video-file-p)))
- (let ((filepath (expand-file-name file)))
- (when (subed-mpv--server-started-p)
- (subed-mpv-kill))
- (when (apply #'subed-mpv--server-start subed-mpv-arguments)
- (subed-debug "Opening video file: %s" filepath)
- (subed-mpv--client-connect subed-mpv--retry-delays)
- (subed-mpv--client-send `(loadfile ,filepath replace))
- ;; mpv won't add the subtitles if the file doesn't exist yet, so we add
it
- ;; via after-save-hook.
- (if (file-exists-p (buffer-file-name))
- (subed-mpv-add-subtitles (buffer-file-name))
- (add-hook 'after-save-hook #'subed-mpv--add-subtitle-after-first-save
:append :local))
- (subed-mpv--client-send `(observe_property 1 time-pos))
- (subed-mpv-playback-speed subed-playback-speed-while-not-typing))))
+ (subed-mpv--play (expand-file-name file)))
(defun subed-mpv--add-subtitle-after-first-save ()
"Tell mpv to load subtitles from function `buffer-file-name'.