11# Copyright The IETF Trust 2007, All Rights Reserved
22
3+ import csv
34import datetime
5+ import glob
6+ import json
47import os
8+ import pytz
59import re
610import tarfile
711import urllib
8- from tempfile import mkstemp
9- from collections import OrderedDict , Counter , deque
10- import csv
11- import json
12- import pytz
1312
14- from wsgiref .handlers import format_date_time
1513from calendar import timegm
14+ from collections import OrderedDict , Counter , deque
15+ from tempfile import mkstemp
16+ from wsgiref .handlers import format_date_time
1617
1718import debug # pyflakes:ignore
1819
@@ -158,8 +159,12 @@ def current_materials(request):
158159def materials_document (request , document , num = None , ext = None ):
159160 if num is None :
160161 num = get_meeting (num ).number
161- if re .search ('-\d\d$' , document ):
162+ if (re .search ('^\w+-\d+-\w+-\d\d$' , document ) or
163+ re .search ('^\w+-interim-\d+-\w+-\d\d-\d\d$' , document )):
162164 name , rev = document .rsplit ('-' , 1 )
165+ else :
166+ name , rev = document , None
167+
163168 doc = get_object_or_404 (Document , name = name )
164169 if not doc .meeting_related ():
165170 raise Http404 ("Not a meeting related document" )
@@ -169,11 +174,17 @@ def materials_document(request, document, num=None, ext=None):
169174 filename = doc .get_file_name ()
170175 else :
171176 filename = os .path .join (doc .get_file_path (), document )
172- if ext and not filename .endswith (ext ):
173- name , _ = os .path .splitext (filename )
174- filename = name + ext
177+ if ext :
178+ if not filename .endswith (ext ):
179+ name , _ = os .path .splitext (filename )
180+ filename = name + ext
181+ else :
182+ filenames = glob .glob (filename + '.*' )
183+ if filenames :
184+ filename = filenames [0 ]
175185 _ , basename = os .path .split (filename )
176186 if not os .path .exists (filename ):
187+
177188 raise Http404 ("File not found: %s" % filename )
178189 with open (filename , 'rb' ) as file :
179190 bytes = file .read ()
0 commit comments