[Erp5-report] r14506 - /erp5/trunk/utils/oood/mimemapper.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed May 16 18:28:13 CEST 2007


Author: bartek
Date: Wed May 16 18:28:12 2007
New Revision: 14506

URL: http://svn.erp5.org?rev=14506&view=rev
Log:
support for nearly everything there is (missing: Latex2e), total 111 formats, most of them successfully tested

Modified:
    erp5/trunk/utils/oood/mimemapper.py

Modified: erp5/trunk/utils/oood/mimemapper.py
URL: http://svn.erp5.org/erp5/trunk/utils/oood/mimemapper.py?rev=14506&r1=14505&r2=14506&view=diff
==============================================================================
--- erp5/trunk/utils/oood/mimemapper.py (original)
+++ erp5/trunk/utils/oood/mimemapper.py Wed May 16 18:28:12 2007
@@ -39,51 +39,145 @@
 class MimeMapper:
 
   document_type_dict = {}
-  document_type_dict['text'] = ['odt', 'ott', 'sxw', 'stw', 'doc', '95.doc', '6_0.doc', 'rtf', 'sdw', 'sdw.vor', '4_0.sdw', '4_0.sdw.vor', '3_0.sdw', '3_0.sdw.vor', 'txt', 'enc.txt', 'html-writer', 'pdb', 'docbook.xml', '2003.doc.xml', 'psw', 'pdf']
-  document_type_dict['spreadsheet'] = ['ods', 'ots', 'sxc', 'stc', 'dif', 'dbf', 'xls', 'xlt', '95.xls', '95.xlt', '5_0.xls', '5_0.xlt', 'sdc', 'sdc.vor', '4_0.sdc', '4_0.sdc.vor', '3_0.sdc', '3_0.sdc.vor', 'slk', 'csv', 'html-calc', '2003.xls.xml', 'pxl', 'calc.pdf']
-  document_type_dict['presentation'] = ['impr.pdf', 'ppt', 'impress.jpg',  'odp']
-  document_type_dict['drawing'] = [ 'jpg', 'draw.pdf', 'svg', 'odg']
+
+  # list of supported extensions (keys in property_map)
+  # testing information:
+  # the first character tells if generation to the given format has been tested: (-) not tested, (P)assed, (F)ailed
+  # the second tells if the output was verified and what was the result
+
+  document_type_dict['text'] = [
+     'odt', # P P
+     'ott', # P P
+     'sxw', # P P
+     'stw', # P P
+     'doc', # P P
+     '95.doc', # P P
+     '6_0.doc', # P P
+     'rtf', # P P
+     'sdw', # P P
+     'sdw.vor', # P P
+     '4_0.sdw', # P P
+     '4_0.sdw.vor', # P P
+     '3_0.sdw', # P P
+     '3_0.sdw.vor', # P P
+     'txt', # P P
+     'enc.txt', # P P
+     'writer.html', # P P
+     'pdb', # P -
+     'docbook.xml', # P P
+     '2003.doc.xml', # P P
+     'psw', # P -
+     'pdf' # P P
+     ]
+
+  document_type_dict['spreadsheet'] = [
+     'ods',# P P
+     'ots',# P P
+     'sxc',# P P
+     'stc',# P P
+     'dif',# P -
+     'dbf',# F -
+     'xls',# P P
+     'xlt',# P P
+     '95.xls',# P P
+     '95.xlt',# P P
+     '5_0.xls',# P P
+     '5_0.xlt',# P P
+     'sdc',# P P
+     'sdc.vor',# P P
+     '4_0.sdc',# P P
+     '4_0.sdc.vor',# P P
+     '3_0.sdc',# P P
+     '3_0.sdc.vor',# P P
+     'slk',# P -
+     'csv',# P P
+     'calc.html',# P P
+     '2003.xls.xml',# P P
+     'pxl',# P -
+     'calc.pdf'# P P
+     ]
+
+  document_type_dict['presentation'] = [
+     'odp', # P P
+     'otp', # P P
+     'sxi', # P P
+     'sti', # P P
+     'ppt', # P P
+     'pot', # P P
+     'odp.sxd', # P P
+     'odp.sda', # P P
+     'odp.3_0.sda', # P P
+     'sdd', # P P
+     'sdd.vor', # P P
+     '4_0.sdd', # P P
+     '4_0.sdd.vor', # P P
+     'odp.odg', # P P
+     'impr.html', # P P
+     'impr.pdf', # P P
+     'impr.swf', # P -
+     'impr.xhtml', # P F
+     'impr.bmp', # P P
+     'impr.emf', # P -
+     'impr.eps', # P P
+     'impr.gif', # P P
+     'impr.jpg', # P P
+     'impr.met', # P -
+     'impr.pbm', # P P
+     'impr.pct', # P -
+     'impr.pgm', # P P
+     'impr.png', # P P
+     'impr.ppm', # P P
+     'impr.ras', # P -
+     'impr.svg', # P -
+     'impr.svm', # P -
+     'impr.tiff', # P P
+     'impr.wmf', # P -
+     'impr.xpm', # P P
+     'pwp' # P -
+     ]
+
+  document_type_dict['drawing'] = [ 
+     'odg', # P P
+     'otg', # P P
+     'sxd', # P P
+     'std', # P P
+     'sda', # P P
+     'sda.vor', # P P
+     '3_0.sda', # P P
+     '3_0.sda.vor', # P P
+     'draw.html', # P P
+     'draw.pdf', # P P
+     'draw.swf', # P P
+     'draw.xhtml', # P F
+     'bmp', # P P
+     'emf', # P -
+     'draw.eps', # P P
+     'gif', # P P
+     'jpg', # P P
+     'pbm', # P P
+     'met', # P -
+     'pct', # P -
+     'pgm', # P P
+     'png', # P P
+     'ppm', # P P
+     'ras', # P -
+     'svg', # P -
+     'svm', # P -
+     'tiff', # P P
+     'wmf', # P -
+     'xpm' # P P
+     ]
 
   odf_type_list = ['odt', 'ods', 'odp', 'odg']
 
