diff options
author | jao <jao@gnu.org> | 2021-01-11 01:14:36 +0000 |
---|---|---|
committer | jao <jao@gnu.org> | 2021-01-11 01:15:18 +0000 |
commit | c9218804220c496d0c841eecaa0c8b6a92146880 (patch) | |
tree | 0758a7bd602fbb0ea0c1452cdb8b07759c70d4e0 /eos/sys/jao-embark.el | |
parent | 3f173fedb948091cfc265ec0cdce6746cfaac034 (diff) | |
download | elibs-c9218804220c496d0c841eecaa0c8b6a92146880.tar.gz elibs-c9218804220c496d0c841eecaa0c8b6a92146880.tar.bz2 |
more consult functions, new jao-embark, eos
Diffstat (limited to 'eos/sys/jao-embark.el')
-rw-r--r-- | eos/sys/jao-embark.el | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/eos/sys/jao-embark.el b/eos/sys/jao-embark.el new file mode 100644 index 0000000..9572489 --- /dev/null +++ b/eos/sys/jao-embark.el @@ -0,0 +1,62 @@ +;;; jao-embark.el --- embark actions -*- lexical-binding: t; -*- + +;; Copyright (C) 2021 jao + +;; Author: jao <mail@jao.io> +;; Keywords: convenience + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <https://www.gnu.org/licenses/>. + +;;; Commentary: + +;; Actions and utilities for embark + +;;; Code: + +(require 'embark) + +(defvar jao-embark-video-url-rx + (format "^https?://\\(?:www\\.\\)?%s/.+" + (regexp-opt '("youtu.be" + "youtube.com" + "blip.tv" + "vimeo.com" + "infoq.com") + t)) + "A regular expression matching URLs that point to video streams") + +(defun jao-embark-video-finder () + "Check whether we're looking at a video URL. +Return (video-url . <URL>) if so." + (when-let ((url (thing-at-point-url-at-point))) + (when (string-match-p jao-embark-video-url-rx url) + (cons 'video-url url)))) + +(defun jao-embark-play-video-url (&optional url) + (interactive "sURL: ") + (let ((cmd (format "mpv %s" (shell-quote-argument url)))) + (start-process-shell-command "mpv" nil cmd))) + +(add-to-list 'embark-target-finders #'jao-embark-video-finder) + +(embark-define-keymap jao-embark-video-url-map + "Actions on URLs pointing to remote video streams." + ("p" jao-embark-play-video-url) + ("b" browse-url) + ("f" browse-url-firefox)) + +(add-to-list 'embark-keymap-alist '(video-url . jao-embark-video-url-map)) + +(provide 'jao-embark) +;;; jao-embark.el ends here |