]> git.0d.be Git - pige-extractor.git/commitdiff
Add support for getting file infos from PATH_INFO
authorFrédéric Péters <fpeters@0d.be>
Wed, 31 Mar 2010 08:17:28 +0000 (10:17 +0200)
committerFrédéric Péters <fpeters@0d.be>
Wed, 31 Mar 2010 08:17:28 +0000 (10:17 +0200)
download.cgi

index 33b8ea7c9d5ad7f733aeb124f55e6f64d25b6a32..e2542bc4d19d553057d8f8af78bc27475d026eca 100755 (executable)
@@ -12,20 +12,37 @@ syslog.openlog('pigebox')
 
 d = cgi.parse()
 
-if not d:
-    print 'Location: .'
+if os.environ.get('PATH_INFO'):
+    # filename has to be of the following form: %Y%m%d-%Hh%M-%Hh%M.%ext
+    filename = os.path.basename(os.environ.get('PATH_INFO'))
+    date = filename[:8]
+    start = '%s:%s' % (filename[9:11], filename[12:14])
+    end = '%s:%s' % (filename[15:17], filename[18:20])
+    ext = filename[-3:]
+
+    start = datetime.datetime.strptime('%s %s' % (date, start),
+           '%Y%m%d %H:%M')
+    end = datetime.datetime.strptime('%s %s' % (date, end),
+           '%Y%m%d %H:%M')
+elif d:
+    end = '%s:%s' % (d.get('end_hour')[0], d.get('end_min')[0])
+
+    start = datetime.datetime.strptime('%s %s:%s' % (
+           d.get('date')[0], d.get('start_hour')[0], d.get('start_min')[0]),
+           '%d/%m/%Y %H:%M')
+    end = datetime.datetime.strptime('%s %s:%s' % (
+           d.get('date')[0], d.get('end_hour')[0], d.get('end_min')[0]),
+           '%d/%m/%Y %H:%M')
+    if d.get('wav'):
+        ext = 'wav'
+    else:
+        ext = 'ogg'
+else:
+    print 'Location:', os.path.basename(__file__)
     print ''
     print 'Hop'
     sys.exit(0)
 
-end = '%s:%s' % (d.get('end_hour')[0], d.get('end_min')[0])
-
-start = datetime.datetime.strptime('%s %s:%s' % (
-        d.get('date')[0], d.get('start_hour')[0], d.get('start_min')[0]),
-        '%d/%m/%Y %H:%M')
-end = datetime.datetime.strptime('%s %s:%s' % (
-        d.get('date')[0], d.get('end_hour')[0], d.get('end_min')[0]),
-        '%d/%m/%Y %H:%M')
 if end < start:
     end = end + datetime.timedelta(1)
 
@@ -34,7 +51,7 @@ os.chdir('/home/alsa-record/')
 def get_filenames():
     path = start.strftime('%Y/%m-%b/%d-%a/')
     filenames = [os.path.join(path, x) for x in os.listdir(path)]
-    if end.hour < start.hour:
+    if end < start:
         path = end.strftime('%Y/%m-%b/%d-%a/')
         if os.path.exists(path):
             filenames.extend([os.path.join(path, x) for x in os.listdir(path)])
@@ -61,11 +78,9 @@ syslog.syslog(syslog.LOG_INFO, 'extraction (%s to %s)' % (
                         start.strftime('%Y-%m-%d %Hh%M'),
                         end.strftime('%Hh%M')))
 
-if d.get('wav'):
-    ext = 'wav'
+if ext == 'wav':
     print 'Content-Type: audio/x-wav'
 else:
-    ext = 'ogg'
     print 'Content-Type: audio/ogg'
 
 print 'Content-Disposition: attachment; filename=%s.%s\n' % \