From 84c4168fa646b5dfe656bb2136efad83a25f69c5 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Wed, 4 Nov 2026 09:30:35 -0500 Subject: fix silly bugs, add transcript, try to upload talks --- emacsconf-publish.el | 78 +++++++++++++++++++++++++++++----------------------- 1 file changed, 44 insertions(+), 34 deletions(-) (limited to 'emacsconf-publish.el') diff --git a/emacsconf-publish.el b/emacsconf-publish.el index 1470480..50eebc1 100644 --- a/emacsconf-publish.el +++ b/emacsconf-publish.el @@ -281,7 +281,7 @@ "\n" (let ((other-files (seq-remove (lambda (o) - (string-match "--main\\.\\(vtt\\|webm\\)")) + (string-match "--main\\.\\(vtt\\|webm\\)" o)) (emacsconf-publish-filter-public-files talk)))) (if other-files (concat "- Other files:\n" @@ -289,7 +289,7 @@ (lambda (file) (concat " - " (org-link-make-string - (format "%s%s/%s" + (format "%s/%s" emacsconf-media-base-url (file-name-nondirectory file)) (replace-regexp-in-string @@ -334,6 +334,7 @@ "\n"))))) (defun emacsconf-publish-schedule-org-files (&optional info) + "Post the schedule as Org files for each time zone." (interactive) (let ((emacsconf-talk-info-functions (append emacsconf-talk-info-functions (list 'emacsconf-get-abstract-from-wiki)))) (setq info (or info (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info))))) @@ -530,7 +531,8 @@ (emacsconf-publish-filter-public-files talk))) "") :transcript-details - (if (plist-get talk :backstage) + (if (and (plist-get talk :backstage) + (emacsconf-talk-file talk "--main.vtt")) (format "
Transcript%s" "") - (if (string= (plist-get o :qa-type) "pad") - "" - (format " Etherpad: <%s>" - (plist-get o :pad-url) - ) - )) + ;; (if (string= (plist-get o :qa-type) "pad") + ;; "" + ;; (format " Etherpad: <%s>" + ;; (plist-get o :pad-url) + ;; ) + ;; ) + ) (concat (or (plist-get o :video-time) (plist-get o :time)) (if (string= (plist-get o :status) "CANCELLED") @@ -1278,7 +1281,7 @@ Entries are sorted chronologically, with different tracks interleaved." emacsconf-tracks " - ")) :schedule-directory (concat emacsconf-media-base-url emacsconf-year "/schedules/")) - "Times below are in ${timezone} (GMT${gmt-offset}). If you have Javascript enabled, clicking on talk pages should include times in your computer's local time setting. + "Times below are in ${timezone} (GMT${gmt-offset}) unless you have Javascript enabled, in which case we will try to translaze the times into your local time zone. Dates might not be translated. [[!inline pages=\"internal(${year}/schedule-image)\" raw=\"yes\"]] @@ -1394,7 +1397,7 @@ You can also get this schedule as iCalendar files: ${icals}. Importing that into :startutc (format-time-string "%FT%T%z" (plist-get o :start-time) t) :endutc (format-time-string "%FT%T%z" (plist-get o :end-time) t) :start (format-time-string "%-l:%M" (plist-get o :start-time) emacsconf-timezone) - :end (format-time-string "%-l:%M" (plist-get o :end-time) emacsconf-timezone))) + :end (format-time-string "%-l:%M %Z" (plist-get o :end-time) emacsconf-timezone))) ((or 'harvest 'resources) (list :pad nil @@ -1489,13 +1492,11 @@ Use FILES as the file list, or look in the cache directory." (assoc-default "TO_ASSIGN" by-status) files "to be captioned, waiting for volunteers" - "

You can e-mail sacha@sachachua.com to call dibs on editing the captions for one of these talks. We use OpenAI Whisper to provide auto-generated VTT that you can use as a starting point, but you can also write the captions from scratch if you like. The VTT file has timing information and the TXT file has the plain text; you can work with either. If you're writing the captions from scratch, you can choose to include timing information, or we can figure them out afterwards with a forced alignment tool. More info: captioning tips

" + "

You can update https://pad.emacsconf.org/emacsconf-2026-backstage or e-mail sacha@sachachua.com to call dibs on editing the captions for one of these talks. We use OpenAI Whisper to provide auto-generated VTT that you can use as a starting point (--main.vtt, or --reencoded.vtt if --main.vtt doesn't exist), but you can also write the captions from scratch if you like. The VTT file has timing information and the TXT file has the plain text; you can work with either. If you're writing the captions from scratch, you can choose to include timing information, or we can figure them out afterwards with a forced alignment tool. More info: captioning tips

" (lambda (f) (append f - (list :extra - (if (plist-get f :caption-note) (concat "
" (plist-get f :caption-note) "
") "") - :files + (list :files (emacsconf-publish-talk-files f files)))))) (defun emacsconf-publish-backstage-to-caption (by-status files) @@ -1557,6 +1558,9 @@ If MODIFY-FUNC is specified, use it to modify the talk." (list :captions-edited t :chapter-file (emacsconf-talk-file o "--main--chapters.vtt") :caption-file (emacsconf-talk-file o "--main.vtt") + :extra + (if (plist-get o :caption-note) + (concat "
" (plist-get o :caption-note) "
") "") :backstage t) o)) (emacsconf-filter-talks info))) (by-status (seq-group-by (lambda (o) (plist-get o :status)) talks)) @@ -1597,18 +1601,21 @@ If MODIFY-FUNC is specified, use it to modify the talk." "