diff options
| -rw-r--r-- | emacsconf-extract.el | 77 | 
1 files changed, 56 insertions, 21 deletions
diff --git a/emacsconf-extract.el b/emacsconf-extract.el index 52d181b..e7c4a9d 100644 --- a/emacsconf-extract.el +++ b/emacsconf-extract.el @@ -1422,6 +1422,60 @@ If QA is non-nil, treat it as a Q&A video."  					:headers (emacsconf-extract-toobnix-api-header)  					:as #'json-read))) +(defun emacsconf-extract-youtube-store-url (&optional prefix) +	(interactive "p") +	(let* ((desc (spookfox-js-injection-eval-in-active-tab +							 "document.querySelector('#description').innerHTML" t)) +				 (slug (if (and desc +												(string-match (rx (literal emacsconf-base-url) (literal emacsconf-year) "/talks/" +																		(group (1+ (not (or " " "/" "\""))))) +																desc)) +									(match-string 1 desc) +								(emacsconf-complete-slug))) +				(url (spookfox-js-injection-eval-in-active-tab "window.location.href" t)) +				(qa (or (> (or prefix 1) +									 1) +								(string-match "Q&A" (or desc "")))) +				(field (if qa +									 "QA_YOUTUBE_URL" +								 "YOUTUBE_URL"))) +		(save-window-excursion +					(emacsconf-with-talk-heading slug +						(org-entry-put (point) +													 field +													 url) +						(message "Updating %s %s %s" +										 slug +										 field +										 url))))) + +(defun emacsconf-extract-toobnix-store-url (&optional prefix) +	(interactive "p") +	(let* ((desc (spookfox-js-injection-eval-in-active-tab +							 "document.querySelector('.video-info-description').innerHTML" t)) +				 (slug (if (and desc +												(string-match (rx (literal emacsconf-base-url) (literal emacsconf-year) "/talks/" +																		(group (1+ (not (or " " "/" "\""))))) +																desc)) +									(match-string 1 desc) +								(emacsconf-complete-slug))) +				(url (spookfox-js-injection-eval-in-active-tab "window.location.href" t)) +				(qa (or (> (or prefix 1) +									 1) +								(string-match "Q&A" (or desc "")))) +				(field (if qa +									 "QA_TOOBNIX_URL" +								 "TOOBNIX_URL"))) +		(save-window-excursion +					(emacsconf-with-talk-heading slug +						(org-entry-put (point) +													 field +													 url) +						(message "Updating %s %s %s" +										 slug +										 field +										 url))))) +  (defun emacsconf-extract-toobnix-publish-video-from-edit-page ()  	"Messy hack to set a video to public and store the URL."  	(interactive) @@ -1430,27 +1484,8 @@ If QA is non-nil, treat it as a Q&A video."  	(spookfox-js-injection-eval-in-active-tab "document.querySelector('span[title=\"Anyone can see this video\"]').click()" t)  	(sit-for 1)  	(spookfox-js-injection-eval-in-active-tab "document.querySelector('button.orange-button').click()" t)(sit-for 3) -	(let ((desc (spookfox-js-injection-eval-in-active-tab -							 "document.querySelector('.video-info-description-html').innerHTML" t))) -		(when (string-match (rx (literal emacsconf-base-url) (literal emacsconf-year) "/talks/" -														(group (1+ (not (or " " "/" "\""))))) -												desc) -			(let ((slug (match-string 1 desc)) -						(url (spookfox-js-injection-eval-in-active-tab "window.location.href" t))) -				(save-window-excursion -					(emacsconf-with-talk-heading slug -						(org-entry-put (point) -													 (if (string-match "Q&A" desc) -															 "QA_TOOBNIX_URL" -														 "TOOBNIX_URL") -													 url) -						(message "Updating %s %s %s" -										 slug -										 (if (string-match "Q&A" desc) -												 "QA_TOOBNIX_URL" -											 "TOOBNIX_URL") -										 url)))) -			(shell-command "xdotool key Alt+Tab sleep 1 key Ctrl+w Alt+Tab")))) +	(emacsconf-extract-toobnix-store-url) +	(shell-command "xdotool key Alt+Tab sleep 1 key Ctrl+w Alt+Tab"))  (provide 'emacsconf-extract)  ;;; emacsconf-extract.el ends here  | 
