summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2024-12-05 12:22:32 -0500
committerSacha Chua <sacha@sachachua.com>2024-12-05 12:22:32 -0500
commitab299006264685aeb59a0ceac697adb03ef778f9 (patch)
tree81da2af3c4120236c910e03a67895792b6c7f8d4
parentb882f4ce6cbdb59baf47a07c635e5dd77f18d8af (diff)
downloademacsconf-el-ab299006264685aeb59a0ceac697adb03ef778f9.tar.xz
emacsconf-el-ab299006264685aeb59a0ceac697adb03ef778f9.zip
updates
-rw-r--r--emacsconf-pad.el2
-rw-r--r--emacsconf-stream.el9
-rw-r--r--emacsconf.el48
3 files changed, 34 insertions, 25 deletions
diff --git a/emacsconf-pad.el b/emacsconf-pad.el
index e3d3692..6a79d45 100644
--- a/emacsconf-pad.el
+++ b/emacsconf-pad.el
@@ -696,7 +696,7 @@ ${bbb-checklist}</li>")
;; live talk, join BBB
"<li><strong>${start-hhmm} ${slug} live talk</strong>: it should play a prerecorded intro, but if it doesn't, join ${bbb-backstage} (mod code <strong>${bbb-mod-code}</strong> ) and introduce talk, then turn it over to speaker for <strong>live talk</strong>: ${expanded-intro} (pronunciation: ${pronunciation})</li>")
;; Q&A
- (if (and (not (emacsconf-talk-prerecorded-p talk))
+ (if (and (not (emacsconf-talk-recorded-p talk))
(not (string= (or (plist-get talk :qa-type) "none") "none")))
"<li>Continue in the BBB room for live Q&A because the talk was live</li>"
(pcase (plist-get talk :qa-type)
diff --git a/emacsconf-stream.el b/emacsconf-stream.el
index a1836e8..2344628 100644
--- a/emacsconf-stream.el
+++ b/emacsconf-stream.el
@@ -24,9 +24,9 @@
;;; Code:
-(defvar emacsconf-stream-dir "/data/emacsconf/stream/"
+(defvar emacsconf-stream-dir (format "/data/emacsconf/shared/%s/assets/stream/" emacsconf-year)
"Directory where the stream versions are.
-Files should be in YEAR/file-prefix--main.webm and file-prefix--main.vtt.")
+Files should be file-prefix--main.webm and file-prefix--main.vtt.")
(defvar emacsconf-stream-host "res.emacsconf.org")
(defun emacsconf-stream-track-login (track)
@@ -261,11 +261,10 @@ especially when two things need to happen close together."
(defun emacsconf-stream-get-filename (talk)
"Return the local filename for the video file for TALK.
-Final files should be stored in /data/emacsconf/stream/YEAR/file-prefix--main.webm."
+Final files should be stored in emacsconf-stream-dir/file-prefix--main.webm."
(expand-file-name
(concat (plist-get talk :file-prefix) "--main.webm")
- (expand-file-name emacsconf-year
- emacsconf-stream-dir)))
+ emacsconf-stream-dir))
(defun emacsconf-stream-play-video (talk)
"Play just the video for TALK."
diff --git a/emacsconf.el b/emacsconf.el
index 82ab325..5c5737e 100644
--- a/emacsconf.el
+++ b/emacsconf.el
@@ -70,7 +70,7 @@
(defcustom emacsconf-base-url "https://emacsconf.org/" "Includes trailing slash"
:group 'emacsconf
:type 'string)
-(defcustom emacsconf-publishing-phase 'cfp
+(defcustom emacsconf-publishing-phase 'conference
"Controls what information to include.
'program - don't include times
'schedule - include times; use this leading up to the conference
@@ -450,6 +450,14 @@ FILENAME specifies an extra string to add to the file prefix if needed."
(setq value (or value (org-read-property-value prop)))
(org-entry-put (point) prop value))))
+(defun emacsconf-copy-property (search prop)
+ (interactive (list (emacsconf-complete-talk) nil))
+ (save-window-excursion
+ (emacsconf-with-talk-heading search
+ (setq prop (or prop (org-read-property-name)))
+ (when (called-interactively-p 'any)
+ (kill-new (org-entry-get (point) prop)))
+ (org-entry-get (point) prop))))
(defun emacsconf-complete-slug ()
(emacsconf-get-slug-from-string (emacsconf-complete-talk)))
@@ -573,7 +581,7 @@ If INFO is specified, limit it to that list."
(defun emacsconf-talk-recorded-p (talk)
"Returns non-nil if TALK will start with a recorded video."
- (and (not (plist-get talk :prefer-live))
+ (and (not (plist-get talk :live))
(plist-get talk :video-file)))
(defun emacsconf-get-talk-info-from-properties (o)
@@ -618,7 +626,6 @@ If INFO is specified, limit it to that list."
(:youtube-url "YOUTUBE_URL")
(:toobnix-url "TOOBNIX_URL")
(:intro-time "INTRO_TIME")
- (:prefer-live "PREFER_LIVE")
;; Captioning
(:captioner "CAPTIONER")
(:caption-note "CAPTION_NOTE")
@@ -1197,6 +1204,7 @@ The subheading should match `emacsconf-abstract-heading-regexp'."
"c" #'emacsconf-find-captions-from-slug
"d" #'emacsconf-find-caption-directives-from-slug
"p" #'emacsconf-set-property-from-slug
+ "P" #'emacsconf-copy-property
"w" #'emacsconf-edit-wiki-page
"s" #'emacsconf-set-start-time-for-slug
"W" #'emacsconf-browse-wiki-page
@@ -1439,6 +1447,7 @@ If TIMEZONES is a string, split it by commas."
'((emacsconf-pad-api-key . etherpad_api_key)
(emacsconf-pad-base . etherpad_url)
(emacsconf-backstage-password . emacsconf_backstage_password))))))
+(defvar emacsconf-live-base-url "https://live.emacsconf.org/")
;; (emacsconf-ansible-load-vars (expand-file-name "prod-vars.yml" emacsconf-ansible-directory))
;;; Tracks
(defvar emacsconf-tracks
@@ -1457,21 +1466,21 @@ If TIMEZONES is a string, split it by commas."
:vnc-port "5905"
:autopilot crontab
:status "offline")
- (:name "Development" :color "skyblue" :id "dev" :channel "emacsconf-dev"
- :watch ,(format "https://live.emacsconf.org/%s/watch/dev/" emacsconf-year)
- :webchat-url "https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-gen,emacsconf-dev"
- :tramp "/ssh:emacsconf-dev@res.emacsconf.org#46668:"
- ;; :toobnix-url "https://toobnix.org/w/w6K77y3bNMo8xsNuqQeCcD"
- ;; :youtube-url "https://www.youtube.com/watch?v=PMaoF-xa1b4"
- ;; :youtube-studio-url "https://studio.youtube.com/video/PMaoF-xa1b4/livestreaming"
- :stream ,(concat emacsconf-stream-base "dev.webm")
- :480p ,(concat emacsconf-stream-base "dev-480p.webm")
- :uid 2003
- :start "10:00" :end "17:00"
- :vnc-display ":6"
- :vnc-port "5906"
- :autopilot crontab
- :status "offline")))
+ (:name "Development" :color "skyblue" :id "dev" :channel "emacsconf-dev"
+ :watch ,(format "https://live.emacsconf.org/%s/watch/dev/" emacsconf-year)
+ :webchat-url "https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-gen,emacsconf-dev"
+ :tramp "/ssh:emacsconf-dev@res.emacsconf.org#46668:"
+ ;; :toobnix-url "https://toobnix.org/w/w6K77y3bNMo8xsNuqQeCcD"
+ ;; :youtube-url "https://www.youtube.com/watch?v=PMaoF-xa1b4"
+ ;; :youtube-studio-url "https://studio.youtube.com/video/PMaoF-xa1b4/livestreaming"
+ :stream ,(concat emacsconf-stream-base "dev.webm")
+ :480p ,(concat emacsconf-stream-base "dev-480p.webm")
+ :uid 2003
+ :start "10:00" :end "17:00"
+ :vnc-display ":6"
+ :vnc-port "5906"
+ :autopilot crontab
+ :status "offline")))
(defun emacsconf-get-track (name)
"Get the track for NAME.
@@ -1830,7 +1839,8 @@ tracks with the ID in the cdr of that list."
(save-window-excursion
(save-excursion
(emacsconf-with-talk-heading talk
- (emacsconf-add-to-logbook note)))))
+ (emacsconf-add-to-logbook note)
+ (bury-buffer (current-buffer))))))
(defun emacsconf-reload ()
"Reload the emacsconf-el modules."