aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2013-04-17 10:47:02 +0300
committerAlon Levy <alon@pobox.com>2013-04-17 12:47:28 +0300
commit519bcfb0e6753f53fb5fc52a5b76d0472fda4ac7 (patch)
treed86ee987505f7337b03a52907a5155f1e4c0e93f
parentb698c94d035ec0ac5a5f695babf6f84c354510f5 (diff)
downloadmediagoblin-519bcfb0e6753f53fb5fc52a5b76d0472fda4ac7.tar.lz
mediagoblin-519bcfb0e6753f53fb5fc52a5b76d0472fda4ac7.tar.xz
mediagoblin-519bcfb0e6753f53fb5fc52a5b76d0472fda4ac7.zip
pdf/processing.py: don't use check_output, only in python>=2.7
Signed-off-by: Alon Levy <alon@pobox.com>
-rw-r--r--mediagoblin/media_types/pdf/processing.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/mediagoblin/media_types/pdf/processing.py b/mediagoblin/media_types/pdf/processing.py
index d5db2223..49742fd7 100644
--- a/mediagoblin/media_types/pdf/processing.py
+++ b/mediagoblin/media_types/pdf/processing.py
@@ -16,7 +16,7 @@
import os
import logging
import dateutil.parser
-from subprocess import STDOUT, check_output, call, CalledProcessError
+from subprocess import PIPE, Popen
from mediagoblin import mg_globals as mgg
from mediagoblin.processing import (create_pub_filepath,
@@ -125,9 +125,14 @@ unoconv_supported = [
]
def is_unoconv_working():
+ # TODO: must have libreoffice-headless installed too, need to check for it
+ unoconv = where('unoconv')
+ if not unoconv:
+ return False
try:
- output = check_output([where('unoconv'), '--show'], stderr=STDOUT)
- except CalledProcessError, e:
+ proc = Popen([unoconv, '--show'], stderr=PIPE)
+ output = proc.stderr.read()
+ except OSError, e:
_log.warn(_('unoconv failing to run, check log file'))
return False
if 'ERROR' in output:
@@ -137,8 +142,7 @@ def is_unoconv_working():
def supported_extensions(cache=[None]):
if cache[0] == None:
cache[0] = 'pdf'
- # TODO: must have libreoffice-headless installed too, need to check for it
- if where('unoconv') and is_unoconv_working():
+ if is_unoconv_working():
cache.extend(unoconv_supported)
return cache
@@ -177,7 +181,7 @@ def create_pdf_thumb(original, thumb_filename, width, height):
args = [executable, '-scale-to', str(min(width, height)),
'-singlefile', '-png', original, thumb_filename]
_log.debug('calling {0}'.format(repr(' '.join(args))))
- call(executable=executable, args=args)
+ Popen(executable=executable, args=args).wait()
def pdf_info(original):
"""
@@ -191,9 +195,10 @@ def pdf_info(original):
ret_dict = {}
pdfinfo = where('pdfinfo')
try:
- lines = check_output(executable=pdfinfo,
- args=[pdfinfo, original]).split(os.linesep)
- except CalledProcessError:
+ proc = Popen(executable=pdfinfo,
+ args=[pdfinfo, original], stdout=PIPE)
+ lines = proc.stdout.readlines()
+ except OSError:
_log.debug('pdfinfo could not read the pdf file.')
raise BadMediaFail()