From 4d5a703c3e889d213408a902d726a080579b2a22 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sun, 11 Dec 2022 10:04:24 -0500 Subject: email groups filtered by logbook --- emacsconf.el | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'emacsconf.el') diff --git a/emacsconf.el b/emacsconf.el index 7157efd..d09167b 100644 --- a/emacsconf.el +++ b/emacsconf.el @@ -578,10 +578,28 @@ (subseq states (seq-position states "PLAYING"))))) +;; https://stackoverflow.com/questions/55855621/org-mode-getting-logbook-notes +(defun emacsconf-get-logbook-notes () + (save-excursion + (unless (org-at-heading-p) + (outline-previous-heading)) + (when (re-search-forward ":LOGBOOK:" (save-excursion + (outline-next-heading) + (point)) + t) + (let* ((elt (org-element-property-drawer-parser nil)) + (beg (org-element-property :contents-begin elt)) + (end (org-element-property :contents-end elt))) + (buffer-substring-no-properties beg end))))) + +(defun emacsconf-get-talk-logbook (o) + (plist-put o :logbook (emacsconf-get-logbook-notes))) + (defvar emacsconf-talk-info-functions '(emacsconf-get-talk-info-from-properties emacsconf-get-talk-categories emacsconf-get-talk-abstract-from-subtree + emacsconf-get-talk-logbook emacsconf-add-talk-status emacsconf-add-checkin-time emacsconf-add-timezone-conversions @@ -1141,6 +1159,24 @@ (when (stringp track) (setq track (emacsconf-get-track track))) (seq-filter (lambda (o) (string= (plist-get o :track) (plist-get track :name))) info)) +(defun emacsconf-filter-talks-by-slugs (slugs &optional info) + (setq info (or info (emacsconf-get-talk-info))) + (if slugs + (seq-filter (lambda (o) + (member (plist-get o :slug) + slugs)) + info) + info)) + +(defun emacsconf-filter-talks-by-logbook (text &optional info) + (setq info (or info (emacsconf-get-talk-info))) + (if text + (seq-remove (lambda (o) + (and (plist-get o :logbook) + (string-match (regexp-quote text) (plist-get o :logbook)))) + info) + info)) + (defvar emacsconf-shifts (list (list :id "sat-am-gen" :track "General" :start "2022-12-03T08:00:00-0500" :end "2022-12-03T12:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "corwin" :irc "dto" :pad "publicvoit" :coord "sachac") (list :id "sat-pm-gen" :track "General" :start "2022-12-03T13:00:00-0500" :end "2022-12-03T18:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "FlowyCoder" :irc "bandali" :pad "publicvoit" :coord "sachac") (list :id "sat-am-dev" :track "Development" :start "2022-12-03T08:00:00-0500" :end "2022-12-03T12:00:00-0500" :host "bandali" :streamer "sachac" :checkin "corwin" :irc "dto" :coord "sachac") (list :id "sat-pm-dev" :track "Development" :start "2022-12-03T13:00:00-0500" :end "2022-12-03T18:00:00-0500" :host "bandali" :streamer "sachac" :checkin "FlowyCoder" :irc "bandali" :coord "sachac") (list :id "sun-am-gen" :track "General" :start "2022-12-04T08:00:00-0500" :end "2022-12-04T12:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "corwin" :irc "dto" :pad "publicvoit" :coord "sachac") (list :id "sun-pm-gen" :track "General" :start "2022-12-04T13:00:00-0500" :end "2022-12-04T18:00:00-0500" :host "zaeph" :streamer "jman" :checkin "FlowyCoder" :irc "bandali" :pad "publicvoit" :coord "sachac") (list :id "sun-am-dev" :track "Development" :start "2022-12-04T08:00:00-0500" :end "2022-12-04T12:00:00-0500" :host "bandali" :streamer "sachac" :checkin "corwin" :irc "dto" :coord "sachac") (list :id "sun-pm-dev" :track "Development" :start "2022-12-04T13:00:00-0500" :end "2022-12-04T18:00:00-0500" :host "bandali" :streamer "sachac" :checkin "FlowyCoder" :irc "bandali" :coord "sachac"))) @@ -1276,7 +1312,9 @@ Filter by TRACK if given. Use INFO as the list of talks." (re-search-forward (concat "\\<" (regexp-quote input)) nil t) (goto-char (match-beginning 0)))) (insert "\n") - (when (< (- (line-end-position) (point)) fill-column) + (when (< (+ (- (line-end-position) (point)) + (save-excursion (- (line-end-position) (line-beginning-position))) + 1) fill-column) (save-excursion (goto-char (line-end-position)) (insert " ") -- cgit v1.2.3