diff --git a/Configs/HUFO/blockplan.yml b/Configs/HUFO/blockplan.yml index 20b4eb2..00b6ed3 100644 --- a/Configs/HUFO/blockplan.yml +++ b/Configs/HUFO/blockplan.yml @@ -1,6 +1,34 @@ default: + blocks: + - default + - student_pieces + - default + - default + +monday: blocks: - block_a - student_pieces + - block_a + - block_a + +wednesday: + blocks: - block_b + - block_b + - student_pieces + - block_b + +thursday: + blocks: - block_a + - student_pieces + - block_a + - block_a + +friday: + blocks: + - block_b + - student_pieces + - block_b + - block_b diff --git a/Configs/HUFO/blocks/block_a.yml b/Configs/HUFO/blocks/block_a.yml index eb0b93a..2fc2c2f 100644 --- a/Configs/HUFO/blocks/block_a.yml +++ b/Configs/HUFO/blocks/block_a.yml @@ -1,15 +1,15 @@ -block_a: - length: 170 - track_padding: 10 - tracks: - - trailer - - datenerhebung - - pune - - brunnen - - sufi - - iwillnotweep - - trailer - - oksus - - liquidcontinent - - thepassage - - doublefeedback +name: block_a +length: 170 +track_padding: 10 +tracks: + - trailer + - pune + - brunnen + - sufi + - datenerhebung + - iwillnotweep + - trailer + - oksus + - liquidcontinent + - thepassage + - doublefeedback diff --git a/Configs/HUFO/blocks/block_b.yml b/Configs/HUFO/blocks/block_b.yml index b7d1b7d..c80787d 100644 --- a/Configs/HUFO/blocks/block_b.yml +++ b/Configs/HUFO/blocks/block_b.yml @@ -1,15 +1,15 @@ -block_b: - length: 170 - track_padding: 10 - tracks: - - trailer - - transformation - - thepassage - - pune - - brunnen - - sufi - - iwillnotweep - - trailer - - oksus - - liquidcontinent - - doublefeedback +name: block_b +length: 170 +track_padding: 10 +tracks: + - trailer + - pune + - brunnen + - sufi + - iwillnotweep + - trailer + - oksus + - liquidcontinent + - thepassage + - doublefeedback + - transformation diff --git a/Configs/HUFO/blocks/default.yml b/Configs/HUFO/blocks/default.yml index e554009..cb52bd8 100644 --- a/Configs/HUFO/blocks/default.yml +++ b/Configs/HUFO/blocks/default.yml @@ -1,16 +1,16 @@ -default: - length: 170 - track_padding: 10 - tracks: - - trailer - - pune - - brunnen - - sufi - - datenerhebung - - iwillnotweep - - trailer - - oksus - - liquidcontinent - - thepassage - - doublefeedback - - transformation +name: default +length: 170 +track_padding: 10 +tracks: + - trailer + - pune + - brunnen + - sufi + - datenerhebung + - iwillnotweep + - trailer + - oksus + - liquidcontinent + - thepassage + - doublefeedback + - transformation diff --git a/Configs/HUFO/blocks/elektroakustisch.yml b/Configs/HUFO/blocks/elektroakustisch.yml index 6d9cc3e..b0c931a 100644 --- a/Configs/HUFO/blocks/elektroakustisch.yml +++ b/Configs/HUFO/blocks/elektroakustisch.yml @@ -1,6 +1,6 @@ -elektroakustisch: - length: 31 - track_padding: 10 - tracks: - - oksus - - thepassage +name: elektroakustisch +length: 31 +track_padding: 10 +tracks: + - oksus + - thepassage diff --git a/Configs/HUFO/blocks/soundscape.yml b/Configs/HUFO/blocks/soundscape.yml index 669f963..7a467fb 100644 --- a/Configs/HUFO/blocks/soundscape.yml +++ b/Configs/HUFO/blocks/soundscape.yml @@ -1,14 +1,14 @@ -soundscape: - length: 140 - track_padding: 10 - tracks: - - trailer - - brunnen - - sufi - - datenerhebung - - iwillnotweep - - trailer - - pune - - liquidcontinent - - doublefeedback - - transformation +name: soundscape +length: 140 +track_padding: 10 +tracks: + - trailer + - brunnen + - sufi + - datenerhebung + - iwillnotweep + - trailer + - pune + - liquidcontinent + - doublefeedback + - transformation diff --git a/Configs/HUFO/blocks/student_pieces.yml b/Configs/HUFO/blocks/student_pieces.yml index 911a863..cac7efd 100644 --- a/Configs/HUFO/blocks/student_pieces.yml +++ b/Configs/HUFO/blocks/student_pieces.yml @@ -1,6 +1,6 @@ -student_pieces: - length: 28 - track_padding: 10 - tracks: - - wasserwelten - - sculpturalbeatings +name: student_pieces +length: 28 +track_padding: 10 +tracks: + - wasserwelten + - sculpturalbeatings diff --git a/Configs/HUFO/schedule.yml b/Configs/HUFO/schedule.yml index 9a92add..f7d18d5 100644 --- a/Configs/HUFO/schedule.yml +++ b/Configs/HUFO/schedule.yml @@ -1,189 +1,952 @@ - audio_index: 1 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 1,5,6 hour: 10 minute: 40 second: 0 video_index: 0 +- audio_index: 13 + command: play + day_of_week: 1,5,6 + hour: 10 + minute: 45 + second: 0 + video_index: 12 +- audio_index: 2 + command: play + day_of_week: 1,5,6 + hour: 11 + minute: 10 + second: 0 + video_index: 1 +- audio_index: 3 + command: play + day_of_week: 1,5,6 + hour: 11 + minute: 30 + second: 0 + video_index: 2 - audio_index: 5 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 1,5,6 + hour: 11 + minute: 50 + second: 0 + video_index: 3 +- audio_index: 13 + command: play + day_of_week: 1,5,6 + hour: 12 + minute: 15 + second: 0 + video_index: 4 +- audio_index: 1 + command: play + day_of_week: 1,5,6 + hour: 12 + minute: 35 + second: 0 + video_index: 0 +- audio_index: 4 + command: play + day_of_week: 1,5,6 + hour: 12 + minute: 40 + second: 0 + video_index: 5 +- audio_index: 7 + command: play + day_of_week: 1,5,6 + hour: 13 + minute: 0 + second: 0 + video_index: 6 +- audio_index: 9 + command: play + day_of_week: 1,5,6 + hour: 13 + minute: 20 + second: 0 + video_index: 7 +- audio_index: 8 + command: play + day_of_week: 1,5,6 + hour: 13 + minute: 45 + second: 0 + video_index: 8 +- audio_index: 10 + command: play + day_of_week: 1,5,6 + hour: 14 + minute: 5 + second: 0 + video_index: 9 +- audio_index: 12 + command: play + day_of_week: 1,5,6 + hour: 14 + minute: 15 + second: 0 + video_index: 11 +- audio_index: 11 + command: play + day_of_week: 1,5,6 + hour: 14 + minute: 25 + second: 0 + video_index: 10 +- audio_index: 1 + command: play + day_of_week: 1,5,6 + hour: 14 + minute: 45 + second: 0 + video_index: 0 +- audio_index: 13 + command: play + day_of_week: 1,5,6 + hour: 14 + minute: 50 + second: 0 + video_index: 12 +- audio_index: 2 + command: play + day_of_week: 1,5,6 + hour: 15 + minute: 15 + second: 0 + video_index: 1 +- audio_index: 3 + command: play + day_of_week: 1,5,6 + hour: 15 + minute: 35 + second: 0 + video_index: 2 +- audio_index: 5 + command: play + day_of_week: 1,5,6 + hour: 15 + minute: 55 + second: 0 + video_index: 3 +- audio_index: 6 + command: play + day_of_week: 1,5,6 + hour: 16 + minute: 20 + second: 0 + video_index: 4 +- audio_index: 1 + command: play + day_of_week: 1,5,6 + hour: 16 + minute: 40 + second: 0 + video_index: 0 +- audio_index: 10 + command: play + day_of_week: 1,5,6 + hour: 16 + minute: 45 + second: 0 + video_index: 5 +- audio_index: 7 + command: play + day_of_week: 1,5,6 + hour: 17 + minute: 5 + second: 0 + video_index: 6 +- audio_index: 9 + command: play + day_of_week: 1,5,6 + hour: 17 + minute: 25 + second: 0 + video_index: 7 +- audio_index: 8 + command: play + day_of_week: 1,5,6 + hour: 17 + minute: 50 + second: 0 + video_index: 8 +- audio_index: 10 + command: play + day_of_week: 1,5,6 + hour: 18 + minute: 10 + second: 0 + video_index: 9 +- audio_index: 1 + command: play + day_of_week: 1,5,6 + hour: 18 + minute: 20 + second: 0 + video_index: 0 +- audio_index: 13 + command: play + day_of_week: 1,5,6 + hour: 18 + minute: 25 + second: 0 + video_index: 12 +- audio_index: 1 + command: play + day_of_week: 0 + hour: 10 + minute: 40 + second: 0 + video_index: 0 +- audio_index: 13 + command: play + day_of_week: 0 + hour: 10 + minute: 45 + second: 0 + video_index: 12 +- audio_index: 2 + command: play + day_of_week: 0 + hour: 11 + minute: 10 + second: 0 + video_index: 1 +- audio_index: 3 + command: play + day_of_week: 0 + hour: 11 + minute: 30 + second: 0 + video_index: 2 +- audio_index: 5 + command: play + day_of_week: 0 + hour: 11 + minute: 50 + second: 0 + video_index: 3 +- audio_index: 6 + command: play + day_of_week: 0 + hour: 12 + minute: 15 + second: 0 + video_index: 4 +- audio_index: 1 + command: play + day_of_week: 0 + hour: 12 + minute: 35 + second: 0 + video_index: 0 +- audio_index: 4 + command: play + day_of_week: 0 + hour: 12 + minute: 40 + second: 0 + video_index: 5 +- audio_index: 7 + command: play + day_of_week: 0 + hour: 13 + minute: 0 + second: 0 + video_index: 6 +- audio_index: 9 + command: play + day_of_week: 0 + hour: 13 + minute: 20 + second: 0 + video_index: 7 +- audio_index: 8 + command: play + day_of_week: 0 + hour: 13 + minute: 45 + second: 0 + video_index: 8 +- audio_index: 12 + command: play + day_of_week: 0 + hour: 14 + minute: 5 + second: 0 + video_index: 11 +- audio_index: 11 + command: play + day_of_week: 0 + hour: 14 + minute: 15 + second: 0 + video_index: 10 +- audio_index: 1 + command: play + day_of_week: 0 + hour: 14 + minute: 35 + second: 0 + video_index: 0 +- audio_index: 13 + command: play + day_of_week: 0 + hour: 14 + minute: 40 + second: 0 + video_index: 12 +- audio_index: 2 + command: play + day_of_week: 0 + hour: 15 + minute: 5 + second: 0 + video_index: 1 +- audio_index: 3 + command: play + day_of_week: 0 + hour: 15 + minute: 25 + second: 0 + video_index: 2 +- audio_index: 5 + command: play + day_of_week: 0 + hour: 15 + minute: 45 + second: 0 + video_index: 3 +- audio_index: 13 + command: play + day_of_week: 0 + hour: 16 + minute: 10 + second: 0 + video_index: 4 +- audio_index: 1 + command: play + day_of_week: 0 + hour: 16 + minute: 30 + second: 0 + video_index: 0 +- audio_index: 4 + command: play + day_of_week: 0 + hour: 16 + minute: 35 + second: 0 + video_index: 5 +- audio_index: 7 + command: play + day_of_week: 0 + hour: 16 + minute: 55 + second: 0 + video_index: 6 +- audio_index: 9 + command: play + day_of_week: 0 + hour: 17 + minute: 15 + second: 0 + video_index: 7 +- audio_index: 8 + command: play + day_of_week: 0 + hour: 17 + minute: 40 + second: 0 + video_index: 8 +- audio_index: 1 + command: play + day_of_week: 0 + hour: 18 + minute: 0 + second: 0 + video_index: 0 +- audio_index: 13 + command: play + day_of_week: 0 + hour: 18 + minute: 5 + second: 0 + video_index: 12 +- audio_index: 1 + command: play + day_of_week: 2 + hour: 10 + minute: 40 + second: 0 + video_index: 0 +- audio_index: 13 + command: play + day_of_week: 2 + hour: 10 + minute: 45 + second: 0 + video_index: 12 +- audio_index: 2 + command: play + day_of_week: 2 + hour: 11 + minute: 10 + second: 0 + video_index: 1 +- audio_index: 3 + command: play + day_of_week: 2 + hour: 11 + minute: 30 + second: 0 + video_index: 2 +- audio_index: 6 + command: play + day_of_week: 2 + hour: 11 + minute: 50 + second: 0 + video_index: 4 +- audio_index: 1 + command: play + day_of_week: 2 + hour: 12 + minute: 10 + second: 0 + video_index: 0 +- audio_index: 4 + command: play + day_of_week: 2 + hour: 12 + minute: 15 + second: 0 + video_index: 5 +- audio_index: 7 + command: play + day_of_week: 2 + hour: 12 + minute: 35 + second: 0 + video_index: 6 +- audio_index: 9 + command: play + day_of_week: 2 + hour: 12 + minute: 55 + second: 0 + video_index: 7 +- audio_index: 8 + command: play + day_of_week: 2 + hour: 13 + minute: 20 + second: 0 + video_index: 8 +- audio_index: 10 + command: play + day_of_week: 2 + hour: 13 + minute: 40 + second: 0 + video_index: 9 +- audio_index: 1 + command: play + day_of_week: 2 + hour: 13 + minute: 50 + second: 0 + video_index: 0 +- audio_index: 13 + command: play + day_of_week: 2 + hour: 13 + minute: 55 + second: 0 + video_index: 12 +- audio_index: 2 + command: play + day_of_week: 2 + hour: 14 + minute: 20 + second: 0 + video_index: 1 +- audio_index: 3 + command: play + day_of_week: 2 + hour: 14 + minute: 40 + second: 0 + video_index: 2 +- audio_index: 6 + command: play + day_of_week: 2 + hour: 15 + minute: 0 + second: 0 + video_index: 4 +- audio_index: 1 + command: play + day_of_week: 2 + hour: 15 + minute: 20 + second: 0 + video_index: 0 +- audio_index: 4 + command: play + day_of_week: 2 + hour: 15 + minute: 25 + second: 0 + video_index: 5 +- audio_index: 7 + command: play + day_of_week: 2 + hour: 15 + minute: 45 + second: 0 + video_index: 6 +- audio_index: 9 + command: play + day_of_week: 2 + hour: 16 + minute: 5 + second: 0 + video_index: 7 +- audio_index: 8 + command: play + day_of_week: 2 + hour: 16 + minute: 30 + second: 0 + video_index: 8 +- audio_index: 10 + command: play + day_of_week: 2 + hour: 16 + minute: 50 + second: 0 + video_index: 9 +- audio_index: 12 + command: play + day_of_week: 2 + hour: 17 + minute: 0 + second: 0 + video_index: 11 +- audio_index: 11 + command: play + day_of_week: 2 + hour: 17 + minute: 10 + second: 0 + video_index: 10 +- audio_index: 1 + command: play + day_of_week: 2 + hour: 17 + minute: 30 + second: 0 + video_index: 0 +- audio_index: 13 + command: play + day_of_week: 2 + hour: 17 + minute: 35 + second: 0 + video_index: 12 +- audio_index: 2 + command: play + day_of_week: 2 + hour: 18 + minute: 0 + second: 0 + video_index: 1 +- audio_index: 3 + command: play + day_of_week: 2 + hour: 18 + minute: 20 + second: 0 + video_index: 2 +- audio_index: 1 + command: play + day_of_week: 3 hour: 10 - minute: 45 + minute: 40 second: 0 - video_index: 3 + video_index: 0 - audio_index: 13 command: play - day_of_week: 0,1,2,3,4,5,6 - hour: 11 - minute: 10 + day_of_week: 3 + hour: 10 + minute: 45 second: 0 video_index: 12 - audio_index: 2 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 11 - minute: 35 + minute: 10 second: 0 video_index: 1 - audio_index: 3 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 11 - minute: 55 + minute: 30 second: 0 video_index: 2 +- audio_index: 5 + command: play + day_of_week: 3 + hour: 11 + minute: 50 + second: 0 + video_index: 3 - audio_index: 6 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 12 minute: 15 second: 0 video_index: 4 - audio_index: 1 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 12 minute: 35 second: 0 video_index: 0 - audio_index: 4 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 12 minute: 40 second: 0 video_index: 5 - audio_index: 7 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 13 minute: 0 second: 0 video_index: 6 - audio_index: 9 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 13 minute: 20 second: 0 video_index: 7 - audio_index: 8 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 13 minute: 45 second: 0 video_index: 8 - audio_index: 12 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 14 minute: 5 second: 0 video_index: 11 - audio_index: 11 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 14 minute: 15 second: 0 video_index: 10 - audio_index: 1 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 14 minute: 35 second: 0 video_index: 0 -- audio_index: 10 +- audio_index: 13 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 3 hour: 14 minute: 40 second: 0 - video_index: 9 + video_index: 12 +- audio_index: 2 + command: play + day_of_week: 3 + hour: 15 + minute: 5 + second: 0 + video_index: 1 +- audio_index: 3 + command: play + day_of_week: 3 + hour: 15 + minute: 25 + second: 0 + video_index: 2 +- audio_index: 5 + command: play + day_of_week: 3 + hour: 15 + minute: 45 + second: 0 + video_index: 3 +- audio_index: 6 + command: play + day_of_week: 3 + hour: 16 + minute: 10 + second: 0 + video_index: 4 +- audio_index: 1 + command: play + day_of_week: 3 + hour: 16 + minute: 30 + second: 0 + video_index: 0 +- audio_index: 4 + command: play + day_of_week: 3 + hour: 16 + minute: 35 + second: 0 + video_index: 5 +- audio_index: 7 + command: play + day_of_week: 3 + hour: 16 + minute: 55 + second: 0 + video_index: 6 - audio_index: 9 command: play - day_of_week: 0,1,2,3,4,5,6 - hour: 14 - minute: 50 + day_of_week: 3 + hour: 17 + minute: 15 second: 0 video_index: 7 +- audio_index: 8 + command: play + day_of_week: 3 + hour: 17 + minute: 40 + second: 0 + video_index: 8 +- audio_index: 1 + command: play + day_of_week: 3 + hour: 18 + minute: 0 + second: 0 + video_index: 0 - audio_index: 13 command: play - day_of_week: 0,1,2,3,4,5,6 - hour: 15 - minute: 15 + day_of_week: 3 + hour: 18 + minute: 5 second: 0 video_index: 12 -- audio_index: 2 +- audio_index: 1 command: play - day_of_week: 0,1,2,3,4,5,6 - hour: 15 + day_of_week: 4 + hour: 10 minute: 40 second: 0 + video_index: 0 +- audio_index: 13 + command: play + day_of_week: 4 + hour: 10 + minute: 45 + second: 0 + video_index: 12 +- audio_index: 2 + command: play + day_of_week: 4 + hour: 11 + minute: 10 + second: 0 video_index: 1 - audio_index: 3 command: play - day_of_week: 0,1,2,3,4,5,6 - hour: 16 - minute: 0 + day_of_week: 4 + hour: 11 + minute: 30 second: 0 video_index: 2 - audio_index: 6 command: play - day_of_week: 0,1,2,3,4,5,6 - hour: 16 - minute: 20 + day_of_week: 4 + hour: 11 + minute: 50 second: 0 video_index: 4 - audio_index: 1 command: play - day_of_week: 0,1,2,3,4,5,6 - hour: 16 + day_of_week: 4 + hour: 12 + minute: 10 + second: 0 + video_index: 0 +- audio_index: 4 + command: play + day_of_week: 4 + hour: 12 + minute: 15 + second: 0 + video_index: 5 +- audio_index: 7 + command: play + day_of_week: 4 + hour: 12 + minute: 35 + second: 0 + video_index: 6 +- audio_index: 9 + command: play + day_of_week: 4 + hour: 12 + minute: 55 + second: 0 + video_index: 7 +- audio_index: 8 + command: play + day_of_week: 4 + hour: 13 + minute: 20 + second: 0 + video_index: 8 +- audio_index: 10 + command: play + day_of_week: 4 + hour: 13 minute: 40 second: 0 + video_index: 9 +- audio_index: 12 + command: play + day_of_week: 4 + hour: 13 + minute: 50 + second: 0 + video_index: 11 +- audio_index: 11 + command: play + day_of_week: 4 + hour: 14 + minute: 0 + second: 0 + video_index: 10 +- audio_index: 1 + command: play + day_of_week: 4 + hour: 14 + minute: 20 + second: 0 + video_index: 0 +- audio_index: 13 + command: play + day_of_week: 4 + hour: 14 + minute: 25 + second: 0 + video_index: 12 +- audio_index: 2 + command: play + day_of_week: 4 + hour: 14 + minute: 50 + second: 0 + video_index: 1 +- audio_index: 3 + command: play + day_of_week: 4 + hour: 15 + minute: 10 + second: 0 + video_index: 2 +- audio_index: 6 + command: play + day_of_week: 4 + hour: 15 + minute: 30 + second: 0 + video_index: 4 +- audio_index: 1 + command: play + day_of_week: 4 + hour: 15 + minute: 50 + second: 0 video_index: 0 - audio_index: 4 command: play - day_of_week: 0,1,2,3,4,5,6 - hour: 16 - minute: 45 + day_of_week: 4 + hour: 15 + minute: 55 second: 0 video_index: 5 - audio_index: 7 command: play - day_of_week: 0,1,2,3,4,5,6 - hour: 17 - minute: 5 + day_of_week: 4 + hour: 16 + minute: 15 second: 0 video_index: 6 +- audio_index: 9 + command: play + day_of_week: 4 + hour: 16 + minute: 35 + second: 0 + video_index: 7 - audio_index: 8 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 4 hour: 17 - minute: 25 + minute: 0 second: 0 video_index: 8 +- audio_index: 10 + command: play + day_of_week: 4 + hour: 17 + minute: 20 + second: 0 + video_index: 9 - audio_index: 1 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 4 hour: 17 - minute: 45 + minute: 30 second: 0 video_index: 0 -- audio_index: 5 +- audio_index: 13 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 4 hour: 17 - minute: 50 + minute: 35 second: 0 - video_index: 3 -- audio_index: 13 + video_index: 12 +- audio_index: 2 command: play - day_of_week: 0,1,2,3,4,5,6 + day_of_week: 4 hour: 18 - minute: 15 + minute: 0 second: 0 - video_index: 12 + video_index: 1 +- audio_index: 3 + command: play + day_of_week: 4 + hour: 18 + minute: 20 + second: 0 + video_index: 2 diff --git a/Configs/HUFO/tracks/brunnen.yml b/Configs/HUFO/tracks/brunnen.yml index d92d947..1ba4c38 100644 --- a/Configs/HUFO/tracks/brunnen.yml +++ b/Configs/HUFO/tracks/brunnen.yml @@ -1,11 +1,10 @@ -brunnen: - title: Brunnen der Sonne - title_en: Well of the Sun - audio_index: 2 - video_index: 1 - duration: - minutes: 16 - seconds: 14 - description: > - Brunnen blär - +name: brunnen +title: Brunnen der Sonne +title_en: Well of the Sun +audio_index: 2 +video_index: 1 +duration: + minutes: 16 + seconds: 14 +description: > + Brunnen blär diff --git a/Configs/HUFO/tracks/datenerhebung.yml b/Configs/HUFO/tracks/datenerhebung.yml index 0a8ac4d..99734f2 100644 --- a/Configs/HUFO/tracks/datenerhebung.yml +++ b/Configs/HUFO/tracks/datenerhebung.yml @@ -1,10 +1,10 @@ -datenerhebung: - title: Korea Datenerhebung - title_en: Korea data collection - audio_index: 5 - video_index: 3 - duration: - minutes: 20 - seconds: 0 - description: > - Korea +name: datenerhebung +title: Korea Datenerhebung +title_en: Korea data collection +audio_index: 5 +video_index: 3 +duration: + minutes: 20 + seconds: 0 +description: > + Korea diff --git a/Configs/HUFO/tracks/doublefeedback.yml b/Configs/HUFO/tracks/doublefeedback.yml index c61a439..50df011 100644 --- a/Configs/HUFO/tracks/doublefeedback.yml +++ b/Configs/HUFO/tracks/doublefeedback.yml @@ -1,10 +1,10 @@ -doublefeedback: - title: Double Feedback - title_en: Double Feedback - audio_index: 8 - video_index: 8 - duration: - minutes: 19 - seconds: 50 - description: > - Double Feedback +name: doublefeedback +title: Double Feedback +title_en: Double Feedback +audio_index: 8 +video_index: 8 +duration: + minutes: 19 + seconds: 50 +description: > + Double Feedback diff --git a/Configs/HUFO/tracks/iwillnotweep.yml b/Configs/HUFO/tracks/iwillnotweep.yml index b3ed0d8..4dc5030 100644 --- a/Configs/HUFO/tracks/iwillnotweep.yml +++ b/Configs/HUFO/tracks/iwillnotweep.yml @@ -1,10 +1,10 @@ -iwillnotweep: - title: I Will Not Weep - title_en: I Will Not Weep - audio_index: 6 - video_index: 4 - duration: - minutes: 19 - seconds: 30 - description: > - I Will Not Weep +name: iwillnotweep +title: I Will Not Weep +title_en: I Will Not Weep +audio_index: 6 +video_index: 4 +duration: + minutes: 19 + seconds: 30 +description: > + I Will Not Weep diff --git a/Configs/HUFO/tracks/liquidcontinent.yml b/Configs/HUFO/tracks/liquidcontinent.yml index dda12f2..a9c3e8b 100644 --- a/Configs/HUFO/tracks/liquidcontinent.yml +++ b/Configs/HUFO/tracks/liquidcontinent.yml @@ -1,10 +1,10 @@ -liquidcontinent: - title: Liquid Continent - title_en: Liquid Continent - audio_index: 7 - video_index: 6 - duration: - minutes: 19 - seconds: 50 - description: > - Liquid Continent +name: liquidcontinent +title: Liquid Continent +title_en: Liquid Continent +audio_index: 7 +video_index: 6 +duration: + minutes: 19 + seconds: 50 +description: > + Liquid Continent diff --git a/Configs/HUFO/tracks/oksus.yml b/Configs/HUFO/tracks/oksus.yml index 7b23f8f..13c01cb 100644 --- a/Configs/HUFO/tracks/oksus.yml +++ b/Configs/HUFO/tracks/oksus.yml @@ -1,10 +1,10 @@ -oksus: - title: Oksus - title_en: Oksus - audio_index: 4 - video_index: 5 - duration: - minutes: 17 - seconds: 29 - description: > - Oksus bäm +name: oksus +title: Oksus +title_en: Oksus +audio_index: 4 +video_index: 5 +duration: + minutes: 17 + seconds: 29 +description: > + Oksus bäm diff --git a/Configs/HUFO/tracks/pune.yml b/Configs/HUFO/tracks/pune.yml index 7b37dc7..c4ea140 100644 --- a/Configs/HUFO/tracks/pune.yml +++ b/Configs/HUFO/tracks/pune.yml @@ -1,10 +1,10 @@ -pune: - title: Pune Metamorphosis - title_en: Pune Metamorphosis - audio_index: 13 - video_index: 12 - duration: - minutes: 20 - seconds: 18 - description: > - Schrebreibung +name: pune +title: Pune Metamorphosis +title_en: Pune Metamorphosis +audio_index: 13 +video_index: 12 +duration: + minutes: 20 + seconds: 18 +description: > + Schrebreibung diff --git a/Configs/HUFO/tracks/sculpturalbeatings.yml b/Configs/HUFO/tracks/sculpturalbeatings.yml index f0e2fb4..c49945e 100644 --- a/Configs/HUFO/tracks/sculpturalbeatings.yml +++ b/Configs/HUFO/tracks/sculpturalbeatings.yml @@ -1,10 +1,10 @@ -sculpturalbeatings: - title: Skulpturale Schwebungen - title_en: Sculptural Beatings - audio_index: 11 - video_index: 10 - duration: - minutes: 15 - seconds: 12 - description: > - Skulpturale Schwebungen schweben Skulptural +name: sculpturalbeatings +title: Skulpturale Schwebungen +title_en: Sculptural Beatings +audio_index: 11 +video_index: 10 +duration: + minutes: 15 + seconds: 12 +description: > + Skulpturale Schwebungen schweben Skulptural diff --git a/Configs/HUFO/tracks/sufi.yml b/Configs/HUFO/tracks/sufi.yml index a0f8807..9459d1a 100644 --- a/Configs/HUFO/tracks/sufi.yml +++ b/Configs/HUFO/tracks/sufi.yml @@ -1,10 +1,10 @@ -sufi: - title: Sufi Sonics - title_en: Sufi Sonics - audio_index: 3 - video_index: 2 - duration: - minutes: 19 - seconds: 5 - description: > - Sufi lalala +name: sufi +title: Sufi Sonics +title_en: Sufi Sonics +audio_index: 3 +video_index: 2 +duration: + minutes: 19 + seconds: 5 +description: > + Sufi lalala diff --git a/Configs/HUFO/tracks/thepassage.yml b/Configs/HUFO/tracks/thepassage.yml index 35aeaa4..5b05254 100644 --- a/Configs/HUFO/tracks/thepassage.yml +++ b/Configs/HUFO/tracks/thepassage.yml @@ -1,10 +1,10 @@ -thepassage: - title: The Passage - title_en: The Passage - audio_index: 9 - video_index: 7 - duration: - minutes: 19 - seconds: 56 - description: > - The Passage +name: thepassage +title: The Passage +title_en: The Passage +audio_index: 9 +video_index: 7 +duration: + minutes: 19 + seconds: 56 +description: > + The Passage diff --git a/Configs/HUFO/tracks/trailer.yml b/Configs/HUFO/tracks/trailer.yml index ecd3425..ca860dd 100644 --- a/Configs/HUFO/tracks/trailer.yml +++ b/Configs/HUFO/tracks/trailer.yml @@ -1,11 +1,11 @@ -trailer: - title: Trailer - title_en: Trailer - audio_index: 1 - video_index: 0 - duration: - minutes: 3 - seconds: 0 - description: > - Blabla - blablabla +name: trailer +title: Trailer +title_en: Trailer +audio_index: 1 +video_index: 0 +duration: + minutes: 3 + seconds: 0 +description: > + Blabla + blablabla diff --git a/Configs/HUFO/tracks/transformation.yml b/Configs/HUFO/tracks/transformation.yml index c38e702..7deeaec 100644 --- a/Configs/HUFO/tracks/transformation.yml +++ b/Configs/HUFO/tracks/transformation.yml @@ -1,10 +1,10 @@ -transformation: - title: Transformation - title_en: Transformation - audio_index: 10 - video_index: 9 - duration: - minutes: 9 - seconds: 0 - description: > - Transformation +name: transformation +title: Transformation +title_en: Transformation +audio_index: 10 +video_index: 9 +duration: + minutes: 9 + seconds: 0 +description: > + Transformation diff --git a/Configs/HUFO/tracks/wasserwelten.yml b/Configs/HUFO/tracks/wasserwelten.yml index d267f93..c6aa51a 100644 --- a/Configs/HUFO/tracks/wasserwelten.yml +++ b/Configs/HUFO/tracks/wasserwelten.yml @@ -1,10 +1,10 @@ -wasserwelten: - title: Wasserwelten - title_en: Worlds of Water - audio_index: 12 - video_index: 11 - duration: - minutes: 8 - seconds: 48 - description: > - Wasser ist Nass, Die Welt ist Wasser => Die Welt ist Nass +name: wasserwelten +title: Wasserwelten +title_en: Worlds of Water +audio_index: 12 +video_index: 11 +duration: + minutes: 8 + seconds: 48 +description: > + Wasser ist Nass, Die Welt ist Wasser => Die Welt ist Nass diff --git a/ShowControl/common.py b/ShowControl/common.py new file mode 100644 index 0000000..b29f009 --- /dev/null +++ b/ShowControl/common.py @@ -0,0 +1,51 @@ +from pathlib import Path +import yaml + + +def read_tracks(track_dir: (str | Path), identifier_is_name=True) -> dict: + """Reads all yaml track files in the specified directory + + Args: + track_dir (str | Path): Directory that contains the track yamls + identifier_is_name (bool, optional): Specifies if the returned dict uses the names of the tracks as the outermost key. If set to False the audio_index is used instead. Defaults to True. + + Raises: + Exception: + + Returns: + dict: Contains all tracks + """ + + track_dir = Path(track_dir) + tracks = {} + for track_file in track_dir.glob("*.yml"): + with open(track_file) as f: + track = yaml.load(f, Loader=yaml.FullLoader) + + if identifier_is_name: + identifier = track["name"] + else: + identifier = track["audio_index"] + + if identifier in tracks: + raise Exception(f"track identifier {identifier} is not unique!") + + tracks[identifier] = track + + return tracks + + +def read_blocks(block_dir) -> dict: + block_dir = Path(block_dir) + + blocks = {} + for block_file in block_dir.glob("*.yml"): + with open(block_file) as f: + block = yaml.load(f, Loader=yaml.FullLoader) + + identifier = block["name"] + if identifier in blocks: + raise Exception(f"Block identifier {identifier} is not unique") + + blocks[identifier] = block + return blocks diff --git a/ShowControl/schedListTxtCreator.py b/ShowControl/schedListTxtCreator.py index 5623eab..dd08ca2 100644 --- a/ShowControl/schedListTxtCreator.py +++ b/ShowControl/schedListTxtCreator.py @@ -9,40 +9,15 @@ import glob import os from pathlib import Path +from common import read_tracks + day_names = ["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"] base_path = Path(__file__).parent -def read_tracks(tracks_folder): - """Reads the tracks in the tracks_folder directory - - Raises: - KeyError: _description_ - - Returns: - dict: dict with the tracks, tracks can be accessed by their audio_index - """ - tracks_dir = Path(tracks_folder) - tracks = {} - - # get all yml files - for track_file in tracks_dir.glob("*.yml"): - with open(track_file) as f: - track_conf = yaml.load(f, Loader=yaml.FullLoader) - - # get rid of the useless outer most key - track_dict = track_conf[list(track_conf.keys())[0]] - if track_dict["audio_index"] in tracks: - raise KeyError(f'audio index of track {track_dict["title"]} is not unique') - - # Add track to tracks dict - tracks[track_dict["audio_index"]] = track_dict - return tracks - - def create_alternative_schedule(input_file, output_file, tracks_folder): - tracks = read_tracks(tracks_folder) + tracks = read_tracks(tracks_folder, identifier_is_name=False) with open(input_file, "r") as f: schedule = yaml.safe_load(f) diff --git a/ShowControl/schedcontrol.py b/ShowControl/schedcontrol.py index 9e4ad86..00d4572 100644 --- a/ShowControl/schedcontrol.py +++ b/ShowControl/schedcontrol.py @@ -10,6 +10,8 @@ import time from pathlib import Path +from common import read_tracks + server = OSCThreadServer() @@ -200,17 +202,7 @@ def generate_track_list(self): Raises: KeyError: Raised when a track id is not unique """ - self.tracks = {} - for track_file in self.tracks_dir.iterdir(): - with open(track_file) as f: - track_conf = yaml.load(f, Loader=yaml.FullLoader) - - # check that the track id is unique - if list(track_conf.keys())[0] in self.tracks: - raise KeyError(f"Track id {list(track_conf.keys())[0]} is not unique!") - - # Add track to tracks dict - self.tracks.update(track_conf) + self.tracks = read_tracks(self.tracks_dir, identifier_is_name=True) def get_scheduled_tracks(self, n_tracks=20): """Returns the next n_tracks scheduled tracks. diff --git a/ShowControl/schedule_generator.py b/ShowControl/schedule_generator.py index 226bc2a..1edae0c 100644 --- a/ShowControl/schedule_generator.py +++ b/ShowControl/schedule_generator.py @@ -4,6 +4,7 @@ from pathlib import Path import logging from schedListTxtCreator import create_readable_txt, create_alternative_schedule +from common import read_blocks, read_tracks log = logging.getLogger() @@ -45,26 +46,15 @@ def round_up_time(timestamp: datetime, round_to_minutes=5): def main(): - track_files = "" - block_files = "" - # load tracks - for file in os.listdir(path_config / "tracks"): - if file.endswith(".yml"): - with open(path_config / "tracks" / file) as f: - track_files += f.read() - tracks = yaml.load(track_files, Loader=yaml.FullLoader) - + tracks = read_tracks(path_config / "tracks") + print(tracks) # load blocks - for file in os.listdir(path_config / "blocks"): - if file.endswith(".yml"): - with open(path_config / "blocks" / file) as f: - block_files += f.read() - blocks = yaml.load(block_files, Loader=yaml.FullLoader) + blocks = read_blocks(path_config / "blocks") # load block plan with open(path_config / "blockplan.yml") as f: - blockplan = yaml.load(f.read(), Loader=yaml.FullLoader) + blockplan = yaml.load(f, Loader=yaml.FullLoader) # find days with explicit schedules days_explicit_schedule = set(blockplan.keys()) - set(["default"]) diff --git a/ShowControl/webcontrol/showcontrol.py b/ShowControl/webcontrol/showcontrol.py index 5c1330f..82378ab 100644 --- a/ShowControl/webcontrol/showcontrol.py +++ b/ShowControl/webcontrol/showcontrol.py @@ -1,6 +1,4 @@ -from flask import ( - Blueprint, flash, g, redirect, render_template, request, url_for -) +from flask import Blueprint, flash, g, redirect, render_template, request, url_for from werkzeug.exceptions import abort from threading import Thread @@ -8,33 +6,49 @@ from webcontrol import schedctrl from webcontrol.auth import login_required from webcontrol.db import get_db -bp = Blueprint('showcontrol', __name__) -@bp.route('/', methods=('GET', 'POST')) +bp = Blueprint("showcontrol", __name__) + + +@bp.route("/", methods=("GET", "POST")) @login_required def showcontrol(): global schedctrl - if request.method == 'POST': + if request.method == "POST": if "pause" in request.form: t = Thread(target=schedctrl.pause, args=(1,)) t.start() if "resume" in request.form: t = Thread(target=schedctrl.pause, args=(0,)) t.start() - print("Scheduler is running: ", schedctrl.sched.state != apscheduler.schedulers.base.STATE_PAUSED) - return render_template('showcontrol/pause.html', state=(schedctrl.sched.state == apscheduler.schedulers.base.STATE_PAUSED), schedule=schedctrl.get_scheduled_tracks()) + print( + "Scheduler is running: ", + schedctrl.sched.state != apscheduler.schedulers.base.STATE_PAUSED, + ) + return render_template( + "showcontrol/pause.html", + state=(schedctrl.sched.state == apscheduler.schedulers.base.STATE_PAUSED), + schedule=schedctrl.get_scheduled_tracks(), + ) -@bp.route('/tracks', methods=('GET', 'POST')) + +@bp.route("/tracks", methods=("GET", "POST")) @login_required def web_tracks(): global schedctrl - if request.method == 'POST': - + if request.method == "POST": track = request.form.get("track") - + if track not in schedctrl.tracks: return "Track not found", 400 schedctrl.play_track(track) - return render_template('showcontrol/tracks.html', tracks=schedctrl.tracks, track_keys=sorted(schedctrl.tracks.keys())) + # Sort track keys by audio index + sorted_track_keys = sorted( + schedctrl.tracks.keys(), key=lambda x: schedctrl.tracks[x]["audio_index"] + ) + # passing keys as a list is needed in the rendering to specify an order of the tracks + return render_template( + "showcontrol/tracks.html", tracks=schedctrl.tracks, track_keys=sorted_track_keys + )