From af72947990ab06ce7f491cffed30f980265b9f9a Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Mon, 11 Jun 2018 22:41:37 +0200 Subject: [PATCH] Rename dg and automate datengarten generation --- datengarten/__init__.py | 97 ++++++++++++++++++ .../artwork/datengarten-alpha.png | Bin {dg => datengarten}/artwork/datengarten.png | Bin {dg => datengarten}/artwork/datengarten.svg | 0 {dg => datengarten}/artwork/datengarten.txt | 0 {dg => datengarten}/artwork/intro.svg | 0 {dg => datengarten}/artwork/outro.svg | 0 {dg => datengarten}/artwork/overlay.png | Bin {dg => datengarten}/artwork/overlay.svg | 0 dg/__init__.py | 62 ----------- 10 files changed, 97 insertions(+), 62 deletions(-) create mode 100644 datengarten/__init__.py rename {dg => datengarten}/artwork/datengarten-alpha.png (100%) rename {dg => datengarten}/artwork/datengarten.png (100%) rename {dg => datengarten}/artwork/datengarten.svg (100%) rename {dg => datengarten}/artwork/datengarten.txt (100%) rename {dg => datengarten}/artwork/intro.svg (100%) rename {dg => datengarten}/artwork/outro.svg (100%) rename {dg => datengarten}/artwork/overlay.png (100%) rename {dg => datengarten}/artwork/overlay.svg (100%) delete mode 100644 dg/__init__.py diff --git a/datengarten/__init__.py b/datengarten/__init__.py new file mode 100644 index 0000000..c1ed7f4 --- /dev/null +++ b/datengarten/__init__.py @@ -0,0 +1,97 @@ +#!/usr/bin/python3 + +from renderlib import * +from easing import * + +scheduleUrl = "https://live.ber.c3voc.de/releases/datengarten/datengarten.xml" + +def introFrames(p): + move=50 + + # 3 Sekunde Text Fadein + frames = 3*fps + for i in range(0, frames): + yield ( + ('text', 'style', 'opacity', "%.4f" % easeLinear(i, 0, 1, frames)), + ('text', 'attr', 'transform', 'translate(%.4f, 0)' % easeOutQuad(i, -move, move, frames)), + ) + + # 2 Sekunden stehen lassen + frames = 2*fps + for i in range(0, frames): + yield () + + # 3 Sekunde Text Fadeout + frames = 3*fps + for i in range(0, frames): + yield ( + ('text', 'style', 'opacity', "%.4f" % easeLinear(i, 1, -1, frames)), + ('text', 'attr', 'transform', 'translate(%.4f, 0)' % easeInQuad(i, 0, move, frames)), + ) + + # two final frames + for i in range(0, 2): + yield ( + ('text', 'style', 'opacity', "%.4f" % 0), + ('text', 'attr', 'transform', 'translate(%.4f, 0)' % move), + ) + +def outroFrames(p): + # 5 Sekunden stehen bleiben + frames = 5*fps + for i in range(0, frames): + yield [] + +def debug(): + render( + 'intro.svg', + '../intro.ts', + introFrames, + { + '$id': 69, + '$title': 'Ethik des Digitalen', + '$person': 'Daniel Domscheit-Berg' + } + ) + + render( + 'outro.svg', + '../outro.ts', + outroFrames + ) + + +def tasks(queue, args, idlist, skiplist): + # iterate over all events extracted from the schedule xml-export + for event in events(scheduleUrl): + if event['room'] not in ('Saal23'): + print("skipping room %s (%s [%s])" % (event['room'], event['title'], event['id'])) + continue + if not (idlist==[]): + if 000000 in idlist: + print("skipping id (%s [%s])" % (event['title'], event['id'])) + continue + if int(event['id']) not in idlist: + print("skipping id (%s [%s])" % (event['title'], event['id'])) + continue + + # generate a task description and put it into the queue + queue.put(Rendertask( + infile = 'intro.svg', + outfile = str(event['id'])+".ts", + sequence = introFrames, + parameters = { + '$id': event['id'], + '$title': event['subtitle'], + '$person': event['personnames'] + } + )) + + # place a task for the outro into the queue + if not "out" in skiplist: + queue.put(Rendertask( + infile = 'outro.svg', + outfile = 'outro.ts', + sequence = outroFrames + )) + diff --git a/dg/artwork/datengarten-alpha.png b/datengarten/artwork/datengarten-alpha.png similarity index 100% rename from dg/artwork/datengarten-alpha.png rename to datengarten/artwork/datengarten-alpha.png diff --git a/dg/artwork/datengarten.png b/datengarten/artwork/datengarten.png similarity index 100% rename from dg/artwork/datengarten.png rename to datengarten/artwork/datengarten.png diff --git a/dg/artwork/datengarten.svg b/datengarten/artwork/datengarten.svg similarity index 100% rename from dg/artwork/datengarten.svg rename to datengarten/artwork/datengarten.svg diff --git a/dg/artwork/datengarten.txt b/datengarten/artwork/datengarten.txt similarity index 100% rename from dg/artwork/datengarten.txt rename to datengarten/artwork/datengarten.txt diff --git a/dg/artwork/intro.svg b/datengarten/artwork/intro.svg similarity index 100% rename from dg/artwork/intro.svg rename to datengarten/artwork/intro.svg diff --git a/dg/artwork/outro.svg b/datengarten/artwork/outro.svg similarity index 100% rename from dg/artwork/outro.svg rename to datengarten/artwork/outro.svg diff --git a/dg/artwork/overlay.png b/datengarten/artwork/overlay.png similarity index 100% rename from dg/artwork/overlay.png rename to datengarten/artwork/overlay.png diff --git a/dg/artwork/overlay.svg b/datengarten/artwork/overlay.svg similarity index 100% rename from dg/artwork/overlay.svg rename to datengarten/artwork/overlay.svg diff --git a/dg/__init__.py b/dg/__init__.py deleted file mode 100644 index 84b6bc6..0000000 --- a/dg/__init__.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/python3 - -from renderlib import * -from easing import * - -def introFrames(p): - move=50 - - # 3 Sekunde Text Fadein - frames = 3*fps - for i in range(0, frames): - yield ( - ('text', 'style', 'opacity', "%.4f" % easeLinear(i, 0, 1, frames)), - ('text', 'attr', 'transform', 'translate(%.4f, 0)' % easeOutQuad(i, -move, move, frames)), - ) - - # 2 Sekunden stehen lassen - frames = 2*fps - for i in range(0, frames): - yield () - - # 3 Sekunde Text Fadeout - frames = 3*fps - for i in range(0, frames): - yield ( - ('text', 'style', 'opacity', "%.4f" % easeLinear(i, 1, -1, frames)), - ('text', 'attr', 'transform', 'translate(%.4f, 0)' % easeInQuad(i, 0, move, frames)), - ) - - # two final frames - for i in range(0, 2): - yield ( - ('text', 'style', 'opacity', "%.4f" % 0), - ('text', 'attr', 'transform', 'translate(%.4f, 0)' % move), - ) - -def outroFrames(p): - # 5 Sekunden stehen bleiben - frames = 5*fps - for i in range(0, frames): - yield [] - -def debug(): - render( - 'intro.svg', - '../intro.ts', - introFrames, - { - '$id': 69, - '$title': 'Ethik des Digitalen', - '$person': 'Daniel Domscheit-Berg' - } - ) - - render( - 'outro.svg', - '../outro.ts', - outroFrames - ) - -def tasks(queue, args): - raise NotImplementedError('call with --debug to render your intro/outro')