diff options
| author | Sacha Chua <sacha@sachachua.com> | 2025-12-04 07:25:48 -0500 |
|---|---|---|
| committer | Sacha Chua <sacha@sachachua.com> | 2025-12-04 07:25:48 -0500 |
| commit | c64af131bdfab4748abe51d9e75de89f21c9e1eb (patch) | |
| tree | 105b0002db2ba4982d2620b257950912715a05bc | |
| parent | 6043dbe9dbc499132c98fb87023aa53c5a3f3fbc (diff) | |
| download | emacsconf-el-c64af131bdfab4748abe51d9e75de89f21c9e1eb.tar.xz emacsconf-el-c64af131bdfab4748abe51d9e75de89f21c9e1eb.zip | |
Allow mailing one person
| -rw-r--r-- | emacsconf-mail.el | 104 |
1 files changed, 41 insertions, 63 deletions
diff --git a/emacsconf-mail.el b/emacsconf-mail.el index 986743b..d01a491 100644 --- a/emacsconf-mail.el +++ b/emacsconf-mail.el @@ -1631,88 +1631,66 @@ ${signature}")) (emacsconf-rescheduled-talks))) (groups (emacsconf-mail-groups talks))) (dolist (group groups) - (emacsconf-mail-prepare - (list - :subject "${conf-name} ${year}: Schedule update as of ${date}: ${summary}" - :reply-to "emacsconf-submit@gnu.org, ${email}, ${user-email}" - :mail-followup-to "emacsconf-submit@gnu.org, ${email}, ${user-email}" - :log-note log-note - :body - "Hello, ${speakers-short}! + (emacsconf-mail-interim-schedule-update group log-note)))) -We tweaked the schedule a bit so that it's based on the current video lengths. -Your new schedule is: - -${schedule} - -Let us know if you need to reschedule! - -${signature}") - (plist-get (car (cdr group)) :email) - (list - :year emacsconf-year - :base-url emacsconf-base-url - :conf-name emacsconf-name - :user-email user-mail-address - :date (format-time-string "%Y-%m-%d") - :email (plist-get (car (cdr group)) :email) - :speakers-short (plist-get (car (cdr group)) :speakers-short) - :signature user-full-name - :summary - (mapconcat - (lambda (talk) - (let ((minutes (emacsconf-schedule-difference-from-emailed talk))) - (if (> (abs minutes) 0) - (format "%s: %s min %s" - (plist-get talk :slug) - (abs minutes) - (if (< minutes 0) - "earlier" - "later")) - "same time, different length"))) - (cdr group) - "; ") - :schedule - (mapconcat (lambda (talk) - (emacsconf-indent-string (emacsconf-mail-format-talk-schedule talk (plist-get talk :emailed-schedule)) 2)) - (cdr group) - "\n\n")))))) - -(defun emacsconf-mail-interim-schedule-update (talk) +(defun emacsconf-mail-interim-schedule-update (group &optional log-note) "E-mail a quick update about the schedule." (interactive (list (emacsconf-complete-talk-info))) - (emacsconf-mail-prepare + (emacsconf-mail-prepare (list - :subject "${conf-name} ${year}: Schedule update ${sched-one-line}" + :subject "${conf-name} ${year}: Schedule update as of ${date}: ${summary}" :reply-to "emacsconf-submit@gnu.org, ${email}, ${user-email}" :mail-followup-to "emacsconf-submit@gnu.org, ${email}, ${user-email}" - :log-note "sent updated schedule" + :log-note log-note :body "Hello, ${speakers-short}! - We tweaked the schedule a bit. Your new schedule is: +We tweaked the schedule a bit so that it's based on the current video lengths. +Your new schedule is: - ${schedule} +${schedule} - Let us know if you need to reschedule! +Let us know if you need to reschedule! - ${signature}") - (plist-get talk :email) +${signature}") + (or (plist-get group :email) + (plist-get (car (cdr group)) :email)) (list :year emacsconf-year :base-url emacsconf-base-url :conf-name emacsconf-name :user-email user-mail-address - :email (plist-get talk :email) - :speakers-short (plist-get talk :speakers-short) + :date (format-time-string "%Y-%m-%d") + :email (or (plist-get group :email) + (plist-get (car (cdr group)) :email)) + :speakers-short + (or + (plist-get group :speakers-short) + (plist-get (car (cdr group)) :speakers-short)) :signature user-full-name + :summary + (mapconcat + (lambda (talk) + (let ((minutes (emacsconf-schedule-difference-from-emailed talk))) + (if (> (abs minutes) 0) + (format "%s: %s min %s" + (plist-get talk :slug) + (abs minutes) + (if (< minutes 0) + "earlier" + "later")) + "same time, different length"))) + (if (plist-get group :slug) + (list group) + (cdr group)) + "; ") :schedule - (emacsconf-indent-string (emacsconf-mail-format-talk-schedule talk) 2) - :sched-one-line - (emacsconf-timezone-strings-combined - (plist-get talk :start-time) - (plist-get talk :timezone) - "%b %-e %a %-I:%M %#p %Z")))) + (mapconcat (lambda (talk) + (emacsconf-indent-string (emacsconf-mail-format-talk-schedule talk (plist-get talk :emailed-schedule)) 2)) + (if (plist-get group :slug) + (list group) + (cdr group)) + "\n\n")))) (defun emacsconf-mail-schedule-update () "E-mail day-of schedule updates" |
