summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/servall-results.el35
-rw-r--r--lisp/servall-wikipedia.el70
-rw-r--r--lisp/servall-ytdl.el41
-rw-r--r--lisp/servall.el4
4 files changed, 81 insertions, 69 deletions
diff --git a/lisp/servall-results.el b/lisp/servall-results.el
new file mode 100644
index 0000000..33a1461
--- /dev/null
+++ b/lisp/servall-results.el
@@ -0,0 +1,35 @@
+;; -*- lexical-binding: t; -*-
+(defvar servall-results-mode-map
+ (let ((map (make-sparse-keymap)))
+ (setq map (copy-keymap special-mode-map))
+ (define-key map "n" 'org-next-visible-heading)
+ (define-key map "g" 'servall-results-update)
+ (define-key map "\r" 'servall-results-open)
+ (define-key map "p" 'org-previous-visible-heading)
+ (define-key map "s" 'servall-results-re-search)
+ map))
+(defvar servall-results-buffer "*servall-results*")
+
+(define-derived-mode servall-results-mode org-mode "servall-results"
+ "Mode for showing and selecting results"
+ (setq-local buffer-read-only t
+ servall-results-update-function nil
+ servall-results-re-search-function nil
+ servall-results-open-function nil))
+
+(defun servall-results-update (&optional cb)
+ (interactive)
+ ;; assuming the update function takes a cb iff cb is nonnil.
+ (if cb
+ (funcall servall-results-update-function cb)
+ (funcall servall-results-update-function)))
+
+(defun servall-results-re-search ()
+ (interactive)
+ (call-interactively servall-results-re-search-function))
+
+(defun servall-results-open ()
+ (interactive)
+ (funcall servall-results-open-function))
+
+(provide 'servall-results)
diff --git a/lisp/servall-wikipedia.el b/lisp/servall-wikipedia.el
index aebfeb9..84385fa 100644
--- a/lisp/servall-wikipedia.el
+++ b/lisp/servall-wikipedia.el
@@ -1,74 +1,6 @@
;; -*- lexical-binding: t; -*-
(require 'servall-client)
-
-(defvar servall-results-mode-map
- (let ((map (make-sparse-keymap)))
- (setq map (copy-keymap special-mode-map))
- (define-key map "n" 'org-next-visible-heading)
- (define-key map "g" 'servall-results-update)
- (define-key map "\r" 'servall-results-open)
- (define-key map "p" 'org-previous-visible-heading)
- (define-key map "s" 'servall-results-re-search)
- map))
-(defvar servall-results-buffer "*servall-results*")
-
-(define-derived-mode servall-results-mode org-mode "servall-results"
- "Mode for showing and selecting results"
- (setq-local buffer-read-only t
- servall-results-update-function nil
- servall-results-re-search-function nil
- servall-results-open-function nil))
-
-(defun servall-results-update (&optional cb)
- (interactive)
- ;; assuming the update function takes a cb iff cb is nonnil.
- (if cb
- (funcall servall-results-update-function cb)
- (funcall servall-results-update-function)))
-
-(defun servall-results-re-search ()
- (interactive)
- (call-interactively servall-results-re-search-function))
-
-(defun servall-results-open ()
- (interactive)
- (funcall servall-results-open-function))
-
-;; ytdl results
-(define-derived-mode servall-ytdl-results-mode servall-results-mode
- "servall-ytdl-results"
- "Mode for showing and selecting ytdl results"
- (setq-local servall-ytdl-results-query nil))
-
-(defun servall-ytdl-search (query)
- (interactive "sYtdl Query: ")
- (with-current-buffer (get-buffer-create servall-results-buffer)
- (servall-ytdl-results-mode)
- (setq servall-ytdl-results-query query
- servall-results-update-function 'servall-ytdl-results-update
- servall-results-re-search-function 'servall-ytdl-search
- servall-results-open-function 'servall-ytdl-results-open)
- (servall-results-update (lambda ()
- (switch-to-buffer servall-results-buffer)))))
-
-(defun servall-ytdl-results-update (cb)
- (servall-api-ytdl-search
- servall-ytdl-results-query
- (lambda (results)
- (with-current-buffer (get-buffer-create servall-results-buffer)
- (let* ((inhibit-read-only t))
- (erase-buffer)
- (mapc
- (lambda (result)
- (let ((title (alist-get 'title result)))
- (insert
- (propertize
- (concat "* " title "\n")
- 'title title))
- (insert (alist-get 'description result) "\n\n")))
- results)
- (goto-char (point-min))))
- (funcall cb))))
+(require 'servall-results)
;; wikipedia results
(define-derived-mode servall-wikipedia-results-mode servall-results-mode
diff --git a/lisp/servall-ytdl.el b/lisp/servall-ytdl.el
new file mode 100644
index 0000000..426333b
--- /dev/null
+++ b/lisp/servall-ytdl.el
@@ -0,0 +1,41 @@
+;; -*- lexical-binding: t; -*-
+(require 'servall-client)
+(require 'servall-results)
+
+;; ytdl results
+(define-derived-mode servall-ytdl-results-mode servall-results-mode
+ "servall-ytdl-results"
+ "Mode for showing and selecting ytdl results"
+ (setq-local servall-ytdl-results-query nil))
+
+(defun servall-ytdl-search (query)
+ (interactive "sYtdl Query: ")
+ (with-current-buffer (get-buffer-create servall-results-buffer)
+ (servall-ytdl-results-mode)
+ (setq servall-ytdl-results-query query
+ servall-results-update-function 'servall-ytdl-results-update
+ servall-results-re-search-function 'servall-ytdl-search
+ servall-results-open-function 'servall-ytdl-results-open)
+ (servall-results-update (lambda ()
+ (switch-to-buffer servall-results-buffer)))))
+
+(defun servall-ytdl-results-update (cb)
+ (servall-api-ytdl-search
+ servall-ytdl-results-query
+ (lambda (results)
+ (with-current-buffer (get-buffer-create servall-results-buffer)
+ (let* ((inhibit-read-only t))
+ (erase-buffer)
+ (mapc
+ (lambda (result)
+ (let ((title (alist-get 'title result)))
+ (insert
+ (propertize
+ (concat "* " title "\n")
+ 'title title))
+ (insert (alist-get 'description result) "\n\n")))
+ results)
+ (goto-char (point-min))))
+ (funcall cb))))
+
+(provide 'servall-ytdl)
diff --git a/lisp/servall.el b/lisp/servall.el
new file mode 100644
index 0000000..887fc57
--- /dev/null
+++ b/lisp/servall.el
@@ -0,0 +1,4 @@
+(require 'servall-wikipedia)
+(require 'servall-ytdl)
+
+(provide 'servall)