From f8dbfc068a45f45ac56d414524735620de5b1ed3 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 22 Nov 2011 01:22:59 -0400 Subject: [PATCH] Added random named pipe support to the OfficeConverter pipe method --- apps/common/utils.py | 7 +++++++ apps/converter/office_converter.py | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/common/utils.py b/apps/common/utils.py index 61973996ac..1de970154a 100644 --- a/apps/common/utils.py +++ b/apps/common/utils.py @@ -3,6 +3,8 @@ import os import re import types import tempfile +import string +import random from django.utils.http import urlquote as django_urlquote from django.utils.http import urlencode as django_urlencode @@ -358,8 +360,13 @@ def validate_path(path): return True + def encapsulate(function): # Workaround Django ticket 15791 # Changeset 16045 # http://stackoverflow.com/questions/6861601/cannot-resolve-callable-context-variable/6955045#6955045 return lambda: function + + +def id_generator(size=6, chars=string.ascii_uppercase + string.digits): + return ''.join(random.choice(chars) for x in range(size)) diff --git a/apps/converter/office_converter.py b/apps/converter/office_converter.py index 968ea3fcdc..cd6a20f9d8 100644 --- a/apps/converter/office_converter.py +++ b/apps/converter/office_converter.py @@ -3,6 +3,7 @@ import subprocess from mimetype.api import get_mimetype from common.conf.settings import TEMPORARY_DIRECTORY +from common.utils import id_generator from converter.conf.settings import UNOCONV_PATH, UNOCONV_USE_PIPE from converter.exceptions import (OfficeConversionError, @@ -89,12 +90,12 @@ class OfficeConverterBackendUnoconv(object): if UNOCONV_USE_PIPE: command.append(u'--pipe') - command.append(u'mayan') + command.append(u'mayan-%s' % id_generator()) command.append(u'--format=pdf') command.append(u'--output=%s' % self.output_filepath) command.append(self.input_filepath) - + try: proc = subprocess.Popen(command, close_fds=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE) return_code = proc.wait()