[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