diff options
| author | Sacha Chua <sacha@sachachua.com> | 2023-12-05 08:17:03 -0500 | 
|---|---|---|
| committer | Sacha Chua <sacha@sachachua.com> | 2023-12-05 08:21:22 -0500 | 
| commit | 43f8f17f81191237715d01c6bf2ae2855e250b42 (patch) | |
| tree | 6c6135ea525e87a353a5be738ae9e3e99dbf91ac | |
| parent | 893a26d0cd46ef6b8f0c508ab4ee7a9899e38277 (diff) | |
| download | emacsconf-el-43f8f17f81191237715d01c6bf2ae2855e250b42.tar.xz emacsconf-el-43f8f17f81191237715d01c6bf2ae2855e250b42.zip  | |
schedule update template
| -rw-r--r-- | emacsconf-mail.el | 95 | 
1 files changed, 95 insertions, 0 deletions
diff --git a/emacsconf-mail.el b/emacsconf-mail.el index b566f77..2411522 100644 --- a/emacsconf-mail.el +++ b/emacsconf-mail.el @@ -1391,6 +1391,101 @@ ${signature}"))  		(dolist (group (emacsconf-mail-groups (assoc-default t by-attendance)))  			(emacsconf-mail-checkin-instructions-for-attending-speakers group)))) +(defun emacsconf-mail-schedule-update () +	"E-mail day-of schedule updates" +	(interactive) +	(let ((groups +				 (emacsconf-mail-groups +					(seq-remove (lambda (talk) +												(string= (replace-regexp-in-string "[<>]" "" (plist-get talk :scheduled)) +																 (plist-get talk :checkin-schedule-sent))) +											(emacsconf-publish-prepare-for-display (emacsconf-get-talk-info)))))) +		(dolist (group groups) +			(emacsconf-mail-prepare +			 (list +				:subject "${conf-name} ${year}: Schedule update - new check-in time ${checkin-time}" +				:reply-to "emacsconf-submit@gnu.org, ${email}, ${user-email}" +				:mail-followup-to "emacsconf-submit@gnu.org, ${email}, ${user-email}" +				:log-note "sent updated schedule" +				:body +				"${email-notes}Hello, ${speakers-short}! + +We tweaked the schedule a bit! Your new check-in information is: + +${checkin-info} + +Please check in early so that we can deal with scheduling changes +or technical issues, and so that we don't worry too much about +missing speakers (aaah!). You can find the check-in +process at ${base-url}${year}/speakers/ . ${wrap} + +If something comes up, please let us know as soon as you can. Here's +my emergency contact information: ${emergency}${wrap} + +Thank you for sharing your time and energy with the ${conf-name} +community! + +${signature} + +p.s. If you need to cancel, that's okay too, life happens. Let me know +as soon as you can and I'll try to shuffle things around. Thank you!") +			 (car group) +			 (list +				:year emacsconf-year +				:base-url emacsconf-base-url +				:conf-name emacsconf-name +				:user-email user-mail-address +				:email (car group) +				:checkin-time (mapconcat (lambda (o) +																	 (emacsconf-timezone-strings-combined +																		(plist-get o :checkin-time) +																		(plist-get o :timezone))) +																 (cdr group) +																 "; ") +				:emergency emacsconf-emergency-contact +				:plural (if (> (length (cdr group)) 1) "s" "") +				:speakers-short (plist-get (cadr group) :speakers-short) +				:url (mapconcat (lambda (o) (concat emacsconf-base-url (plist-get o :url))) +												(cdr group) " , ") +				:email-notes (emacsconf-surround "ZZZ: " (plist-get (cadr group) :email-notes) "\n\n" "") +				:signature user-full-name +				:checkin-info +				(mapconcat +				 (lambda (o) +					 (emacsconf-replace-plist-in-string +						(append (list :base-url emacsconf-base-url +													:check-in +													(concat +													 "Before " +													 (emacsconf-timezone-strings-combined +														(plist-get o :checkin-time) +														(plist-get o :timezone)) +													 "\n  (this is " (plist-get o :checkin-label) ")" +													 "\n") +													:qa-info-speakers +													(cond +													 ((or (plist-get o :live) (null (plist-get o :video-file))) ;; intentionally a live talk +														(concat "Talk & Q&A BigBlueButton room: " +																		(emacsconf-backstage-url (plist-get o :bbb-backstage)))) +													 ((string= (plist-get o :qa-type) "none") +														"Q&A: After the event; we'll collect the questions and e-mail them to you") +													 ((string= (plist-get o :qa-type) "live") +														(concat "Q&A BigBlueButton room: " +																		(emacsconf-backstage-url (plist-get o :bbb-backstage)))) +													 ((string= (plist-get o :qa-type) "irc") +														(concat "Q&A: On IRC: #" (plist-get o :channel) " ( " (plist-get o :webchat-url) " )")) +													 ((string= (plist-get o :qa-type) "pad") +														(concat "Q&A: On Etherpad")) +													 (t "Q&A: After the event; we'll collect the questions and e-mail them to you")) +													) +										o) +						"- ${title} +  Info and sched: ${base-url}${url} +  Check-in: ${check-in} +  Pad: ${pad-url} +  ${qa-info-speakers}")) +				 (cdr group) "\n\n")))))) +  (defun emacsconf-mail-checkin-instructions-for-attending-speakers (group)    "Send checkin instructions to speakers who will be there.  GROUP is (email . (talk talk))"  | 
