From 61a1b9449cd5c9832f2eb939c131e4bc21c33562 Mon Sep 17 00:00:00 2001 From: Thanos Apollo Date: Thu, 6 Jul 2023 18:51:01 +0300 Subject: Add error handlers yeetube-toggle functions: - Throw error to have mpv installed and set it to the default value if not already done so - toggle-video just checks if it's not nil(meaning it's installed assuming user has not changed default value), making it easier to reset it yeetube-search - Throw condition errors if user has set yeetube-search-limits too high. --- yeetube.el | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/yeetube.el b/yeetube.el index 4a5c413..92c7e7c 100644 --- a/yeetube.el +++ b/yeetube.el @@ -131,17 +131,23 @@ It's recommended you keep it as the default value." (defun yeetube-toggle-video-mpv () "Toggle video on/off for mpv player." (interactive) - (when yeetube-player - (setq yeetube-player - (if (equal yeetube-player "mpv --input-ipc-server=/tmp/mpvsocket") - "mpv --no-video --input-ipc-server=/tmp/mpvsocket" - "mpv --input-ipc-server=/tmp/mpvsocket")))) + (if yeetube-player + (setq yeetube-player + (if (equal yeetube-player "mpv --input-ipc-server=/tmp/mpvsocket") + "mpv --no-video --input-ipc-server=/tmp/mpvsocket" + "mpv --input-ipc-server=/tmp/mpvsocket")) + (error "To use this function you need to have mpv installed and & set yeetube-player to the default value"))) (defun yeetube-toggle-pause-mpv () "Play/Pause mpv." (interactive) - (when yeetube-player - (shell-command "echo '{ \"command\": [\"cycle\", \"pause\"] }' | socat - /tmp/mpvsocket"))) + (if + (or (equal yeetube-player "mpv --input-ipc-server=/tmp/mpvsocket") + (equal yeetube-player "mpv --no-video --input-ipc-server=/tmp/mpvsocket")) + (progn + (shell-command "echo '{ \"command\": [\"cycle\", \"pause\"] }' | socat - /tmp/mpvsocket") + (message "mpv play/pause")) + (error "To use this function you need to have mpv installed & set yeetube-player to the default value"))) ;; we should use something like ;; (decode-coding-region (point-min) (point-max) 'utf-8 @@ -186,9 +192,15 @@ PREFIX [[URL/watch?v=VIDEOID][VIDEOTITLE ]]" (goto-char (point-min)) (toggle-enable-multibyte-characters) (while (< (length video-ids) yeetube-results-limit) - (if is-youtube? + (condition-case err + (if is-youtube? (search-forward "videoId") - (search-forward "watch?v")) + (search-forward "watch?v")) + (error + (display-warning 'yeetube + (format + "Unable to find enough results, reduce yeetube-results-limit (%s)" + (error-message-string err))))) (let* ((start (point)) (end (if is-youtube? (search-forward ",") -- cgit v1.2.3