[Erp5-report] r13235 - in /erp5/trunk/utils/oood: mimemapper.py worker.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Mar 6 13:22:17 CET 2007
Author: bartek
Date: Tue Mar 6 13:22:13 2007
New Revision: 13235
URL: http://svn.erp5.org?rev=13235&view=rev
Log:
mimetypes specified as tuples (because there can be more then one per one filename extension)
Modified:
erp5/trunk/utils/oood/mimemapper.py
erp5/trunk/utils/oood/worker.py
Modified: erp5/trunk/utils/oood/mimemapper.py
URL: http://svn.erp5.org/erp5/trunk/utils/oood/mimemapper.py?rev=13235&r1=13234&r2=13235&view=diff
==============================================================================
--- erp5/trunk/utils/oood/mimemapper.py (original)
+++ erp5/trunk/utils/oood/mimemapper.py Tue Mar 6 13:22:13 2007
@@ -27,7 +27,9 @@
#
##############################################################################
+import operator
import sys
+sys.path.append('/etc/oood')
import config
sys.path.append(config.uno_path)
import uno
@@ -60,80 +62,80 @@
property_map={
'pdf':{
- 'mime_type':'application/pdf',
+ 'mime_type':('application/pdf',),
'outprops':(PropertyValue("FilterName",0,"writer_pdf_Export",0),PropertyValue("Overwrite",0,True,0)),
'label':'Pdf',
},
'txt':{
- 'mime_type':'text/plain',
+ 'mime_type':('text/plain',),
'outprops':(PropertyValue("FilterName",0,"Text (encoded)",0),PropertyValue("Overwrite",0,True,0),PropertyValue("FilterFlags",0,'UTF8,LF',0)),
'label':'Text',
},
'calc.pdf':{
- 'mime_type':'application/pdf',
+ 'mime_type':('application/pdf',),
'outprops':(PropertyValue("FilterName",0,"calc_pdf_Export",0),PropertyValue("Overwrite",0,True,0)),
'label':'Pdf',
},
'impr.pdf':{
- 'mime_type':'application/pdf',
+ 'mime_type':('application/pdf',),
'outprops':(PropertyValue("FilterName",0,"impress_pdf_Export",0),PropertyValue("Overwrite",0,True,0)),
'label':'Pdf',
},
'html-writer':{
- 'mime_type':'text/html',
+ 'mime_type':('text/html',),
'outprops':(PropertyValue("FilterName",0,"HTML (StarWriter)",0),PropertyValue("Overwrite",0,True,0)),
'label':'HTML document',
},
'html-calc':{
- 'mime_type':'text/html',
+ 'mime_type':('text/html',),
'outprops':(PropertyValue("FilterName",0,"HTML (StarCalc)",0),PropertyValue("Overwrite",0,True,0)),
'label':'HTML document',
},
'doc':{
- 'mime_type':'application/msword',
+ 'mime_type':('application/msword',),
'outprops':(PropertyValue("FilterName",0,"MS Word 97",0),PropertyValue("Overwrite",0,True,0)),
'label':'MS Word doc',
},
'rtf':{
- 'mime_type':'application/rtf',
+ 'mime_type':('application/rtf',),
'outprops':(PropertyValue("FilterName",0,"Rich Text Format",0),PropertyValue("Overwrite",0,True,0)),
'label':'Rich Text Format',
},
'xls':{
- 'mime_type':'application/vnd.ms-excel',
+ 'mime_type':('application/vnd.ms-excel',),
'outprops':(PropertyValue("FilterName",0,"MS Excel 97",0),PropertyValue("Overwrite",0,True,0)),
'label':'MS Excel spreadsheet',
},
'csv':{
- 'mime_type':'text/csv',
+ 'mime_type':('text/csv',),
'outprops':(PropertyValue("FilterName",0,"Text - txt - csv (StarCalc)",0),PropertyValue("Overwrite",0,True,0)),
'label':'comma separated',
},
'ppt':{
- 'mime_type':'application/vnd.ms-powerpoint',
+ 'mime_type':('application/vnd.ms-powerpoint',),
'outprops':(PropertyValue("FilterName",0,"MS PowerPoint 97",0),PropertyValue("Overwrite",0,True,0)),
'label':'Powerpoint presentation',
},
'jpg':{
- 'mime_type':'image/jpg',
+ 'mime_type':('image/jpg',),
'outprops':(PropertyValue("FilterName",0,"draw_jpg_Export",0),PropertyValue("Overwrite",0,True,0)),
'label': 'JPEG',
},
'svg':{
- 'mime_type':'image/svg+xml',
+ 'mime_type':('image/svg+xml',),
'outprops':(PropertyValue("FilterName",0,"draw_svg_Export",0),PropertyValue("Overwrite",0,True,0)),
'label':'Scalable Vector Graphics',
},
'draw.pdf':{
- 'mime_type':'application/pdf',
+ 'mime_type':('application/pdf',),
'outprops':(PropertyValue("FilterName",0,"draw_pdf_Export",0),PropertyValue("Overwrite",0,True,0)),
},
'sxc':{
- 'mime_type':'application/vnd.sun.xml.calc',
+ 'mime_type':('application/vnd.sun.xml.calc',),
'outprops':(),
},
'sdc':{
- 'mime_type':'application/vnd.stardivision.calc',
+ 'mime_type':('application/vnd.stardivision.calc', 'application/x-starcalc'),
'outprops':(),
},
#'pxl':{ # OOo is apparently not able to do this one - saves as, but does not import
@@ -141,27 +143,27 @@
#'outprops':(),
#},
'sxw':{
- 'mime_type':'application/vnd.sun.xml.writer',
+ 'mime_type':('application/vnd.sun.xml.writer',),
'outprops':(),
},
'sdw':{
- 'mime_type':'application/vnd.stardivision.writer',
+ 'mime_type':('application/vnd.stardivision.writer',),
'outprops':(),
},
'sxi':{
- 'mime_type':'application/vnd.sun.xml.impress',
+ 'mime_type':('application/vnd.sun.xml.impress',),
'outprops':(),
},
'sdd':{
- 'mime_type':'application/vnd.stardivision.impress',
+ 'mime_type':('application/vnd.stardivision.impress',),
'outprops':(),
},
'sxd':{
- 'mime_type':'application/vnd.sun.xml.draw',
+ 'mime_type':('application/vnd.sun.xml.draw',),
'outprops':(),
},
'sda':{
- 'mime_type':'application/vnd.stardivision.draw',
+ 'mime_type':('application/vnd.stardivision.draw',),
'outprops':(),
},
}
@@ -172,9 +174,10 @@
for k,v in self.types_map.iteritems():
for allowed in v['allowed_from']:
pm=self.property_map[allowed]
- if pm['mime_type'] is None:
+ if pm.get('mime_type') is None:
raise Exception('doc to convert from must have a mimetype')
- self.convertable[pm['mime_type']]={'ext':v['ext'],'mime_type':k}
+ for mt in pm.get('mime_type'):
+ self.convertable[mt]={'ext':v['ext'],'mime_type':k}
# convertions to - [{OOo_mime_type:{type:{'ext':target_non_OOo_extension,'outprops':properties'}},]
self.generable={}
for k,v in self.types_map.iteritems():
@@ -186,6 +189,7 @@
# for convenience - lists of OOo and non-OOo mimetypes
self.ooo_types=self.types_map.keys()
self.non_ooo_types=[v['mime_type'] for v in self.property_map.values() if v['mime_type'] is not None]
+ self.non_ooo_types = list(reduce(operator.add, self.non_ooo_types))
def getAllowedTo(self,mimetype):
return [(type,self.property_map[type].get('label',type)) for type in self.types_map[mimetype]['allowed_to']]
@@ -200,9 +204,15 @@
mimemapper=MimeMapper()
if __name__=='__main__':
+ print '========================================'
print mimemapper.getAllowedTo('application/vnd.oasis.opendocument.text')
+ print '========================================'
print 'ooo_types',mimemapper.ooo_types
+ print '========================================'
print 'non_ooo_types',mimemapper.non_ooo_types
+ print '========================================'
+ print 'convertable', mimemapper.convertable
+ print '========================================'
#print mimemapper.convertable
#for k,v in mimemapper.generable.iteritems():
#print k
Modified: erp5/trunk/utils/oood/worker.py
URL: http://svn.erp5.org/erp5/trunk/utils/oood/worker.py?rev=13235&r1=13234&r2=13235&view=diff
==============================================================================
--- erp5/trunk/utils/oood/worker.py (original)
+++ erp5/trunk/utils/oood/worker.py Tue Mar 6 13:22:13 2007
@@ -121,7 +121,8 @@
and a respective mime type'''
self._loadFile(kw['filename'])
self._generate(kw['extension'])
- kw['mime']=mimemapper.getMimeFor(kw['extension'])
+ mime=mimemapper.getMimeFor(kw['extension'])
+ kw['mime'] = mime[0] # it is a tuple; can be multiple but we don't know which exactly was requested
kw['newfilename']=fileUrlToSystemPath(self.destUrl)
def setmetadata(self,kw):
More information about the Erp5-report
mailing list