summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--2022/organizers-notebook/index.org72
1 files changed, 68 insertions, 4 deletions
diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org
index eb680a08..914d017b 100644
--- a/2022/organizers-notebook/index.org
+++ b/2022/organizers-notebook/index.org
@@ -3757,13 +3757,14 @@ Throw an error if ERROR is non-nil, skip otherwise."
#+end_src
** Prerecs
*** Receive notification when new prerecs are available
-#+begin_src sh :eval no :tangle prerecs-wait-new.sh
+#+begin_src sh :eval no :tangle prerecs-check-new.sh
#!/usr/bin/env sh
+set -eu
+
sleep_duration=600
data="$(basename "$0" ".sh").data"
-touch "$data"
plural () {
if [ "$2" = 1 ] || [ "$2" = -1 ]; then
@@ -3804,6 +3805,29 @@ _sleep() {
sleep "$sleep_duration"
}
+fetch() {
+ TERM=xterm ssh orga@media.emacsconf.org -- ls -1 /srv/upload | wc -l
+}
+
+clean() {
+ rm -f "$data"
+ log "Data file has been cleaned"
+}
+
+if [ "$#" -gt 0 ]; then
+ command="$1"
+ if [ "$command" = "clean" ]; then
+ clean
+ exit 0
+ fi
+
+ if [ "$command" = "clean-start" ]; then
+ clean
+ fi
+fi
+
+touch "$data"
+
log2 "Currently waiting for prerec"
while true; do
@@ -3812,12 +3836,12 @@ while true; do
while true; do
log "Checking..."
- prerecs_number_current="$(TERM=xterm ssh orga@media.emacsconf.org -- ls -1 /srv/upload | wc -l)"
+ prerecs_number_current="$(fetch)"
diff=$((prerecs_number_current - prerecs_number_past))
if [ $diff -gt 0 ]; then
break
fi
- log "No new prerec."
+ log "No new prerec"
_sleep
done
@@ -3828,8 +3852,48 @@ while true; do
_sleep
done
#+end_src
+*** Fetch upload data
+#+begin_src sh :eval no :tangle prerecs-fetch-upload-data.sh
+#!/usr/bin/env sh
+set -eu
+current_time() {
+ date +"[%T]"
+}
+
+log() {
+ printf "%s $1\n" "$(current_time)"
+}
+
+if [ -t 0 ]; then
+ log "Fetching data..."
+fi
+
+TERM=xterm ssh orga@media.emacsconf.org -- cat /srv/upload/*/*json
+#+end_src
+*** Fetch new talk data formatted
+#+begin_src sh :eval no :tangle prerecs-fetch-new.sh
+#!/usr/bin/env sh
+
+set -eu
+
+echo "Fetching data..."
+data_raw="$(./fetch-upload-data.sh)"
+
+echo
+
+echo "$data_raw" | awk "$(cat << EOF
+func dewrap(a) {gsub(/^ *".*": "|",$/, "", a); return a};
+BEGIN {i=0};
+/^ "sid"/ { a[0] = dewrap(\$0); };
+/^ "name"/ { a[2] = sprintf("%s\t", dewrap(\$0)) };
+/^ "comment"/ { a[3] = sprintf("%s\t", dewrap(\$0)); if (a[3] == "\t"){a[3] = "No comment"} };
+/^ "key"/ { a[1] = dewrap(\$0); };
+/^\}/ { printf "[%d]\t%s\t%s\t%s\n\t%s\n\n", i, a[0], a[1], a[2], a[3]; i=i+1};
+EOF
+ )"
+#+end_src
** Publish this page
#+begin_src emacs-lisp
(defun emacsconf-org-publish-this-page ()