diff options
author | Sacha Chua <sacha@sachachua.com> | 2022-12-11 10:04:24 -0500 |
---|---|---|
committer | Sacha Chua <sacha@sachachua.com> | 2022-12-11 10:04:24 -0500 |
commit | 4d5a703c3e889d213408a902d726a080579b2a22 (patch) | |
tree | 7e00d76108b4a917c925ac78a85457f9333fc501 /emacsconf.el | |
parent | c1a32ad031d6a5fc7dc644fcfc442c3c9a6e107c (diff) | |
download | emacsconf-el-4d5a703c3e889d213408a902d726a080579b2a22.tar.xz emacsconf-el-4d5a703c3e889d213408a902d726a080579b2a22.zip |
email groups filtered by logbook
Diffstat (limited to 'emacsconf.el')
-rw-r--r-- | emacsconf.el | 40 |
1 files changed, 39 insertions, 1 deletions
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 " ") |