~osomon/phatch/extract-all-metadata

« back to all changes in this revision

Viewing changes to actions/save.py

  • Committer: stani
  • Date: 2007-06-12 17:18:53 UTC
  • Revision ID: spe.stani.be@gmail.com-20070612171853-cndnqupa2o42iai4
gettext support, major rewrite

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
import os
2
2
import Image
3
3
import models
4
 
from translation import _
 
4
from translation import _t
5
5
 
6
6
JPG = ['jpg','jpeg','jpe']
7
7
 
 
8
FILENAME        = '<%s>'%_t('filename')
 
9
FOLDER          = '<%s>'%_t('folder')
 
10
FOLDER_PHATCH   = '<%s>_phatch'%_t('folder')
 
11
TYPE            = '<%s>'%_t('type')
 
12
DPI             = '<%s>'%_t('dpi')
 
13
 
8
14
class Action(models.Action):
9
15
    """Defined variables: <filename> <type> <folder> <width> <height>"""
10
16
    
11
 
    label       = 'Save'
 
17
    label       = _t('Save')
12
18
    author      = 'Stani'
13
19
    email       = 'spe.stani.be@gmail.com'
14
20
    version     = '0.1'
15
 
    tags        = ['save']
16
 
    summary     = 'Save an image'
 
21
    tags        = [_t('save')]
 
22
    summary     = _t('Save an image')
17
23
    save        = True
18
24
    
19
25
    def __init__(self):
20
26
        fields = models.Fields()
21
 
        fields['Filename']     = models.FileNameField('<%s>'\
22
 
                                    %_('filename'))
23
 
        fields['As']           = models.ImageWriteTypeField('<%s>'%_('type'))
24
 
        fields['In']           = models.FilePathField('<%s>_phatch'%_('folder'))
25
 
        fields['Quality']      = models.SliderField(60,1,100)
26
 
        fields['Resolution']   = models.DpiField('<%s>'%_('dpi'))
 
27
        fields[_t('Filename')]     = models.FileNameField(FILENAME)
 
28
        fields[_t('As')]           = models.ImageWriteTypeField(TYPE)
 
29
        fields[_t('In')]           = models.FilePathField(FOLDER_PHATCH)
 
30
        fields[_t('Quality')]      = models.SliderField(60,1,100)
 
31
        fields[_t('Resolution')]   = models.DpiField(DPI)
27
32
        super(Action,self).__init__(fields)
28
33
        
29
 
    def _gettext(self):
30
 
        """Strings to translate"""
31
 
        _('Save'), _('Filename'), _('As'), _('In'), _('Quality'), 
32
 
        _('Resolution') 
33
 
        
34
34
    def do(self,photo,setting,cache):
35
35
        #get info
36
36
        info                    = photo.get_info()
42
42
            #filename
43
43
            if setting('create_missing_folders'):
44
44
                models.ensure_path(folder)
45
 
            #construct fields
46
 
            fields = {'dpi' : (dpi,dpi)}
 
45
            #construct options
 
46
            options = {'dpi' : (dpi,dpi)}
47
47
            if typ.lower() in JPG or \
48
48
                    (typ.lower() == '<type>' and self.type in JPG):
49
49
                quality             = self.get_field_value('Quality',info)
50
 
                fields['quality']  = quality
 
50
                options['quality']  = quality
51
51
            #save
52
 
            photo.save(filename, **fields)
 
52
            photo.save(filename, **options)
53
53
        return photo
54
54
    
55
55
    def get_filename(self,info):
79
79
            return False
80
80
 
81
81
    def is_overwrite_existing_images_forced(self):
82
 
        return (self.get_field_string('In') == _('<folder>')) and\
83
 
            (self.get_field_string('Filename') == _('<filename>')) and\
84
 
            (self.get_field_string('As') == _('<type>'))
 
82
        return (self.get_field_string('In') == FOLDER) and\
 
83
            (self.get_field_string('Filename') == FILENAME) and\
 
84
            (self.get_field_string('As') == TYPE)
85
85
    
86
 
    description = """
87
 
"""
 
86
    description = _t("""
 
87
""")
88
88
 
89
89
    bitmap  = \
90
90
    'x\xda\x01\xd6\x08)\xf7\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\