From 8fcb36f42440939835fd18809edd449f1191d42e Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sun, 7 Dec 2025 12:49:25 -0500 Subject: updates --- emacsconf-pad.el | 70 +++++++++++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 36 deletions(-) (limited to 'emacsconf-pad.el') diff --git a/emacsconf-pad.el b/emacsconf-pad.el index 3078167..fe52fd1 100644 --- a/emacsconf-pad.el +++ b/emacsconf-pad.el @@ -369,7 +369,7 @@ ${next-talk-list} (replace-regexp-in-string "https://studio\\.youtube\\.com/video/\\([^/]+\\)/livestreaming" "https://youtube.com/live/\\1" (assoc-default "YouTube URL" shift-rtmp 'string=)) - :checkin-pad (concat emacsconf-pad-base "private-" emacsconf-private-pad-prefix "-checkin-" (downcase (format-time-string "%a" (date-to-time (plist-get shift :start))))))) + :checkin-pad (concat emacsconf-pad-base "private-" emacsconf-private-pad-prefix "-" emacsconf-year "-checkin-" (downcase (format-time-string "%a" (date-to-time (plist-get shift :start))))))) (shift-talks (mapcar (lambda (o) (append prefixed o)) (seq-filter @@ -489,7 +489,7 @@ ${next-talk-list} (plist-get talk :timezone) "%-l:%M %p")) "
  • OK to do other things until going live at ${live}
  • People will add questions to the pad or IRC channel; host can read them to you, or you can read them
  • @@ -528,7 +528,8 @@ ${bbb-checklist}") (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info))))) (mapc (lambda (day) - (let ((pad-id (concat "private-" emacsconf-private-pad-prefix "-checkin-" (downcase (format-time-string "%a" (plist-get (cadr day) :checkin-time)))))) + (let ((base-pad (concat "private-" emacsconf-private-pad-prefix "-" emacsconf-year)) + (pad-id (concat "private-" emacsconf-private-pad-prefix "-" emacsconf-year "-checkin-" (downcase (format-time-string "%a" (plist-get (cadr day) :checkin-time)))))) (emacsconf-pad-create-pad pad-id) (emacsconf-pad-set-html pad-id @@ -536,17 +537,20 @@ ${bbb-checklist}") "${checkin}: " "" (concat (car day) + "\n" + emacsconf-pad-base base-pad "\n" "

    If anyone's still missing by the specified time, please let us know in #emacsconf-org so we can call them.

    " ""))))) (seq-group-by (lambda (talk) (format-time-string "%A, %b %-e, %Y" (plist-get talk :checkin-time))) @@ -691,6 +695,7 @@ ${bbb-checklist}") (format-time-string "%-l:%M %p" (plist-get talk :start-time) emacsconf-timezone)) (plist-get talk :hyperlist-note) "" "") :next-talk-in-5 (if next-talk (format-time-string "%-l:%M %p" (time-subtract (plist-get next-talk :start-time) (seconds-to-time 300)) emacsconf-timezone) "") + :next-talk-in-2 (if next-talk (format-time-string "%-l:%M %p" (time-subtract (plist-get next-talk :start-time) (seconds-to-time 120)) emacsconf-timezone) "") :next-talk-in-1 (if next-talk (format-time-string "%-l:%M %p" (time-subtract (plist-get next-talk :start-time) (seconds-to-time 60)) emacsconf-timezone) "")) talk) (concat @@ -698,7 +703,7 @@ ${bbb-checklist}") (if (emacsconf-talk-recorded-p talk) "
  • Backup: ${start-hhmm} ${slug}: it should play a prerecorded intro and talk, but if it doesn't, join ${mumble} in Mumble and introduce talk: ${expanded-intro} (pronunciation: ${pronunciation}); then play ${slug}
  • " ;; live talk, join BBB - "
  • ${start-hhmm} ${slug} live talk: it should play a prerecorded intro, but if it doesn't, join ${bbb-backstage} (mod code ${bbb-mod-code} ) and introduce talk, then turn it over to speaker for live talk: ${expanded-intro} (pronunciation: ${pronunciation})
  • ") + "
  • ${start-hhmm} ${slug} live talk: it should play a prerecorded intro, but if it doesn't, use mod code ${bbb-mod-code} to join ${bbb-backstage} and introduce talk, then turn it over to speaker for live talk: ${expanded-intro} (pronunciation: ${pronunciation})
  • ") ;; Q&A (if (and (not (emacsconf-talk-recorded-p talk)) (not (string= (or (plist-get talk :qa-type) "none") "none"))) @@ -716,7 +721,7 @@ ${bbb-checklist}") "
  • [ ] ${qa-hhmm} ${slug} Q&A mumble: Join ${mumble} in Mumble. Bring the speaker into the right channel if needed. Invite people to put their questions in the Etherpad and read questions and answers from there. ${pad-url} Paste questions into Mumble chat or read them out loud.
  • ") ((rx "live") (concat - "
  • [ ] ${qa-hhmm} ${slug} Q&A live (on stream until ${end-of-qa}): Join ${bbb-backstage} (mod code ${bbb-mod-code} ). START RECORDING. Invite people to put their questions in the Etherpad, and read questions from there. ${pad-url}
  • + "
  • [ ] ${qa-hhmm} ${slug} Q&A live (on stream until ${end-of-qa}): Use mod code ${bbb-mod-code} to join ${bbb-backstage} . START RECORDING. Invite people to put their questions in the Etherpad, and read questions from there. ${pad-url}
  • ${open-qa} " (if next-talk @@ -743,7 +748,8 @@ ${bbb-checklist}") (interactive) (emacsconf-pad-prepopulate-shift-hyperlists) (emacsconf-pad-prepopulate-checkins) - (emacsconf-pad-prepopulate-host-hyperlists)) + (emacsconf-pad-prepopulate-host-hyperlists) + (emacsconf-pad-prepopulate-index)) (defun emacsconf-pad-expand-intro (talk) "Make an intro for TALK." @@ -839,18 +845,18 @@ ${bbb-checklist}") (emacsconf-surround "
  • " (plist-get talk :hyperlist-note) "
  • " "") "
  • Recorded intro: ${media-base}${year}/backstage/${file-prefix}--intro.webm" (if (emacsconf-talk-recorded-p talk) - "
  • [ ] [? stream didn't auto-play] ${stream}: handle-session ${slug}; if that doesn't work, play ${slug}; if that still doesn't work, track-mpv ~/current/cache/${conf-id}-${year}-${slug}*--intro.webm and track-mpv ~/current/cache/${conf-id}-${year}-${slug}*--main.webm
  • " + "
  • [? stream didn't auto-play] ${stream}: handle-session ${slug}
  • " (concat "
  • Live talk:
  • ")) + "
  • [? stream didn't auto-join] ${stream}: mod code ${bbb-mod-code} ${bbb-backstage}
  • " + "
  • [ ] ${host}: mod code ${bbb-mod-code} , join ${bbb-backstage} and turn over to speaker.
  • ")) (pcase (or (plist-get talk :qa-type) "") ((rx "live") (concat "
  • Live Q&A start ${qa-start}, on stream until ${qa-end}
  • ")) ((rx "irc") " -
  • [ ] ${stream}: Update the task status, which should open the pad and IRC; arrange windows: ${ssh-closedq} -
  • -
  • [ ] ${stream}: Update the task status (no visible changes): ${ssh-openq}
  • -
  • [ ] ${host}: Announce that people can ask questions in the ${channel} IRC channel.
  • +
  • Backup link to pad: ${pad-url}
  • +
  • Backup link to #${channel}: ${webchat-url}
  • ") ((rx "Mumble") "
  • [ ] ${stream}: Bring the speaker's Mumble login over to the ${channel} channel in Mumble. Confirm that Mumble is audible and adjust audio as needed: ssh emacsconf-${track-id}@res.emacsconf.org -p 46668 \"mum-vol 85%%\" (or mum-louder, mum-quieter)
  • [ ] ${stream}: Mark the Q&A as closed: ${ssh-closedq} . This should display the QA slide (backup: ${ssh-track} and run firefox ${qa-slide-url} &)
  • -
  • [ ] ${stream}: Update the task status (no visible changes): ${ssh-openq}
  • -
  • [ ] ${host}: Announce that people can ask questions in the pad or on the ${channel} IRC channel.
  • ") ((rx "after") " -
  • [ ] ${stream}: Update the task status: ${ssh-closedq} # this should open the pad and IRC; arrange the windows
  • [ ] ${host}: Announce that people can ask questions in the pad or on the ${channel} IRC channel, and that the speaker will follow up later.
  • -
  • [ ] ${stream}: Update the task status: ${ssh-openq} # this should not make any visible changes, just update the task status
  • " +" ) ((rx "pad") - "
  • [ ] [? pad didn't auto-open] ${stream}: ${pad-url}
  • ") + "
  • [? pad didn't auto-open] ${stream}: ${pad-url}
  • ") (_ "
  • [ ] ${stream}: Open the IRC channel (${channel}) and the pad, and arrange the windows: ${ssh-closedq}
  • ")))))) -- cgit v1.2.3