+  # XXX some formats are in more then one section (e.g. html - can be made from text, from presentation etc); they
+  # have different keys (extensions) here, but mimetype is the same, which can confuse getAllowedTo method if
+  # it is given mimetype as argument.
+  # So, in such a case, all occurrences of such mimetype, or all but one, have omit=True set, so that they are not
+  # taken into account while doing _mimeToExt; so we know that text/html can be converted only to other "text"
+  # formats, while application/x-shockwave-flash can not be converted into anything.
+
   property_map = {
-    'odp':{
-      'mime_type':('application/vnd.oasis.opendocument.presentation',),
-      'label':'Open Document Presentation',
-    },
-    'odg':{
-      'mime_type':('application/vnd.oasis.opendocument.graphics',),
-      'label':'Open Document Graphics',
-    },
-    'impr.pdf':{
-      'mime_type':('application/pdf',),
-      'outprops':(PropertyValue("FilterName",0,"impress_pdf_Export",0),PropertyValue("Overwrite",0,True,0)),
-      'label':'Pdf',
-    },
-    'ppt':{
-      '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',),
-      'outprops':(PropertyValue("FilterName",0,"draw_jpg_Export",0),PropertyValue("Overwrite",0,True,0)),
-      'label': 'JPEG',
-    },
-    'impress.jpg':{
-      'mime_type':('image/jpg',),
-      'outprops':(PropertyValue("FilterName",0,"impress_jpg_Export",0),PropertyValue("Overwrite",0,True,0)),
-      'label': 'JPEG',
-    },
-    'svg':{
-      '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',),
-      'outprops':(PropertyValue("FilterName",0,"draw_pdf_Export",0),PropertyValue("Overwrite",0,True,0)),
-    },
 
     ########## TEXT ########## 
     'odt':{
@@ -132,7 +226,7 @@
       'label':'StarWriter 5.0',
     },
     'sdw.vor':{
-      'mime_type':('application/vnd.stardivision.writer',),
+      'mime_type':('unknown',),
       'outprops':(PropertyValue("FilterName",0,'StarWriter 5.0 Vorlage/Template',0),PropertyValue("Overwrite",0,True,0)),
       'label':'StarWriter 5.0 Template',
     },
