aboutsummaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/lisp/my/my-wikipedia.el
diff options
context:
space:
mode:
authorYuchen Pei <id@ypei.org>2023-07-20 21:27:39 +1000
committerYuchen Pei <id@ypei.org>2023-07-20 21:27:39 +1000
commita4b7de02b0389feff60570afb9d97f0123bbbc0f (patch)
treeac0739ea25cf7748a2fe6bda75e669d7c098a96e /emacs/.emacs.d/lisp/my/my-wikipedia.el
parent03a2b68eaec5ec64b9df58b786688b06565b58ad (diff)
grok from wiki mode
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-wikipedia.el')
-rw-r--r--emacs/.emacs.d/lisp/my/my-wikipedia.el14
1 files changed, 12 insertions, 2 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-wikipedia.el b/emacs/.emacs.d/lisp/my/my-wikipedia.el
index f2a4365..af954bf 100644
--- a/emacs/.emacs.d/lisp/my/my-wikipedia.el
+++ b/emacs/.emacs.d/lisp/my/my-wikipedia.el
@@ -31,6 +31,7 @@
(require 'my-markup)
(require 'my-net)
(require 'my-mediawiki)
+(require 'wiki)
;; TODO: much of these can be generalised to any mediawiki site
(defvar my-wikipedia-lang "en")
@@ -46,6 +47,15 @@
(libxml-parse-html-region (point-min) (point-max))))
(append (my-grok-wikipedia-html html url) results))))
+(defun my-wiki-grok-wikipedia ()
+ "groks current wiki-mode buffer if the site is wikipedia."
+ (interactive)
+ (unless (and (derived-mode-p 'wiki-mode)
+ (string-prefix-p "wikipedia" (format "%s" wiki-site)))
+ (error "Not in wiki mode or wikipedia."))
+ (my-org-grok
+ (wiki-current-html-url)))
+
(defun my-grok-wikipedia-get-imdb-rating ()
(when (re-search-forward
"\\(https://\\(www\\.\\)?imdb.com/title/tt[0-9]+/\\)" nil t)
@@ -53,9 +63,9 @@
(with-current-buffer (url-retrieve-synchronously
(concat url "ratings"))
(goto-char (point-min))
- (when
+ (when
(re-search-forward
- "\\([0-9,]+\\)\\s-*IMDb.*?\\([0-9\\.]+\\) / 10" nil t)
+ "\\([0-9,]+\\)\\s-*IMDb.*?\\([0-9\\.]+\\) / 10" nil t)
(list (cons "IMDB-link" url)
(cons "IMDB-rating" (match-string 2))
(cons "IMDB-rated-by" (match-string 1))))))))