From 36b01a7223c568f00352f7fb8cc33684952c842c Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sun, 13 Nov 2022 13:44:04 -0500 Subject: Shift info --- emacsconf-publish.el | 3 ++- emacsconf-schedule.el | 43 ++++++++++++++++++++++++++++--------------- emacsconf.el | 8 ++++++-- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/emacsconf-publish.el b/emacsconf-publish.el index e4de38d..07097a0 100644 --- a/emacsconf-publish.el +++ b/emacsconf-publish.el @@ -899,7 +899,8 @@ Entries are sorted chronologically, with different tracks interleaved." (defun emacsconf-publish-backstage-org-on-state-change (talk) (save-window-excursion (emacsconf-with-talk-heading talk - (when (member org-state '("PROCESSING" "TO_ASSIGN")) + (when (and (member org-state '("PROCESSING" "TO_ASSIGN")) + (not (plist-get talk :video-time))) (emacsconf-cache-video-data talk)) (when (member org-state '("TO_CAPTION")) (unless (or noninteractive (org-entry-get (point) "CAPTIONER")) diff --git a/emacsconf-schedule.el b/emacsconf-schedule.el index a7427a5..532eaab 100644 --- a/emacsconf-schedule.el +++ b/emacsconf-schedule.el @@ -94,7 +94,7 @@ Each function should take the info and manipulate it as needed, returning the ne (when (plist-get o :slug) (plist-put o :buffer (number-to-string - (if (string-match "live" (plist-get o :q-and-a)) + (if (string-match "live" (or (plist-get o :q-and-a) "")) (min (string-to-number (plist-get o :max-time)) emacsconf-schedule-default-buffer-minutes-for-live-q-and-a) emacsconf-schedule-default-buffer-minutes)))) @@ -414,19 +414,24 @@ Each function should take the info and manipulate it as needed, returning the ne ;;; Schedule summary -(defun emacsconf-schedule-round-start-to-five (o) - (let* ((start-time (plist-get o :start)) - (decoded-time (decode-time start-time "America/Toronto")) - (duration (* (string-to-number (plist-get o :time)) 60)) - (minutes (elt decoded-time 1)) - offset end-time) - (unless (= (mod minutes 5) 0) - (setq offset (seconds-to-time (* 60 (- 5 (mod minutes 5)))) - end-time (time-add start-time (time-to-seconds duration))) - (plist-put o :scheduled (format "%s-%s" (format-time-string "%Y-%m-%d %H:%M" (time-add start-time offset)) - (format-time-string "%H:%M" (time-add end-time offset)))) - (plist-put o :start-time (time-add start-time offset)) - (plist-put o :end-time (time-add end-time offset))))) +(defun emacsconf-schedule-round-start-to-five (info) + (mapcar (lambda (o) + (when (plist-get o :time) + (let* ((start-time (plist-get o :start)) + (decoded-time (decode-time start-time emacsconf-timezone)) + (duration (* (string-to-number (plist-get o :time)) 60)) + (minutes (elt decoded-time 1)) + offset end-time) + (unless (= (mod minutes 5) 0) + (setq offset (seconds-to-time (* 60 (- 5 (mod minutes 5)))) + end-time (time-add start-time (time-to-seconds duration))) + (plist-put o :scheduled (format "%s-%s" + (format-time-string "%Y-%m-%d %H:%M" (time-add start-time offset)) + (format-time-string "%H:%M" (time-add end-time offset)))) + (plist-put o :start-time (time-add start-time offset)) + (plist-put o :end-time (time-add end-time offset))))) + o) + info)) ;(emacsconf-update-schedules #'emacsconf-round-start-to-five) (defvar emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 15) @@ -443,6 +448,13 @@ Each function should take the info and manipulate it as needed, returning the ne o) info)) +(defun emacsconf-schedule-allocate-video-time (info) + (mapcar (lambda (o) + (when (plist-get o :video-time) + (plist-put o :time (plist-get o :video-time))) + o) + info)) + (defun emacsconf-schedule-allocate-max-time (info) (mapcar (lambda (o) (when (plist-get o :max-time) @@ -596,11 +608,12 @@ Both start and end time are tested." tracks)) (defmacro emacsconf-schedule-test (filename &rest varlist) + (declare (debug t)) `(let* (,@varlist) (let* ((schedule (emacsconf-schedule-prepare arranged)) (validation (or (emacsconf-schedule-validate schedule) ""))) (with-temp-file ,filename - (svg-print (emacsconf-schedule-svg 800 200 (emacsconf-schedule-inflate-tracks tracks schedule)))) + (svg-print (emacsconf-schedule-svg 800 200 schedule))) (mapconcat (lambda (o) (format "- %s\n" o)) (append validation (list (format "[[file:%s]]" filename))))))) (defun emacsconf-schedule-format-summary-row (o) diff --git a/emacsconf.el b/emacsconf.el index c16f657..36d21b2 100644 --- a/emacsconf.el +++ b/emacsconf.el @@ -138,8 +138,9 @@ (copy-file file (expand-file-name (file-name-nondirectory file) emacsconf-backstage-dir) t) - (when (and emacsconf-cache-dir (not (string= (expand-file-name default-directory) - (expand-file-name emacsconf-cache-dir)))) + (when (and emacsconf-cache-dir + (not (string= (expand-file-name (file-name-nondirectory file) default-directory) + (expand-file-name (file-name-nondirectory file) emacsconf-cache-dir)))) (copy-file file (expand-file-name (file-name-nondirectory file) emacsconf-cache-dir) t))) @@ -944,6 +945,9 @@ (:name "Development" :color "skyblue" :id "dev" :channel "emacsconf-dev" :tramp "/ssh:emacsconf-dev@res.emacsconf.org#46668:"))) +(defvar emacsconf-shifts (list (list :id "sat-am-gen" :track "General" :start "2022-12-03T08:00:00-0500" :end "2022-12-03T12:00:00-0500" :host "zaeph" :streamer "corwin" :checkin "sachac" :irc "sachac" :pad "publicvoit") (list :id "sat-pm-gen" :track "General" :start "2022-12-03T13:00:00-0500" :end "2022-12-03T18:00:00-0500" :host "zaeph" :streamer "corwin" :checkin "FlowyCoder" :irc "dto" :pad "publicvoit") (list :id "sat-am-dev" :track "Development" :start "2022-12-03T08:00:00-0500" :end "2022-12-03T12:00:00-0500" :host "bandali" :streamer "bandali" :checkin "sachac" :irc "dto") (list :id "sat-pm-dev" :track "Development" :start "2022-12-03T13:00:00-0500" :end "2022-12-03T18:00:00-0500" :host "vetrivln" :streamer "bandali" :checkin "FlowyCoder" :irc "vetrivln") (list :id "sun-am-gen" :track "General" :start "2022-12-04T08:00:00-0500" :end "2022-12-04T12:00:00-0500" :host "zaeph" :streamer "corwin" :checkin "sachac" :irc "sachac" :pad "publicvoit") (list :id "sun-pm-gen" :track "General" :start "2022-12-04T13:00:00-0500" :end "2022-12-04T18:00:00-0500" :host "zaeph" :streamer "jman" :checkin "FlowyCoder" :irc "dto" :pad "publicvoit") (list :id "sun-am-dev" :track "Development" :start "2022-12-04T08:00:00-0500" :end "2022-12-04T12:00:00-0500" :host "bandali" :streamer "bandali" :checkin "sachac" :irc "dto") (list :id "sun-pm-dev" :track "Development" :start "2022-12-04T13:00:00-0500" :end "2022-12-04T18:00:00-0500" :host "vetrivln" :streamer "bandali" :checkin "FlowyCoder" :irc "vetrivln")) + "Shift information derived from the organizer's notebook.") + (defun emacsconf-get-track (name) (when (listp name) (setq name (plist-get name :track))) (seq-find (lambda (track) (or (string= name (plist-get track :name)) -- cgit v1.2.3