[Debconf-video-commits] r636 - package/trunk/src
Ben Hutchings
benh at alioth.debian.org
Wed Sep 29 21:13:31 UTC 2010
Author: benh
Date: 2010-09-29 21:13:26 +0000 (Wed, 29 Sep 2010)
New Revision: 636
Modified:
package/trunk/src/dc-export-csv
Log:
dc-export-csv: Add speaker information to output
Use the event_person table and the new debconf.person_public view to find
speakers.
Modified: package/trunk/src/dc-export-csv
===================================================================
--- package/trunk/src/dc-export-csv 2010-09-20 02:06:09 UTC (rev 635)
+++ package/trunk/src/dc-export-csv 2010-09-29 21:13:26 UTC (rev 636)
@@ -30,22 +30,34 @@
name_ext = cur.fetchone()[0]
out_csv = csv.writer(out_file)
- out_csv.writerow(['title', 'url', 'subtitle', 'language',
+ out_csv.writerow(['title', 'speakers', 'url', 'subtitle', 'language',
'abstract', 'date', 'type', 'event'])
- cur.execute('SELECT event_recording_base_name, title, subtitle, language,'
- ' abstract, recording_time, event_type'
+ # Get all speakers - there can be several for an event and there is
+ # no suitable aggregate operator.
+ event_speakers = {}
+ cur.execute('SELECT event_id, public_name'
+ ' FROM event_person, debconf.person_public'
+ ' WHERE event_person.person_id=person_public.person_id'
+ ' AND event_role=\'speaker\'')
+ for event_id, speaker_name in cur.fetchall():
+ if speaker_name:
+ event_speakers.setdefault(event_id, []).append(speaker_name)
+
+ cur.execute('SELECT event.event_id, event_recording_base_name, title,'
+ ' subtitle, language, abstract, recording_time, event_type'
' FROM video_event_recording, event, video_recording'
' WHERE video_event_recording.event_id=event.event_id'
' AND video_event_recording.recording_id=video_recording.id'
' AND event.conference_id=%(conf_id)d',
{'conf_id': conf_id})
- for (base_name, title, subtitle, language,
+ for (event_id, base_name, title, subtitle, language,
abstract, recording_time, event_type) in cur.fetchall():
+ speakers = '; '.join(event_speakers.get(event_id, []))
url = '%s/%s/%s/%s/%s%s' % (video_base_url, recording_time[:4],
conf_name.lower().replace(' ', ''),
target_format_abbr, base_name, name_ext)
- out_csv.writerow([title, url, subtitle, language,
+ out_csv.writerow([title, speakers, url, subtitle, language,
abstract, recording_time[:10], event_type, conf_name])
if __name__ == '__main__':
More information about the Debconf-video-commits
mailing list