| 
1 |  | -import os  | 
2 | 1 | import json  | 
3 | 2 | import hashlib  | 
4 | 3 | import logging  | 
5 |  | -from urllib.parse import urlparse  | 
6 | 4 | import mimetypes  | 
 | 5 | +import os  | 
 | 6 | +from urllib.parse import urlparse  | 
7 | 7 | 
 
  | 
8 | 8 | import furl  | 
9 | 9 | import aiohttp  | 
10 | 10 | from aiohttp.errors import ContentEncodingError  | 
11 | 11 | 
 
  | 
12 | 12 | from waterbutler.core import streams  | 
13 | 13 | 
 
  | 
14 |  | -from mfr.core import exceptions  | 
15 |  | -from mfr.core import provider  | 
 | 14 | +from mfr.core import exceptions, provider  | 
 | 15 | +from mfr.core.exceptions import TooBigToRenderError  | 
16 | 16 | from mfr.core.utils import sizeof_fmt  | 
17 | 17 | from mfr.providers.osf import settings  | 
18 | 18 | from mfr.settings import MAX_FILE_SIZE_TO_RENDER  | 
19 |  | -from mfr.core.exceptions import TooBigToRenderError  | 
20 | 19 | 
 
  | 
21 | 20 | logger = logging.getLogger(__name__)  | 
22 | 21 | 
 
  | 
@@ -121,18 +120,16 @@ async def metadata(self):  | 
121 | 120 |         unique_key = hashlib.sha256((metadata['data']['etag'] + cleaned_url.url).encode('utf-8')).hexdigest()  | 
122 | 121 | 
 
  | 
123 | 122 |         is_public = False  | 
124 |  | - | 
125 |  | -        if 'public_file' in cleaned_url.args:  | 
126 |  | -            if cleaned_url.args['public_file'] not in ['0', '1']:  | 
 | 123 | +        public_file = cleaned_url.args.get('public_file', None)  | 
 | 124 | +        if public_file:  | 
 | 125 | +            if public_file not in ['true', 'false']:  | 
127 | 126 |                 raise exceptions.QueryParameterError(  | 
128 |  | -                    'The `public_file` query paramter should either `0`, `1`, or unused. Instead '  | 
129 |  | -                    'got  {}'.format(cleaned_url.args['public_file']),  | 
 | 127 | +                    'Invalid value for query parameter `public_file`: {}'.format(cleaned_url.args['public_file']),  | 
130 | 128 |                     url=download_url,  | 
131 | 129 |                     provider=self.NAME,  | 
132 | 130 |                     code=400,  | 
133 | 131 |                 )  | 
134 |  | - | 
135 |  | -            is_public = cleaned_url.args['public_file'] == '1'  | 
 | 132 | +            is_public = public_file == 'true'  | 
136 | 133 | 
 
  | 
137 | 134 |         return provider.ProviderMetadata(name, ext, content_type,  | 
138 | 135 |                     unique_key, download_url, is_public=is_public)  | 
 | 
0 commit comments