diff options
-rw-r--r-- | emacsconf-stream.el | 62 |
1 files changed, 41 insertions, 21 deletions
diff --git a/emacsconf-stream.el b/emacsconf-stream.el index 7fb504c..755d565 100644 --- a/emacsconf-stream.el +++ b/emacsconf-stream.el @@ -63,9 +63,28 @@ Files should be in YEAR/video-slug--main.webm and video-slug--main.vtt.") (defun emacsconf-stream-set-talk-info-from-strings (track url bottom) (interactive (list (emacsconf-complete-track) (read-string "URL: ") (read-string "Bottom: "))) - (let* ((home (concat (emacsconf-stream-track-login track) "~"))) - (with-temp-file (expand-file-name "url.txt" home) (insert url)) - (with-temp-file (expand-file-name "bottom.txt" home) (insert bottom)))) + (let* ((home (concat (emacsconf-stream-track-login track) "~")) + (default-directory home)) + (with-temp-file (expand-file-name "url.txt" home) + (insert url)) + (with-temp-file (expand-file-name "bottom.txt" home) + (insert bottom)) + (with-temp-file (expand-file-name "video.svg" home) + (insert + (emacsconf-replace-plist-in-string + (list + :news + (with-temp-buffer + (insert-file-contents (expand-file-name "news.txt" home)) + (buffer-string)) + :url + url + :bottom + bottom) + (with-temp-buffer + (insert-file-contents (expand-file-name "roles/obs/video.svg" emacsconf-ansible-directory)) + (buffer-string))))) + (shell-command "inkscape --export-type=png --export-dpi=96 --export-background-opacity=0 video.svg"))) (defun emacsconf-stream-set-talk-info (talk) (interactive (list (emacsconf-complete-talk-info))) @@ -74,22 +93,22 @@ Files should be in YEAR/video-slug--main.webm and video-slug--main.vtt.") (concat (replace-regexp-in-string "^.*//" "" emacsconf-base-url) (plist-get talk :url)) (concat (cond - ((or (null (plist-get talk :pronouns)) (string= (plist-get talk :pronouns) "nil")) - (plist-get talk :speakers)) - ((string-match ", " (plist-get talk :pronouns)) - (plist-get talk :pronouns)) - (t (format "%s (%s)" - (plist-get talk :speakers) - (plist-get talk :pronouns)))) - "\n" - (cond - ((string-match "live" (plist-get talk :q-and-a)) - "Q&A: live - see talk page for URL") - ((string-match "irc" (plist-get talk :q-and-a)) - (format "Q&A: IRC (#%s) - speaker nick: %s" - (plist-get track :channel) - (plist-get talk :irc))) - (t ""))))) + ((or (null (plist-get talk :pronouns)) (string= (plist-get talk :pronouns) "nil")) + (plist-get talk :speakers)) + ((string-match ", " (plist-get talk :pronouns)) + (plist-get talk :pronouns)) + (t (format "%s (%s)" + (plist-get talk :speakers) + (plist-get talk :pronouns)))) + "\n" + (cond + ((string-match "live" (plist-get talk :q-and-a)) + "Q&A: live - see talk page for URL") + ((string-match "irc" (plist-get talk :q-and-a)) + (format "Q&A: IRC (#%s) - speaker nick: %s" + (plist-get track :channel) + (plist-get talk :irc))) + (t ""))))) (defun emacsconf-stream-update-talk-info-org-after-todo-state-change () "Update talk info." @@ -112,8 +131,9 @@ Final files should be stored in /data/emacsconf/stream/YEAR/video-slug--main.web (defun emacsconf-stream-play-video (talk) (interactive (list (emacsconf-complete-talk-info))) (let ((default-directory (emacsconf-stream-track-login talk))) - (shell-command (concat "~/bin/track-mpv " - (shell-quote-argument (emacsconf-stream-get-filename talk)))))) + (shell-command + (concat "~/bin/track-mpv " + (shell-quote-argument (emacsconf-stream-get-filename talk)))))) (provide 'emacsconf-stream) ;;; emacsconf-stream.el ends here |