Skip to content

Commit 5481ced

Browse files
Merge pull request #120 from TiVoMaker/master
Corrected log call when the Tika server returns an unexpected HTTP status
2 parents 368516d + 6757978 commit 5481ced

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

tika/tika.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,14 @@
7777
except ImportError:
7878
from urllib.parse import urlparse as urlparse
7979

80+
try:
81+
from rfc6266 import build_header
82+
def make_content_disposition_header(fn):
83+
return build_header(os.path.basename(fn)).decode('ascii')
84+
except ImportError:
85+
def make_content_disposition_header(fn):
86+
return 'attachment; filename=%s' % os.path.basename(fn)
87+
8088
if sys.version_info[0] < 3:
8189
open = codecs.open
8290

@@ -213,7 +221,10 @@ def parse1(option, urlOrPath, serverEndpoint=ServerEndpoint, verbose=Verbose, ti
213221
service = services.get(option, services['all'])
214222
if service == '/tika': responseMimeType = 'text/plain'
215223
status, response = callServer('put', serverEndpoint, service, open(path, 'rb'),
216-
{'Accept': responseMimeType, 'Content-Disposition': 'attachment; filename=%s' % os.path.basename(path)},
224+
{
225+
'Accept': responseMimeType,
226+
'Content-Disposition': make_content_disposition_header(path)
227+
},
217228
verbose, tikaServerJar)
218229

219230
if file_type == 'remote': os.unlink(path)
@@ -292,7 +303,10 @@ def detectType1(option, urlOrPath, serverEndpoint=ServerEndpoint, verbose=Verbos
292303
raise TikaException('Detect option must be one of %s' % binary_string(services.keys()))
293304
service = services[option]
294305
status, response = callServer('put', serverEndpoint, service, open(path, 'r'),
295-
{'Accept': responseMimeType, 'Content-Disposition': 'attachment; filename=%s' % os.path.basename(path)},
306+
{
307+
'Accept': responseMimeType,
308+
'Content-Disposition': make_content_disposition_header(path)
309+
},
296310
verbose, tikaServerJar)
297311
if csvOutput == 1:
298312
return(status, urlOrPath.decode("UTF-8") + "," + response)
@@ -340,7 +354,7 @@ def callServer(verb, serverEndpoint, service, data, headers, verbose=Verbose, ti
340354
print(sys.stderr, "Request headers: ", headers)
341355
print(sys.stderr, "Response headers: ", resp.headers)
342356
if resp.status_code != 200:
343-
log.warning('Tika server returned status:', resp.status_code)
357+
log.warning('Tika server returned status: %d', resp.status_code)
344358
resp.encoding = "utf-8"
345359
return (resp.status_code, resp.text)
346360

0 commit comments

Comments
 (0)