@@ -142,7 +236,7 @@
       'label': 'StarWriter 4.0',
     },
     '4_0.sdw.vor':{
-      'mime_type':('application/x-starwriter',),
+      'mime_type':('unknown',),
       'outprops':(PropertyValue("FilterName",0,'StarWriter 4.0 Vorlage/Template',0),PropertyValue("Overwrite",0,True,0)),
       'label':'StarWriter 4.0 Template',
     },
@@ -152,7 +246,7 @@
       'label': 'StarWriter 3.0',
     },
     '3_0.sdw.vor':{
-      'mime_type':('application/x-starwriter',),
+      'mime_type':('unknown',),
       'outprops':(PropertyValue("FilterName",0,'StarWriter 3.0 Vorlage/Template',0),PropertyValue("Overwrite",0,True,0)),
       'label':'StarWriter 3.0 Template',
     },
@@ -166,7 +260,7 @@
       'outprops':(PropertyValue("FilterName",0,"Text (encoded)",0),PropertyValue("Overwrite",0,True,0),PropertyValue("FilterFlags",0,'UTF8,LF',0)),
       'label':'Text (encoded)',
     },
-    'html-writer':{
+    'writer.html':{
       'mime_type':('text/html',),
       'outprops':(PropertyValue("FilterName",0,"HTML (StarWriter)",0),PropertyValue("Overwrite",0,True,0)),
       'label':'HTML Document (OpenOffice.org Writer)',
@@ -193,6 +287,7 @@
     },
     'pdf':{
       'mime_type':('application/pdf',),
+      'omit': True,
       'outprops':(PropertyValue("FilterName",0,"writer_pdf_Export",0),PropertyValue("Overwrite",0,True,0)),
       'label':'Pdf',
     },
@@ -264,7 +359,7 @@
       'label':'StarCalc 5.0',
     },
     'sdc.vor':{
-      'mime_type':('application/vnd.stardivision.calc',),
+      'mime_type':('unknown',),
       'outprops':(PropertyValue("FilterName",0,'StarCalc 5.0 Vorlage/Template',0),PropertyValue("Overwrite",0,True,0)),
       'label':'StarCalc 5.0 Template',
     },
@@ -274,7 +369,7 @@
       'label':'StarCalc 5.0',
     },
     '4_0.sdc.vor':{
-      'mime_type':('application/x-starcalc',),
+      'mime_type':('unknown',),
       'outprops':(PropertyValue("FilterName",0,'StarCalc 5.0 Vorlage/Template',0),PropertyValue("Overwrite",0,True,0)),
       'label':'StarCalc 5.0 Template',
     },
@@ -298,13 +393,15 @@
       'outprops':(PropertyValue("FilterName",0,"Text - txt - csv (StarCalc)",0),PropertyValue("Overwrite",0,True,0)),
       'label':'Text CSV',
     },
-    'html-calc':{
+    'calc.html':{
       'mime_type':('text/html',),
+      'omit': True,
       'outprops':(PropertyValue("FilterName",0,"HTML (StarCalc)",0),PropertyValue("Overwrite",0,True,0)),
       'label':'HTML Document (OpenOffice.org Calc)',
     },
     '2003.xls.xml':{
       'mime_type':('text/xml',),
+      'omit': True,
       'outprops':(PropertyValue("FilterName",0,'MS Excel 2003 XML',0),PropertyValue("Overwrite",0,True,0)),
       'label':'Microsoft Excel 2003 XML',
     },
@@ -315,9 +412,361 @@
     },
     'calc.pdf':{
       'mime_type':('application/pdf',),
+      'omit': True,
       'outprops':(PropertyValue("FilterName",0,"calc_pdf_Export",0),PropertyValue("Overwrite",0,True,0)),
       'label':'PDF - Portable Document Format',
     },
