summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2024-12-06 19:20:10 -0500
committerSacha Chua <sacha@sachachua.com>2024-12-06 19:20:10 -0500
commitf992f3daee2a1f84b203ccf3c523416a49c3a4eb (patch)
treed7213bfacb483f9e6d21cfed679ab7c356f1671b
parente2c476753fe8f2c9f4fd6519b26eab0de9aab706 (diff)
downloademacsconf-el-f992f3daee2a1f84b203ccf3c523416a49c3a4eb.tar.xz
emacsconf-el-f992f3daee2a1f84b203ccf3c523416a49c3a4eb.zip
mail intro
-rw-r--r--emacsconf-mail.el50
-rw-r--r--emacsconf.el4
2 files changed, 30 insertions, 24 deletions
diff --git a/emacsconf-mail.el b/emacsconf-mail.el
index 46c02f8..23743e8 100644
--- a/emacsconf-mail.el
+++ b/emacsconf-mail.el
@@ -1470,7 +1470,7 @@ ${signature}"))
(cdr group)
" , "))))))))
-(defun emacsconf-mail-checkin-instructions-to-all ()
+(defun emacsconf-mail-checkin-instructions-to-all (&optional info)
"Draft check-in instructions for all speakers."
(interactive)
(let* ((talks
@@ -1478,7 +1478,7 @@ ${signature}"))
"sent check-in information"
(seq-filter (lambda (o) (and (plist-get o :email)
(plist-get o :q-and-a)))
- (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info)))))
+ (emacsconf-publish-prepare-for-display (or info (emacsconf-get-talk-info))))))
(by-attendance (seq-group-by (lambda (o) (null (string-match "after\\|none" (plist-get o :qa-type))))
talks)))
(when (assoc-default nil by-attendance)
@@ -1622,13 +1622,15 @@ as soon as you can and I'll try to shuffle things around. Thank you!")
"Send checkin instructions to speakers who will be there.
GROUP is (email . (talk talk))"
(interactive (list (emacsconf-mail-complete-email-group
- (seq-remove
- (lambda (o)
- (or
- (string= (plist-get o :status) "CANCELLED")
- (null (plist-get o :email))
- (string-match "after" (or (plist-get o :q-and-a) ""))))
- (emacsconf-get-talk-info)))))
+ (emacsconf-filter-talks-by-logbook
+ "sent check-in information"
+ (seq-remove
+ (lambda (o)
+ (or
+ (string= (plist-get o :status) "CANCELLED")
+ (null (plist-get o :email))
+ (string-match "after" (or (plist-get o :qa-type) ""))))
+ (emacsconf-get-talk-info))))))
(emacsconf-mail-prepare
(list
:subject "${conf-name} ${year}: Check-in instructions"
@@ -2014,24 +2016,28 @@ ${signature}
;;; Other mail functions
-(defun emacsconf-mail-verify-delivery (groups subject)
+(defun emacsconf-mail-verify-delivery (subject &optional groups)
"Verify that the email addresses in GROUPS have all received an email with SUBJECT."
- (interactive (list (emacsconf-mail-groups (seq-filter (lambda (o) (not (string= (plist-get o :status) "CANCELLED")))
- (emacsconf-get-talk-info)))
- (read-string "Subject: ")))
+ (interactive (list (read-string "Subject: ")))
+ (setq groups (or groups
+ (emacsconf-mail-groups (seq-filter (lambda (o)
+ (and (not (string= (plist-get o :status) "CANCELLED"))
+ (plist-get o :email)))
+ (emacsconf-get-talk-info)))))
(let ((missing
(seq-keep (lambda (group)
- (and (string= "0"
- (string-trim
- (shell-command-to-string
- (format "notmuch count to:%s and to:%s and subject:%s"
- (shell-quote-argument (car group))
- (shell-quote-argument emacsconf-mail-bcc-email)
- subject))))
- (car group)))
+ (let ((cmd (format "notmuch count to:%s and to:%s and subject:\\\"%s\\\""
+ (shell-quote-argument (car group))
+ (shell-quote-argument emacsconf-mail-bcc-email)
+ subject)))
+ (and (string= "0"
+ (string-trim
+ (shell-command-to-string
+ cmd)))
+ (car group))))
groups)))
(if missing
- (prin1 missing)
+ (message "Missing: %s" (string-join missing ", "))
(message "All good."))))
(defun emacsconf-mail-get-all-email-addresses (talk)
diff --git a/emacsconf.el b/emacsconf.el
index 5c5737e..fe2a30c 100644
--- a/emacsconf.el
+++ b/emacsconf.el
@@ -1761,8 +1761,8 @@ friendly-id speaker - slugs
#'emacsconf-org-after-todo-state-change t)))
(defvar emacsconf-todo-hooks
- '(emacsconf-stream-play-talk-on-change
- emacsconf-stream-open-qa-windows-on-change
+ '(;; emacsconf-stream-play-talk-on-change
+ ;; emacsconf-stream-open-qa-windows-on-change
emacsconf-erc-announce-on-change ;; announce via ERC
emacsconf-publish-bbb-redirect
emacsconf-stream-update-talk-info-on-change