projects
/
mediagoblin.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit '9408938' from 565_workbench_cleanup (spaetz)
[mediagoblin.git]
/
mediagoblin
/
media_types
/
ascii
/
processing.py
diff --git
a/mediagoblin/media_types/ascii/processing.py
b/mediagoblin/media_types/ascii/processing.py
index f698b97ac88ff525597f458cc8edec6796a03367..254717ebf725ab627819e0ca1688a0e41f0515ee 100644
(file)
--- a/
mediagoblin/media_types/ascii/processing.py
+++ b/
mediagoblin/media_types/ascii/processing.py
@@
-19,25
+19,40
@@
import Image
import logging
from mediagoblin import mg_globals as mgg
import logging
from mediagoblin import mg_globals as mgg
-from mediagoblin.processing import create_pub_filepath, THUMB_SIZE
+from mediagoblin.decorators import get_workbench
+from mediagoblin.processing import create_pub_filepath
from mediagoblin.media_types.ascii import asciitoimage
_log = logging.getLogger(__name__)
from mediagoblin.media_types.ascii import asciitoimage
_log = logging.getLogger(__name__)
+SUPPORTED_EXTENSIONS = ['txt', 'asc', 'nfo']
+
+
def sniff_handler(media_file, **kw):
def sniff_handler(media_file, **kw):
+ if kw.get('media') is not None:
+ name, ext = os.path.splitext(kw['media'].filename)
+ clean_ext = ext[1:].lower()
+
+ if clean_ext in SUPPORTED_EXTENSIONS:
+ return True
+
return False
return False
-def process_ascii(entry):
- '''
- Code to process a txt file
- '''
- workbench = mgg.workbench_manager.create_workbench()
+
+@get_workbench
+def process_ascii(entry, workbench=None):
+ """Code to process a txt file. Will be run by celery.
+
+ A Workbench() represents a local tempory dir. It is automatically
+ cleaned up when this function exits.
+ """
+ ascii_config = mgg.global_config['media_type:mediagoblin.media_types.ascii']
# Conversions subdirectory to avoid collisions
conversions_subdir = os.path.join(
workbench.dir, 'conversions')
os.mkdir(conversions_subdir)
# Conversions subdirectory to avoid collisions
conversions_subdir = os.path.join(
workbench.dir, 'conversions')
os.mkdir(conversions_subdir)
- queued_filepath = entry
['queued_media_file']
+ queued_filepath = entry
.queued_media_file
queued_filename = workbench.localized_file(
mgg.queue_store, queued_filepath,
'source')
queued_filename = workbench.localized_file(
mgg.queue_store, queued_filepath,
'source')
@@
-66,13
+81,23
@@
def process_ascii(entry):
tmp_thumb_filename = os.path.join(
conversions_subdir, thumb_filepath[-1])
tmp_thumb_filename = os.path.join(
conversions_subdir, thumb_filepath[-1])
- converter = asciitoimage.AsciiToImage()
+ ascii_converter_args = {}
+
+ if ascii_config['thumbnail_font']:
+ ascii_converter_args.update(
+ {'font': ascii_config['thumbnail_font']})
+
+ converter = asciitoimage.AsciiToImage(
+ **ascii_converter_args)
thumb = converter._create_image(
queued_file.read())
with file(tmp_thumb_filename, 'w') as thumb_file:
thumb = converter._create_image(
queued_file.read())
with file(tmp_thumb_filename, 'w') as thumb_file:
- thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS)
+ thumb.thumbnail(
+ (mgg.global_config['media:thumb']['max_width'],
+ mgg.global_config['media:thumb']['max_height']),
+ Image.ANTIALIAS)
thumb.save(thumb_file)
_log.debug('Copying local file to public storage')
thumb.save(thumb_file)
_log.debug('Copying local file to public storage')
@@
-87,7
+112,6
@@
def process_ascii(entry):
as original_file:
original_file.write(queued_file.read())
as original_file:
original_file.write(queued_file.read())
-
queued_file.seek(0) # Rewind *again*
unicode_filepath = create_pub_filepath(entry, 'ascii-portable.txt')
queued_file.seek(0) # Rewind *again*
unicode_filepath = create_pub_filepath(entry, 'ascii-portable.txt')
@@
-104,7
+128,7
@@
def process_ascii(entry):
'xmlcharrefreplace'))
mgg.queue_store.delete_file(queued_filepath)
'xmlcharrefreplace'))
mgg.queue_store.delete_file(queued_filepath)
- entry
['queued_media_file']
= []
+ entry
.queued_media_file
= []
media_files_dict = entry.setdefault('media_files', {})
media_files_dict['thumb'] = thumb_filepath
media_files_dict['unicode'] = unicode_filepath
media_files_dict = entry.setdefault('media_files', {})
media_files_dict['thumb'] = thumb_filepath
media_files_dict['unicode'] = unicode_filepath