From 5c2b5665aa6f09f225afdf4596d1343ddc450d80 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Wed, 30 Nov 2022 18:53:25 -0500 Subject: setup and teardown --- emacsconf-hyperlist.el | 36 ++++++++++++++++++++++++++++++++++-- emacsconf-publish.el | 46 ++++++++++++++++++++++++++-------------------- emacsconf-stream.el | 10 ++++++++++ emacsconf.el | 9 +++++++-- 4 files changed, 77 insertions(+), 24 deletions(-) diff --git a/emacsconf-hyperlist.el b/emacsconf-hyperlist.el index ac095a7..8cc8032 100644 --- a/emacsconf-hyperlist.el +++ b/emacsconf-hyperlist.el @@ -162,7 +162,7 @@ (lambda (a b) (time-less-p (car a) (car b)))))) -(defun emacsconf-hyperlist-format-day (day &optional track info) +(defun emacsconf-hyperlist-format-streamer-day (day &optional track info) (setq info (emacsconf-prepare-for-display (if info (mapcar #'emacsconf-resolve-talk info) (emacsconf-get-talk-info)))) @@ -195,7 +195,39 @@ (interactive (list (org-read-date "Date: "))) (pop-to-buffer (get-buffer-create "*hyperlist*")) (erase-buffer) - (insert (emacsconf-hyperlist-format-day date track info)) + (insert + "- Setup: + - [ ] ssh live screen-fallbacks\n" + (mapconcat (lambda (track) + (emacsconf-replace-plist-in-string + track + " - ${name} + - [ ] Connect via VNC + - [ ] [[elisp:(emacsconf-stream-track-ssh \"${name}\" \"nohup\" \"start-background-music\" \"&\")][start background music]] + - [ ] Start recording with OBS (not streaming) + - [ ] Check main stream with MPV ${stream} + - [ ] Check 480p ${480p} + - [ ] [[shell:ssh -t orga@live0.emacsconf.org 'screen -S restream-${id}-youtube /home/orga/restream-${id}-youtube.sh'][Start Youtube restream]] and then confirm ${youtube-studio-url} and ${youtube-url} + - [ ] [[shell:ssh -t orga@live0.emacsconf.org 'screen -S restream-${id}-toobnix /home/orga/restream-${id}-toobnix.sh'][Start Toobnix restream]] and then confirm ${toobnix-url} + - [ ] [[elisp:(emacsconf-stream-update-track-status \"${name}\")][Update emacsconf-tracks :status and update status page]] + - [ ] Start Emacs and use emacsconf-stream-display-clock-and-countdown\n")) + emacsconf-tracks + "") + (emacsconf-hyperlist-format-streamer-day date track info) + "- Teardown + - [ ] Stop recording +" + (mapconcat (lambda (track) + (emacsconf-replace-plist-in-string + track + " - ${name} + - [ ] [[shell:ssh orga@live0.emacsconf.org screen -S restream-${id}-youtube -X quit][stop youtube restream]] + - [ ] [[shell:ssh orga@live0.emacsconf.org screen -S restream-${id}-toobnix -X quit][stop toobnix restream]] + - [ ] [[elisp:(emacsconf-stream-update-track-status \"${name}\")][Update emacsconf-tracks :status and update status page]] + - [ ] Kill the fallback screens on live0 +" + )) + emacsconf-tracks "")) (goto-char (point-min)) (org-mode)) diff --git a/emacsconf-publish.el b/emacsconf-publish.el index 509c5fd..2701cf1 100644 --- a/emacsconf-publish.el +++ b/emacsconf-publish.el @@ -2051,26 +2051,32 @@ There is no live Q&A room for ${title}. You can find more information about the ;;; Toobnix -(defun emacsconf-publish-copy-video-description (talk) - (interactive (list (emacsconf-complete-talk-info))) - (kill-new - (emacsconf-replace-plist-in-string - (append (list :conf-name emacsconf-name :year emacsconf-year - :chapters (let ((chapters (subed-parse-file (expand-file-name (concat (plist-get talk :video-slug) "--main--chapters.vtt") emacsconf-cache-dir)))) - (if chapters - (concat - (mapconcat (lambda (chapter) - (concat (format-seconds "%.2h:%z%.2m:%.2s" (floor (/ (elt chapter 1) 1000))) - " " (elt chapter 3) "\n")) - chapters - "") - "\n") - ""))) - talk) - "${conf-name} ${year}: ${title} (${speakers-with-pronouns}) -${absolute-url} +(defun emacsconf-publish-video-description (talk &optional include-title) + (interactive (list (emacsconf-complete-talk-info) t)) + (let ((result + (emacsconf-replace-plist-in-string + (append (list :conf-name emacsconf-name :year emacsconf-year + :chapters (let ((chapters (subed-parse-file (expand-file-name (concat (plist-get talk :video-slug) "--main--chapters.vtt") emacsconf-cache-dir)))) + (if chapters + (concat + (mapconcat (lambda (chapter) + (concat (format-seconds "%.2h:%z%.2m:%.2s" (floor (/ (elt chapter 1) 1000))) + " " (elt chapter 3) "\n")) + chapters + "") + "\n") + ""))) + talk) + (concat + (if include-title + "${conf-name} ${year}: ${title} - ${speakers-with-pronouns}\n" + "") + "${absolute-url} ${chapters}You can view this and other resources using free/libre software at ${absolute-url} . -This video is available under the terms of the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.")) - (emacsconf-with-talk-heading talk)) +This video is available under the terms of the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.")))) + (when (called-interactively-p 'any) + (kill-new result) + (emacsconf-with-talk-heading talk)) + result)) (provide 'emacsconf-publish) diff --git a/emacsconf-stream.el b/emacsconf-stream.el index 0daab10..c49ec90 100644 --- a/emacsconf-stream.el +++ b/emacsconf-stream.el @@ -911,5 +911,15 @@ ffplay URL ;; (emacsconf-stream-audio-get-volume "General" "qa") ;; (emacsconf-stream-audio-louder "General" "qa") ;; (emacsconf-stream-audio-quieter "General" "qa") + +;;; Live + +(defun emacsconf-stream-update-track-status (track &optional status) + (interactive (list (emacsconf-complete-track))) + (plist-put (emacsconf-get-track track) + :status (or status (completing-read "Status: " '("online" "offline")))) + (emacsconf-stream-update-status-page)) + + (provide 'emacsconf-stream) ;;; emacsconf-stream.el ends here diff --git a/emacsconf.el b/emacsconf.el index d8b75a4..43060f7 100644 --- a/emacsconf.el +++ b/emacsconf.el @@ -1048,6 +1048,8 @@ :webchat-url "https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen" :stream ,(concat emacsconf-stream-base "gen.webm") :480p ,(concat emacsconf-stream-base "gen-480p.webm") + :toobnix-url "https://toobnix.org/w/7t9X8eXuSby8YpyEKTb4aj" + :youtube-url "https://youtu.be/4W9ZvCTG0Ug" :start "09:00" :end "17:00" :vnc-display ":5" :vnc-port "5905" @@ -1055,8 +1057,11 @@ (:name "Development" :color "skyblue" :id "dev" :channel "emacsconf-dev" :watch "https://live.emacsconf.org/2022/watch/dev/" :webchat-url "https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev" - :tramp "/ssh:emacsconf-dev@res.emacsconf.org#46668:" - :stream ,(concat emacsconf-stream-base "dev.webm") + :tramp "/ssh:emacsconf-dev@res.emacsconf.org#46668:" + :toobnix-url "https://toobnix.org/w/w6K77y3bNMo8xsNuqQeCcD" + :youtube-url "https://youtu.be/bLJdyzt51uw" + :youtube-studio-url "https://studio.youtube.com/video/bLJdyzt51uw/livestreaming" + :stream ,(concat emacsconf-stream-base "dev.webm") :480p ,(concat emacsconf-stream-base "dev-480p.webm") :start "10:00" :end "17:00" :vnc-display ":6" -- cgit v1.2.3