summaryrefslogtreecommitdiffstats
path: root/emacsconf.el
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-12-11 10:04:24 -0500
committerSacha Chua <sacha@sachachua.com>2022-12-11 10:04:24 -0500
commit4d5a703c3e889d213408a902d726a080579b2a22 (patch)
tree7e00d76108b4a917c925ac78a85457f9333fc501 /emacsconf.el
parentc1a32ad031d6a5fc7dc644fcfc442c3c9a6e107c (diff)
downloademacsconf-el-4d5a703c3e889d213408a902d726a080579b2a22.tar.xz
emacsconf-el-4d5a703c3e889d213408a902d726a080579b2a22.zip
email groups filtered by logbook
Diffstat (limited to 'emacsconf.el')
-rw-r--r--emacsconf.el40
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 " ")