From 3cbda731d7d2c6daf08bb9e645ec53d041651e35 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sun, 13 Nov 2022 13:38:12 -0500 Subject: Add hyperlists to pad --- emacsconf-pad.el | 152 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) (limited to 'emacsconf-pad.el') diff --git a/emacsconf-pad.el b/emacsconf-pad.el index 9137d98..d11f067 100644 --- a/emacsconf-pad.el +++ b/emacsconf-pad.el @@ -296,5 +296,157 @@ ${next-talk-list} (not (string= cached-last-modified (number-to-string .data.lastEdited)))))))) +(defun emacsconf-pad-export-initial-content-for-hyperlists (dir &optional info) + (interactive (list (read-file-name "Output directory: " nil nil nil nil 'file-directory-p))) + (setq info (emacsconf-prepare-for-display (emacsconf-get-talk-info))) + (unless (file-directory-p dir) + (make-directory dir)) + (mapc + (lambda (shift) + (with-temp-file (expand-file-name (concat (plist-get shift :id) ".html") dir) + (insert (emacsconf-pad-format-shift-hyperlist + (append + (list + :year + emacsconf-year + :track-id + (plist-get + (emacsconf-get-track (plist-get shift :track)) + :id))) + shift info)))) + emacsconf-shifts)) +;; (emacsconf-pad-export-initial-content-for-hyperlists "/ssh:media:~/backstage/hyperlists") + +(defun emacsconf-pad-format-shift-hyperlist (shift info) + (concat + "

" (plist-get shift :id) "

" + (emacsconf-replace-plist-in-string + shift + "

Host: ${host}, Streamer: ${streamer}, IRC: ${irc}, Pad: ${pad}, Check-in: ${checkin}

") + (emacsconf-replace-plist-in-string + shift + " +Setup + +") + "")) + +(defun emacsconf-pad-prepopulate-hyperlists () + (interactive) + (let ((info (emacsconf-prepare-for-display (emacsconf-get-talk-info)))) + (mapc (lambda (shift) + (let ((pad-id (format "private_%s" (plist-get shift :id)))) + (emacsconf-pad-create-pad pad-id) + (emacsconf-pad-set-html + pad-id + (emacsconf-pad-format-shift-hyperlist shift info)))) + emacsconf-shifts))) + +;; Related: emacsconf-talk-hyperlist +(defun emacsconf-pad-talk-hyperlist (talk &optional do-insert) + (interactive (list (emacsconf-complete-talk-info) t)) + (let* ((track-id (plist-get (emacsconf-get-track talk) :id)) + (modified-talk + (apply + #'append + (list + :track-id track-id + :ssh "ssh orga@res.emacsconf.org -p 46668 " + :ssh-audio (format "ex: ssh emacsconf-%s@res.emacsconf.org -p 46668 \"%s-vol 85%%\" (or %s-louder, %s-quieter)" track-id track-id track-id track-id)) + talk + (mapcar (lambda (status) + (list (intern (concat ":ssh-" (replace-regexp-in-string "_" "" (downcase status)))) + (format "ssh orga@res.emacsconf.org -p 46668 \"~/scripts/update-task-status.sh %s . %s\"" + (plist-get talk :slug) + status))) + '("PLAYING" "OPEN_Q" "CLOSED_Q")))) + (result + (emacsconf-replace-plist-in-string + modified-talk + (format "
  • %s %s %s %s %s%s\n%s
  • " + (format-time-string "%H:%M" (plist-get talk :start-time) emacsconf-timezone) + (plist-get talk :track) + (plist-get talk :slug) + (plist-get talk :title) + emacsconf-base-url + (plist-get talk :url) + emacsconf-base-url + (plist-get talk :url) + (pcase (or (plist-get talk :q-and-a) "") + ((rx "live") + " +") + ((rx "irc") + " + +") + (_ + " +")) + nil nil 1)))) + (if do-insert (insert result)) + result)) (provide 'emacsconf-pad) ;;; emacsconf-pad.el ends here -- cgit v1.2.3