+
+    ########## PRESENTATION ########## 
+    'odp':{
+      'mime_type':('application/vnd.oasis.opendocument.presentation',),
+      'outprops':(PropertyValue('FilterName',0,'impress8',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'OpenDocument Presentation',
+    },
+    'otp':{
+      'mime_type':('application/vnd.oasis.opendocument.presentation-template',),
+      'outprops':(PropertyValue('FilterName',0,'impress8_template',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'OpenDocument Presentation Template',
+    },
+    'sxi':{
+      'mime_type':('application/vnd.sun.xml.impress',),
+      'outprops':(PropertyValue('FilterName',0,'StarOffice XML (Impress)',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'OpenOffice.org 1.0 Presentation',
+    },
+    'sti':{
+      'mime_type':('application/vnd.sun.xml.impress.template',),
+      'outprops':(PropertyValue('FilterName',0,'impress_StarOffice_XML_Impress_Template',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'OpenOffice.org 1.0 Presentation Template',
+    },
+    'ppt':{
+      'mime_type':('application/vnd.ms-powerpoint',),
+      'outprops':(PropertyValue("FilterName",0,'MS PowerPoint 97',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'Microsoft PowerPoint 97/2000/XP',
+    },
+    'pot':{
+      'mime_type':('application/vnd.ms-powerpoint',),
+      'outprops':(PropertyValue('FilterName',0,'MS PowerPoint 97 Vorlage',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'Microsoft PowerPoint 97/2000/XP Template',
+    },
+    'odp.sxd':{
+      'mime_type':('application/vnd.sun.xml.draw',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress_StarOffice_XML_Draw',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'OpenOffice.org 1.0 Drawing (OpenOffice.org Impress)',
+    },
+    'odp.sda':{
+      'mime_type':('application/vnd.stardivision.draw',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'StarDraw 5.0 (StarImpress)',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'StarDraw 5.0 (OpenOffice.org Impress)',
+    },
+    'odp.3_0.sda':{
+      'mime_type':('application/vnd.stardivision.draw',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'StarDraw 3.0 (StarImpress)',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'StarDraw 3.0 (OpenOffice.org Impress)',
+    },
+    'sdd':{
+      'mime_type':('application/vnd.stardivision.impress',),
+      'outprops':(PropertyValue('FilterName',0,'StarImpress 5.0',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'StarImpress 5.0',
+    },
+    'sdd.vor':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'StarImpress 5.0 Vorlage',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'StarImpress 5.0 Template',
+    },
+    '4_0.sdd':{
+      'mime_type':('application/x-starimpress',),
+      'outprops':(PropertyValue('FilterName',0,'StarImpress 4.0',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'StarImpress 4.0',
+    },
+    '4_0.sdd.vor':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'StarImpress 4.0 Vorlage',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'StarImpress 4.0 Template',
+    },
+    'odp.odg':{
+      'mime_type':('application/vnd.oasis.opendocument.graphics',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress8_draw',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'OpenDocument Drawing (Impress)',
+    },
+    'impr.html':{
+      'mime_type':('text/html',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress_html_Export',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'HTML Document (OpenOffice.org Impress)',
+    },
+    'impr.pdf':{
+      'mime_type':('application/pdf',),
+      'omit': True,
+      'outprops':(PropertyValue("FilterName",0,"impress_pdf_Export",0),PropertyValue("Overwrite",0,True,0)),
+      'label':'PDF - Portable Document Format',
+    },
+    'impr.swf':{
+      'mime_type':('application/x-shockwave-flash',),
+      'omit': True,
+      'outprops':(PropertyValue("FilterName",0,"impress_flash_Export",0),PropertyValue("Overwrite",0,True,0)),
+      'label':'Macromedia Flash (SWF)',
+    },
+    'impr.xhtml':{
+      'mime_type':('application/xhtml+xml',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'XHTML Impress File',0),PropertyValue("Overwrite",0,True,0)),
+      'label':'XHTML',
+    },
+    'impr.bmp':{
+      'mime_type':('image/bmp',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress_bmp_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'BMP - Windows Bitmap',
+    },
+    'impr.emf':{
+      'mime_type':('unknown',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress_emf_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'EMF - Enhanced Metafile',
+    },
+    'impr.eps':{
+      'mime_type':('unknown',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress_eps_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'EPS - Encapsulated PostScript',
+    },
+    'impr.gif':{
+      'mime_type':('image/gif',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress_gif_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'GIF - Graphics Interchange Format',
+    },
+    'impr.jpg':{
+      'mime_type':('image/jpg',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress_jpg_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'JPEG - Joint Photographic Experts Group',
+    },
+    'impr.met':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'impress_met_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'MET - OS/2 Metafile',
+    },
+    'impr.pbm':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'impress_pbm_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PBM - Portable Bitmap',
+    },
+    'impr.pct':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'impress_pct_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PCT - Mac Pict',
+    },
+    'impr.pgm':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'impress_pgm_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PGM - Portable Graymap',
+    },
+    'impr.png':{
+      'mime_type':('image/png',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress_png_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PNG - Portable Network Graphic',
+    },
+    'impr.ppm':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'impress_ppm_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PPM - Portable Pixelmap',
+    },
+    'impr.ras':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'impress_ras_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'RAS - Sun Raster Image',
+    },
+    'impr.svg':{
+      'mime_type':('image/svg+xml',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress_svg_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'SVG - Scalable Vector Graphics',
+    },
+    'impr.svm':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'impress_svm_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'SVM - StarView Metafile',
+    },
+    'impr.tiff':{
+      'mime_type':('image/tiff',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'impress_tif_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'TIFF - Tagged Image File Format',
+    },
+    'impr.wmf':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'impress_wmf_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'WMF - Windows Metafile',
+    },
+    'impr.xpm':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'impress_xpm_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'XPM - X PixMap',
+    },
+    'pwp':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'placeware_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PWP - PlaceWare',
+    },
+
+    ########## DRAWING ########## 
+    'odg':{
+      'mime_type':('application/vnd.oasis.opendocument.graphics',),
+      'outprops':(PropertyValue('FilterName',0,'draw8',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'OpenDocument Drawing',
+    },
+    'otg':{
+      'mime_type':('application/vnd.oasis.opendocument.graphics-template',),
+      'outprops':(PropertyValue('FilterName',0,'draw8_template',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'OpenDocument Drawing Template',
+    },
+    'sxd':{
+      'mime_type':('application/vnd.sun.xml.draw',),
+      'outprops':(PropertyValue('FilterName',0,'StarOffice XML (Draw)',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'OpenOffice.org 1.0 Drawing',
+    },
+    'std':{
+      'mime_type':('application/vnd.sun.xml.draw.template',),
+      'outprops':(PropertyValue('FilterName',0,'draw_StarOffice_XML_Draw_Template',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'OpenOffice.org 1.0 Drawing Template',
+    },
+    'sda':{
+      'mime_type':('application.vnd.stardivision.draw',),
+      'outprops':(PropertyValue('FilterName',0,'StarDraw 5.0',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'StarDraw 5.0',
+    },
+    'sda.vor':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'StarDraw 5.0 Vorlage',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'StarDraw 5.0 Template',
+    },
+    '3_0.sda':{
+      'mime_type':('application.vnd.stardivision.draw',),
+      'outprops':(PropertyValue('FilterName',0,'StarDraw 3.0',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'StarDraw 3.0',
+    },
+    '3_0.sda.vor':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'StarDraw 3.0 Vorlage',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'StarDraw 3.0 Template',
+    },
+    'draw.html':{
+      'mime_type':('text/html',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'draw_html_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'HTML Document (OpenOffice.org Draw)',
+    },
+    'draw.pdf':{
+      'mime_type':('application/pdf',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'draw_pdf_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PDF - Portable Document Format',
+    },
+    'draw.swf':{
+      'mime_type':('application/x-shockwave-flash',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'draw_flash_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'Macromedia Flash (SWF)',
+    },
+    'draw.xhtml':{
+      'mime_type':('text/xhtml+xml',),
+      'omit': True,
+      'outprops':(PropertyValue('FilterName',0,'XHTML Draw File',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'XHTML',
+    },
+    'bmp':{
+      'mime_type':('image/bmp',),
+      'outprops':(PropertyValue('FilterName',0,'draw_bmp_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'BMP - Windows Bitmap',
+    },
+    'emf':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_emf_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'EMF - Enhanced Metafile',
+    },
+    'draw.eps':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_eps_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'EPS - Encapsulated PostScript',
+    },
+    'gif':{
+      'mime_type':('image/gif',),
+      'outprops':(PropertyValue('FilterName',0,'draw_gif_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'GIF - Graphics Interchange Format',
+    },
+    'jpg':{
+      'mime_type':('image/jpeg',),
+      'outprops':(PropertyValue('FilterName',0,'draw_jpg_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'JPEG - Joint Photographic Experts Group',
+    },
+    'pbm':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_pbm_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PBM - Portable Bitmap',
+    },
+    'met':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_met_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'MET - OS/2 Metafile',
+    },
+    'pct':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_pct_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PCT - Mac Pict',
+    },
+    'pgm':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_pgm_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PGM - Portable Graymap',
+    },
+    'png':{
+      'mime_type':('image/png',),
+      'outprops':(PropertyValue('FilterName',0,'draw_png_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PNG - Portable Network Graphic',
+    },
+    'ppm':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_ppm_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'PPM - Portable Pixelmap',
+    },
+    'ras':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_ras_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'RAS - Sun Raster Image',
+    },
+    'svg':{
+      'mime_type':('image/svg+xml',),
+      'outprops':(PropertyValue('FilterName',0,'draw_svg_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'SVG - Scalable Vector Graphics',
+    },
+    'svm':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_svm_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'SVM - StarView Metafile',
+    },
+    'tiff':{
+      'mime_type':('image/tiff',),
+      'outprops':(PropertyValue('FilterName',0,'draw_tif_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'TIFF - Tagged Image File Format',
+    },
+    'wmf':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_wmf_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'WMF - Windows Metafile',
+    },
+    'xpm':{
+      'mime_type':('unknown',),
+      'outprops':(PropertyValue('FilterName',0,'draw_xpm_Export',0),PropertyValue('Overwrite',0,True,0)),
+      'label':'XPM - X PixMap',
+    },
+
+
   }
 
   def __init__(self):
@@ -373,8 +822,10 @@
     """
     for extension_list in self.document_type_dict.values():
       for extension in extension_list:
-        if mimetype in self.property_map[extension]['mime_type']:
-          return extension
+        property_dict = self.property_map[extension]
+        if mimetype in property_dict['mime_type']:
+          if not property_dict.has_key('omit') or not property_dict['omit']:
+            return extension
 
   def _extToType(self, extension):
     """
@@ -441,7 +892,16 @@
 mimemapper = MimeMapper()
 
 if __name__=='__main__':
-  print '========================================'
+  print mimemapper.getAllowedTo(mimetype='text/html')
+  print mimemapper.getAllowedTo(mimetype='application/x-shockwave-flash')
+  print len(mimemapper.property_map.keys())
+  print reduce(operator.add, [len(l) for l in mimemapper.document_type_dict.values()])
+  sys.exit(0)
+  for k,v in mimemapper.document_type_dict.items():
+    print k
+    print v
+    print '========================================'
+  sys.exit(0)
   print mimemapper.isOdf('application/vnd.oasis.opendocument.text')
   print '========================================'
   print mimemapper.getOdfInfo(extension='txt')




More information about the Erp5-report mailing list