[Debconf-video-commits] r727 - in package/trunk/src: . prerolls
Ben Hutchings
benh at alioth.debian.org
Sun Nov 6 15:15:07 UTC 2011
Author: benh
Date: 2011-11-06 15:15:06 +0000 (Sun, 06 Nov 2011)
New Revision: 727
Added:
package/trunk/src/prerolls/
package/trunk/src/prerolls/genPreroll.py
package/trunk/src/prerolls/xml2preroll.py
Removed:
package/trunk/src/preroles/
package/trunk/src/prerolls/genPrerole.py
package/trunk/src/prerolls/xml2prerole.py
Log:
s/prerole/preroll/g
I can't stand this spelling error any longer.
Deleted: package/trunk/src/prerolls/genPrerole.py
===================================================================
--- package/trunk/src/preroles/genPrerole.py 2011-11-06 13:50:19 UTC (rev 724)
+++ package/trunk/src/prerolls/genPrerole.py 2011-11-06 15:15:06 UTC (rev 727)
@@ -1,245 +0,0 @@
-#!/usr/bin/env python
-# Copyright (C) 2011 derpeter
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-import argparse
-import fileinput
-import commands
-import sys
-import os
-import re
-
-parser = argparse.ArgumentParser(description='Generate prerole file: make sure you have ffmpeg and inkscape in $PATH')
-parser.add_argument('-f', action="store", dest="background", help="background SVG. Default background.svg", default='background.svg' )
-parser.add_argument('-t', action="store", dest="title", help="talk title")
-parser.add_argument('-s', action="store", dest="subtitle", help="talk subtitle", default = '')
-parser.add_argument('-p', action="store", dest="speakers", help="person(s). Persons are separated with a blank.", nargs="+")
-parser.add_argument('-d', action="store", dest="date", help="date of the talk")
-parser.add_argument('-b', action="store", dest="begin", help="begin of the talk")
-parser.add_argument('-i', action="store", dest="id", help="talk id")
-parser.add_argument('-o', action="store", dest="output", help="output dir", default='')
-parser.add_argument('-w', action="store", dest="workdir", help="working dir", default='')
-
-args = parser.parse_args()
-output=[]
-
-# line lengths
-linelen64pt = 37
-linelen48pt = 40
-wide_linelen48pt = 49
-
-def html_protect(vstr):
- vstr = "&".join(vstr.split("&"))
- vstr = "<".join(vstr.split("<"))
- vstr = ">".join(vstr.split(">"))
- vstr = """.join(vstr.split('"'))
- vstr = "'".join(vstr.split("'"))
- return vstr
-
-# replace the string in a given svg
-def build_svg():
-
- #check the inputs filds
- if args.id == None:
- print "id not defined"
- sys.exit(1)
- else:
- print "working on %s_prerole.dv now..." % args.id
- if args.title == None:
- print "title not defined"
- sys.exit(1)
- if args.subtitle == None:
- print "subtitle not defined"
- args.subtitle = ''
- if args.speakers == None:
- print "WARNING: person not defined"
- #sys.exit(1)
- if args.date == None:
- print "date not defined"
- args.date=''
- if args.begin == None:
- print "begin not defined"
- args.begin = ''
-
- # build the speaker name list
- speakers1 = ''
- speakers2 = ''
- speakers3 = ''
- speakers4 = ''
- speakers5 = ''
- speakers6 = ''
- if args.speakers is not None:
- speakers = []
- tmp = ''
- for spk in args.speakers:
- if len(tmp) + 3 + len(spk) > linelen48pt:
- speakers.append(tmp) # + ' -')
- tmp = ''
- # append
- if tmp != '':
- tmp = tmp + ' - '
- tmp = tmp + spk
- if tmp != '':
- speakers.append(tmp)
- if len(speakers) == 1:
- speakers1 = speakers[0]
- speakers2 = ''
- elif len(speakers) == 2:
- speakers1 = speakers[0]
- speakers2 = speakers[1]
- elif len(speakers) == 3:
- speakers1 = speakers[0]
- speakers2 = speakers[1]
- speakers3 = speakers[2]
- elif len(speakers) == 4:
- speakers1 = speakers[0]
- speakers2 = speakers[1]
- speakers3 = speakers[2]
- speakers4 = speakers[3]
- elif len(speakers) == 5:
- speakers1 = speakers[0]
- speakers2 = speakers[1]
- speakers3 = speakers[2]
- speakers4 = speakers[3]
- speakers5 = speakers[4]
- elif len(speakers) == 6:
- speakers1 = speakers[0]
- speakers2 = speakers[1]
- speakers3 = speakers[2]
- speakers4 = speakers[3]
- speakers5 = speakers[4]
- speakers6 = speakers[5]
- else:
- print "too many authors for event %s" % args.id
- sys.exit(1)
-
-# if len(args.speakers) == 1:
-# speaker = args.speakers[0]
-# elif len(args.speakers) == 2:
-# speaker = args.speakers[0] + ' ' + args.speakers[1]
-# elif len(args.speakers) == 3:
-# speaker = args.speakers[0] + ' - ' + args.speakers[1] + ' - ' + args.speakers[2]
-# elif len(args.speakers) == 4:
-# speaker = args.speakers[0] + ' - ' + args.speakers[1] + ' - ' + args.speakers[2] + ' - ' + args.speakers[3]
-# # in the rare case that we have more than 4 speaker we replace the last speakers with et al.
-# elif len(args.speakers) > 4:
-# speaker = args.speakers[0] + ' - ' + args.speakers[1] + ' - ' + args.speakers[2] + ' - ' + args.speakers[3] + ' - et al.'
-
- # split title into two lines if necessary
- if len(args.title) > linelen64pt:
- titleRE = re.compile(r'^(.{0,'+str(linelen64pt)+r'}) (.*)$')
- titles = titleRE.search(args.title).groups()
- title1 = titles[0]
- title2 = titles[1]
- if len(title2) > linelen64pt:
- print "WARNING: title too long (2nd line)"
- title2 = title2[:linelen64pt]+"..."
- else:
- title1 = args.title
- title2 = ''
-
- # split subtitle into two lines if necessary
- if len(args.subtitle) > wide_linelen48pt:
- subtitleRE = re.compile(r'^(.{0,'+str(wide_linelen48pt)+r'}) (.*)$')
- subtitles = subtitleRE.search(args.subtitle).groups()
- subtitle1 = subtitles[0]
- subtitle2 = subtitles[1]
- if len(subtitle2) > wide_linelen48pt+10:
- print "WARNING: subtitle too long (2nd line)"
- subtitle2 = subtitle2[:wide_linelen48pt]+"..."
- else:
- subtitle1 = args.subtitle
- subtitle2 = ''
-
- # replace the strings in the svg
- # add here some filtering to precent to long names
- for line in fileinput.FileInput(args.background,inplace=0):
- if "%title$1%" in line:
- line=line.replace('%title$1%', html_protect(title1))
- elif "%title$2%" in line:
- line=line.replace('%title$2%', html_protect(title2))
- elif "%subtitle$1%" in line:
- line=line.replace('%subtitle$1%', html_protect(subtitle1))
- elif "%subtitle$2%" in line:
- line=line.replace('%subtitle$2%', html_protect(subtitle2))
- elif "%speaker$1%" in line:
- line=line.replace('%speaker$1%', html_protect(speakers1))
- elif "%speaker$2%" in line:
- line=line.replace('%speaker$2%', html_protect(speakers2))
- elif "%speaker$3%" in line:
- line=line.replace('%speaker$3%', html_protect(speakers3))
- elif "%speaker$4%" in line:
- line=line.replace('%speaker$4%', html_protect(speakers4))
- elif "%speaker$5%" in line:
- line=line.replace('%speaker$5%', html_protect(speakers5))
- elif "%speaker$6%" in line:
- line=line.replace('%speaker$6%', html_protect(speakers6))
- elif "%date%" in line:
- line=line.replace('%date%', args.date+' '+args.begin)
- output.append(line)
-
- outfileName = args.workdir+args.id+".svg"
- outfile = file(outfileName, 'w')
- outfile.writelines(output)
-
-# create a png out of the svg
-def build_png():
- result = commands.getstatusoutput("inkscape "+ args.workdir+args.id +".svg -e "+args.workdir+args.id+".png")
- if result[0] != 0:
- print "png not created"
- print result[1]
- sys.exit(1)
-
-# build the dv file
-def build_dv():
- prerole_duration = "5s"
- # check if tmp file already present and remove it
- if os.path.exists(args.workdir+args.id+".tmp"):
- commands.getstatusoutput("rm -f "+args.workdir+args.id+".tmp")
- result = commands.getstatusoutput("ffmpeg -qscale 3 -loop_input -i "+ args.workdir+args.id +".png -target dv-pal "+args.workdir+args.id+".tmp -t "+prerole_duration+" -r 25 -an -threads 2")
- if result[0] != 0:
- print "inital dv file not created"
- print result[1]
- sys.exit(1)
-
- #check if silence file is present, if not generate it
- if not os.path.exists('silence'):
- os.system('dd if=/dev/zero of=silence ibs=10240 count=10240')
-
- #check if prerole file is present if yes delete it
- if os.path.exists(args.output+args.id+"prerole.dv"):
- commands.getstatusoutput("rm -f "+args.output+args.id+"prerole.dv")
-
- #cat the first part of the prerole in front of the edittedt one
- result = commands.getstatusoutput('cat preprerole.dv '+ args.workdir+args.id +'.tmp > '+ args.workdir+args.id +'.tmp1')
-
- result = commands.getstatusoutput("ffmpeg -f dv -target pal-dv -i "+args.workdir+args.id+".tmp1 -f u16le -i silence -vcodec copy -t "+prerole_duration+" "+args.workdir+args.id+"_prerole.dv")
- #if result[0] == 1:
- # no idea why ffmpeg is not returning 0 at this call
- if True:
- commands.getstatusoutput("rm -f "+args.workdir+args.id+".tmp "+args.workdir+args.id+".tmp1")
- else:
- print "audio fix not applied"
- print result[1]
- sys.exit(1)
- #clean up
- commands.getstatusoutput("rm -f "+args.workdir+args.id+".png")
- commands.getstatusoutput("rm -f "+args.workdir+args.id+".svg")
-
-build_svg()
-build_png()
-build_dv()
-sys.exit(0)
-
Copied: package/trunk/src/prerolls/genPreroll.py (from rev 724, package/trunk/src/preroles/genPrerole.py)
===================================================================
--- package/trunk/src/prerolls/genPreroll.py (rev 0)
+++ package/trunk/src/prerolls/genPreroll.py 2011-11-06 15:15:06 UTC (rev 727)
@@ -0,0 +1,239 @@
+#!/usr/bin/env python
+# Copyright (C) 2011 derpeter
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import argparse
+import fileinput
+import commands
+import sys
+import os
+import re
+
+parser = argparse.ArgumentParser(description='Generate preroll file: make sure you have ffmpeg and inkscape in $PATH')
+parser.add_argument('-f', action="store", dest="background", help="background SVG. Default background.svg", default='background.svg' )
+parser.add_argument('-t', action="store", dest="title", help="talk title")
+parser.add_argument('-s', action="store", dest="subtitle", help="talk subtitle", default = '')
+parser.add_argument('-p', action="store", dest="speakers", help="person(s). Persons are separated with a blank.", nargs="+")
+parser.add_argument('-d', action="store", dest="date", help="date of the talk")
+parser.add_argument('-b', action="store", dest="begin", help="begin of the talk")
+parser.add_argument('-i', action="store", dest="id", help="talk id")
+parser.add_argument('-o', action="store", dest="output", help="output dir", default='')
+parser.add_argument('-w', action="store", dest="workdir", help="working dir", default='')
+
+args = parser.parse_args()
+output=[]
+
+# line lengths
+linelen64pt = 37
+linelen48pt = 40
+wide_linelen48pt = 49
+
+def html_protect(vstr):
+ vstr = "&".join(vstr.split("&"))
+ vstr = "<".join(vstr.split("<"))
+ vstr = ">".join(vstr.split(">"))
+ vstr = """.join(vstr.split('"'))
+ vstr = "'".join(vstr.split("'"))
+ return vstr
+
+# replace the string in a given svg
+def build_svg():
+
+ #check the inputs filds
+ if args.id == None:
+ print "id not defined"
+ sys.exit(1)
+ else:
+ print "working on %s_preroll.dv now..." % args.id
+ if args.title == None:
+ print "title not defined"
+ sys.exit(1)
+ if args.subtitle == None:
+ print "subtitle not defined"
+ args.subtitle = ''
+ if args.speakers == None:
+ print "WARNING: person not defined"
+ #sys.exit(1)
+ if args.date == None:
+ print "date not defined"
+ args.date=''
+ if args.begin == None:
+ print "begin not defined"
+ args.begin = ''
+
+ # build the speaker name list
+ speakers1 = ''
+ speakers2 = ''
+ speakers3 = ''
+ speakers4 = ''
+ speakers5 = ''
+ speakers6 = ''
+ if args.speakers is not None:
+ speakers = []
+ tmp = ''
+ for spk in args.speakers:
+ if len(tmp) + 3 + len(spk) > linelen48pt:
+ speakers.append(tmp) # + ' -')
+ tmp = ''
+ # append
+ if tmp != '':
+ tmp = tmp + ' - '
+ tmp = tmp + spk
+ if tmp != '':
+ speakers.append(tmp)
+ if len(speakers) == 1:
+ speakers1 = speakers[0]
+ speakers2 = ''
+ elif len(speakers) == 2:
+ speakers1 = speakers[0]
+ speakers2 = speakers[1]
+ elif len(speakers) == 3:
+ speakers1 = speakers[0]
+ speakers2 = speakers[1]
+ speakers3 = speakers[2]
+ elif len(speakers) == 4:
+ speakers1 = speakers[0]
+ speakers2 = speakers[1]
+ speakers3 = speakers[2]
+ speakers4 = speakers[3]
+ elif len(speakers) == 5:
+ speakers1 = speakers[0]
+ speakers2 = speakers[1]
+ speakers3 = speakers[2]
+ speakers4 = speakers[3]
+ speakers5 = speakers[4]
+ elif len(speakers) == 6:
+ speakers1 = speakers[0]
+ speakers2 = speakers[1]
+ speakers3 = speakers[2]
+ speakers4 = speakers[3]
+ speakers5 = speakers[4]
+ speakers6 = speakers[5]
+ else:
+ print "too many authors for event %s" % args.id
+ sys.exit(1)
+
+# if len(args.speakers) == 1:
+# speaker = args.speakers[0]
+# elif len(args.speakers) == 2:
+# speaker = args.speakers[0] + ' ' + args.speakers[1]
+# elif len(args.speakers) == 3:
+# speaker = args.speakers[0] + ' - ' + args.speakers[1] + ' - ' + args.speakers[2]
+# elif len(args.speakers) == 4:
+# speaker = args.speakers[0] + ' - ' + args.speakers[1] + ' - ' + args.speakers[2] + ' - ' + args.speakers[3]
+# # in the rare case that we have more than 4 speaker we replace the last speakers with et al.
+# elif len(args.speakers) > 4:
+# speaker = args.speakers[0] + ' - ' + args.speakers[1] + ' - ' + args.speakers[2] + ' - ' + args.speakers[3] + ' - et al.'
+
+ # split title into two lines if necessary
+ if len(args.title) > linelen64pt:
+ titleRE = re.compile(r'^(.{0,'+str(linelen64pt)+r'}) (.*)$')
+ titles = titleRE.search(args.title).groups()
+ title1 = titles[0]
+ title2 = titles[1]
+ if len(title2) > linelen64pt:
+ print "WARNING: title too long (2nd line)"
+ title2 = title2[:linelen64pt]+"..."
+ else:
+ title1 = args.title
+ title2 = ''
+
+ # split subtitle into two lines if necessary
+ if len(args.subtitle) > wide_linelen48pt:
+ subtitleRE = re.compile(r'^(.{0,'+str(wide_linelen48pt)+r'}) (.*)$')
+ subtitles = subtitleRE.search(args.subtitle).groups()
+ subtitle1 = subtitles[0]
+ subtitle2 = subtitles[1]
+ if len(subtitle2) > wide_linelen48pt+10:
+ print "WARNING: subtitle too long (2nd line)"
+ subtitle2 = subtitle2[:wide_linelen48pt]+"..."
+ else:
+ subtitle1 = args.subtitle
+ subtitle2 = ''
+
+ # replace the strings in the svg
+ # add here some filtering to precent to long names
+ for line in fileinput.FileInput(args.background,inplace=0):
+ if "%title$1%" in line:
+ line=line.replace('%title$1%', html_protect(title1))
+ elif "%title$2%" in line:
+ line=line.replace('%title$2%', html_protect(title2))
+ elif "%subtitle$1%" in line:
+ line=line.replace('%subtitle$1%', html_protect(subtitle1))
+ elif "%subtitle$2%" in line:
+ line=line.replace('%subtitle$2%', html_protect(subtitle2))
+ elif "%speaker$1%" in line:
+ line=line.replace('%speaker$1%', html_protect(speakers1))
+ elif "%speaker$2%" in line:
+ line=line.replace('%speaker$2%', html_protect(speakers2))
+ elif "%speaker$3%" in line:
+ line=line.replace('%speaker$3%', html_protect(speakers3))
+ elif "%speaker$4%" in line:
+ line=line.replace('%speaker$4%', html_protect(speakers4))
+ elif "%speaker$5%" in line:
+ line=line.replace('%speaker$5%', html_protect(speakers5))
+ elif "%speaker$6%" in line:
+ line=line.replace('%speaker$6%', html_protect(speakers6))
+ elif "%date%" in line:
+ line=line.replace('%date%', args.date+' '+args.begin)
+ output.append(line)
+
+ outfileName = args.workdir+args.id+".svg"
+ outfile = file(outfileName, 'w')
+ outfile.writelines(output)
+
+# create a png out of the svg
+def build_png():
+ result = commands.getstatusoutput("inkscape "+ args.workdir+args.id +".svg -e "+args.workdir+args.id+".png")
+ if result[0] != 0:
+ print "png not created"
+ print result[1]
+ sys.exit(1)
+
+# build the dv file
+def build_dv():
+ preroll_duration = "5s"
+ # check if tmp file already present and remove it
+ if os.path.exists(args.workdir+args.id+".tmp"):
+ commands.getstatusoutput("rm -f "+args.workdir+args.id+".tmp")
+ result = commands.getstatusoutput("ffmpeg -qscale 3 -loop_input -i "+ args.workdir+args.id +".png -target dv-pal "+args.workdir+args.id+".tmp -t "+preroll_duration+" -r 25 -an -threads 2")
+ if result[0] != 0:
+ print "inital dv file not created"
+ print result[1]
+ sys.exit(1)
+
+ #check if silence file is present, if not generate it
+ if not os.path.exists('silence'):
+ os.system('dd if=/dev/zero of=silence ibs=10240 count=10240')
+
+ #cat the first part of the preroll in front of the edittedt one
+ result = commands.getstatusoutput('cat prepreroll.dv '+ args.workdir+args.id +'.tmp > '+ args.workdir+args.id +'.tmp1')
+
+ result = commands.getstatusoutput("ffmpeg -f dv -i "+args.workdir+args.id+".tmp1 -f s16le -ar 48000 -ac 2 -i silence -target pal-dv -vcodec copy -t "+preroll_duration+" -y "+args.workdir+args.id+"_preroll.dv")
+ if result[0] == 0:
+ commands.getstatusoutput("rm -f "+args.workdir+args.id+".tmp "+args.workdir+args.id+".tmp1")
+ else:
+ print "audio fix not applied"
+ print result[1]
+ sys.exit(1)
+ #clean up
+ commands.getstatusoutput("rm -f "+args.workdir+args.id+".png")
+ commands.getstatusoutput("rm -f "+args.workdir+args.id+".svg")
+
+build_svg()
+build_png()
+build_dv()
+sys.exit(0)
+
Deleted: package/trunk/src/prerolls/xml2prerole.py
===================================================================
--- package/trunk/src/preroles/xml2prerole.py 2011-11-06 13:50:19 UTC (rev 724)
+++ package/trunk/src/prerolls/xml2prerole.py 2011-11-06 15:15:06 UTC (rev 727)
@@ -1,97 +0,0 @@
-#!/usr/bin/env python
-# -*- coding:utf8 -*-
-
-import urllib
-import lxml.etree
-from subprocess import Popen
-
-rohdaten = urllib.urlopen("http://penta.debconf.org/dc11_schedule/schedule.en.xml").read()
-#daten = unicode(rohdaten, "latin1")
-daten = rohdaten
-root = lxml.etree.fromstring(daten).getroottree()
-
-SCRIPT_FULLPATH = "genPrerole.py"
-EXTRA_ARGS = [
- "-o", "../prerole/",
- #"-w", "/tmp/workdir"
- ]
-
-def call_genPrerole(info):
- command = ["python", SCRIPT_FULLPATH]
-
- arguments = dict(t="title",
- s="subtitle",
- p="speakers",
- d="date",
- b="start",
- i="id")
-# if info["id"] != str(4451):
-# return
- for flag, key in arguments.iteritems():
- #if flag == 'speakers' and key == []:
- # key = '_'
- flag = "-" + flag
- data = None
- try:
- data = info[key]
- except KeyError:
- print "key %s does not exist for %s" % (key, info["id"])
-
- if data is None or data == []:
- #print "value %s was None for %s" % (key, info["id"])
- pass
- # data = " "
- # flag = " "
- elif isinstance(data, list):
- command += [flag] + data
- elif isinstance(data, basestring):
- command += [flag, data]
- else:
- raise ValueError("unexpected datatype")
-
- command += EXTRA_ARGS
-
- process = Popen(command)
- returncode = process.wait()
- if returncode != 0:
- print "returncode %d != 0 for %r" % (returncode, command)
-
-def daten_von_event(event, upper_info):
- info = upper_info.copy()
- info["id"] = event.get("id")
- things = "start room title subtitle".split(" ")
- for thing in things:
- thing_tag = event.find(thing)
- if thing_tag is None:
- print "ERROR: no tag %s in %r" % (thing, event)
- else:
- if event.find(thing).text is not None:
- info[thing] = event.find(thing).text
-
- info["speakers"] = []
- persons = event.find("persons")
- for person in list(persons):
- info["speakers"].append(person.text)
-
- call_genPrerole(info)
-
-def daten_von_raum(raum, upper_info):
- info = upper_info.copy()
- info["name"] = raum.get("name")
- for event in list(raum):
- daten_von_event(event, info)
-
-def daten_von_tag(tag):
- info = {}
- info["date"] = tag.get("date")
- info["index"] = tag.get("index")
- for raum in list(tag):
- daten_von_raum(raum, info)
-
-def daten_von_schedule(schedule):
- for tag in schedule.xpath("day"):
- daten_von_tag(tag)
-
-daten_von_schedule(root)
-
-
Copied: package/trunk/src/prerolls/xml2preroll.py (from rev 724, package/trunk/src/preroles/xml2prerole.py)
===================================================================
--- package/trunk/src/prerolls/xml2preroll.py (rev 0)
+++ package/trunk/src/prerolls/xml2preroll.py 2011-11-06 15:15:06 UTC (rev 727)
@@ -0,0 +1,91 @@
+#!/usr/bin/env python
+# -*- coding:utf8 -*-
+
+import urllib
+import lxml.etree
+from subprocess import Popen
+
+rohdaten = urllib.urlopen("http://penta.debconf.org/dc11_schedule/schedule.en.xml").read()
+#daten = unicode(rohdaten, "latin1")
+daten = rohdaten
+root = lxml.etree.fromstring(daten).getroottree()
+
+SCRIPT_FULLPATH = "genPreroll.py"
+
+def call_genPreroll(info):
+ command = ["python", SCRIPT_FULLPATH]
+
+ arguments = dict(t="title",
+ s="subtitle",
+ p="speakers",
+ d="date",
+ b="start",
+ i="id")
+# if info["id"] != str(4451):
+# return
+ for flag, key in arguments.iteritems():
+ #if flag == 'speakers' and key == []:
+ # key = '_'
+ flag = "-" + flag
+ data = None
+ try:
+ data = info[key]
+ except KeyError:
+ print "key %s does not exist for %s" % (key, info["id"])
+
+ if data is None or data == []:
+ #print "value %s was None for %s" % (key, info["id"])
+ pass
+ # data = " "
+ # flag = " "
+ elif isinstance(data, list):
+ command += [flag] + data
+ elif isinstance(data, basestring):
+ command += [flag, data]
+ else:
+ raise ValueError("unexpected datatype")
+
+ process = Popen(command)
+ returncode = process.wait()
+ if returncode != 0:
+ print "returncode %d != 0 for %r" % (returncode, command)
+
+def daten_von_event(event, upper_info):
+ info = upper_info.copy()
+ info["id"] = event.get("id")
+ things = "start room title subtitle".split(" ")
+ for thing in things:
+ thing_tag = event.find(thing)
+ if thing_tag is None:
+ print "ERROR: no tag %s in %r" % (thing, event)
+ else:
+ if event.find(thing).text is not None:
+ info[thing] = event.find(thing).text
+
+ info["speakers"] = []
+ persons = event.find("persons")
+ for person in list(persons):
+ info["speakers"].append(person.text)
+
+ call_genPreroll(info)
+
+def daten_von_raum(raum, upper_info):
+ info = upper_info.copy()
+ info["name"] = raum.get("name")
+ for event in list(raum):
+ daten_von_event(event, info)
+
+def daten_von_tag(tag):
+ info = {}
+ info["date"] = tag.get("date")
+ info["index"] = tag.get("index")
+ for raum in list(tag):
+ daten_von_raum(raum, info)
+
+def daten_von_schedule(schedule):
+ for tag in schedule.xpath("day"):
+ daten_von_tag(tag)
+
+daten_von_schedule(root)
+
+
More information about the Debconf-video-commits
mailing list