provide icon attribute; work in progress: BSCW interface
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2606 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									5bfe771ab9
								
							
						
					
					
						commit
						18f29f8d9a
					
				
					 8 changed files with 843 additions and 29 deletions
				
			
		|  | @ -22,13 +22,15 @@ Base implementation for accessing external content objects. | |||
| $Id$ | ||||
| """ | ||||
| 
 | ||||
| import os | ||||
| from zope.app.container.contained import Contained | ||||
| from zope.cachedescriptors.property import Lazy | ||||
| from zope import component | ||||
| from zope.interface import implements | ||||
| 
 | ||||
| from cybertools.integrator.interfaces import IContainerFactory, IFileFactory | ||||
| from cybertools.integrator.interfaces import IReadContainer, IFile, IImage | ||||
| from cybertools.integrator.interfaces import IContainerFactory | ||||
| from cybertools.integrator.interfaces import IItemFactory, IFileFactory | ||||
| from cybertools.integrator.interfaces import IReadContainer, IItem, IFile, IImage | ||||
| 
 | ||||
| 
 | ||||
| # proxy base (sample) classes | ||||
|  | @ -37,14 +39,20 @@ class ReadContainer(Contained): | |||
| 
 | ||||
|     implements(IReadContainer) | ||||
| 
 | ||||
|     factoryName = 'sample' | ||||
|     __parent__ = None | ||||
|     factoryName = 'sample' | ||||
| 
 | ||||
|     icon = 'folder' | ||||
| 
 | ||||
|     def __init__(self, address, **kw): | ||||
|         self.address = address | ||||
|         for k, v in kw.items(): | ||||
|             setattr(self, k, v) | ||||
| 
 | ||||
|     @Lazy | ||||
|     def itemFactory(self): | ||||
|         return component.getUtility(IItemFactory, name=self.factoryName) | ||||
| 
 | ||||
|     @Lazy | ||||
|     def fileFactory(self): | ||||
|         return component.getUtility(IFileFactory, name=self.factoryName) | ||||
|  | @ -82,14 +90,24 @@ class ReadContainer(Contained): | |||
|     has_key = __contains__ | ||||
| 
 | ||||
| 
 | ||||
| class File(object): | ||||
| class Item(object): | ||||
| 
 | ||||
|     implements(IFile) | ||||
|     implements(IItem) | ||||
| 
 | ||||
|     contentType = None | ||||
|     data = None | ||||
|     icon = 'item' | ||||
|     __parent__ = None | ||||
| 
 | ||||
|     def __init__(self, address, **kw): | ||||
|         self.address = address | ||||
|         for k, v in kw.items(): | ||||
|             setattr(self, k, v) | ||||
| 
 | ||||
| 
 | ||||
| class File(Item): | ||||
| 
 | ||||
|     implements(IFile) | ||||
| 
 | ||||
|     def __init__(self, address, contentType, **kw): | ||||
|         self.address = address | ||||
|         self.contentType = contentType | ||||
|  | @ -104,11 +122,17 @@ class File(object): | |||
|     def getSize(self): | ||||
|         return len(self.data) | ||||
| 
 | ||||
|     @property | ||||
|     def icon(self): | ||||
|         return (mimeTypes.get(self.contentType) or ['unknown'])[0] | ||||
| 
 | ||||
| def Image(File): | ||||
| 
 | ||||
| class Image(File): | ||||
| 
 | ||||
|     implements(IImage) | ||||
| 
 | ||||
|     icon = 'image' | ||||
| 
 | ||||
|     def getImageSize(self): | ||||
|         return 0, 0 | ||||
| 
 | ||||
|  | @ -130,9 +154,33 @@ class ContainerFactory(Factory): | |||
|     proxyClass = ReadContainer | ||||
| 
 | ||||
| 
 | ||||
| class ItemFactory(Factory): | ||||
| 
 | ||||
|     implements(IItemFactory) | ||||
| 
 | ||||
|     proxyClass = Item | ||||
| 
 | ||||
| 
 | ||||
| class FileFactory(Factory): | ||||
| 
 | ||||
|     implements(IFileFactory) | ||||
| 
 | ||||
|     proxyClass = File   # real implementations should also care about images | ||||
| 
 | ||||
| 
 | ||||
| # provide a dictionary of MIME types with extensions = icon names | ||||
| 
 | ||||
| class MimeTypes(dict): | ||||
| 
 | ||||
|     def __init__(self): | ||||
|         super(MimeTypes, self).__init__() | ||||
|         fn = os.path.join(os.path.dirname(__file__), 'mime.types') | ||||
|         mtFile = open(fn, 'r') | ||||
|         for line in mtFile: | ||||
|             line = line.strip() | ||||
|             if line: | ||||
|                 parts = line.split() | ||||
|                 self[parts[0]] = parts[1:] | ||||
|         mtFile.close() | ||||
| 
 | ||||
| mimeTypes = MimeTypes() | ||||
|  |  | |||
|  | @ -30,8 +30,8 @@ from zope.cachedescriptors.property import Lazy | |||
| from zope.contenttype import guess_content_type | ||||
| from zope.interface import implements, Attribute | ||||
| 
 | ||||
| from cybertools.integrator.base import ContainerFactory, FileFactory | ||||
| from cybertools.integrator.base import ReadContainer, File, Image | ||||
| from cybertools.integrator.base import ContainerFactory, ItemFactory, FileFactory | ||||
| from cybertools.integrator.base import ReadContainer, Item, File, Image | ||||
| from cybertools.text import mimetypes | ||||
| 
 | ||||
| 
 | ||||
|  | @ -62,7 +62,10 @@ class ReadContainer(ReadContainer): | |||
|     def data(self): | ||||
|         data = self.server.get_attributes(self.address, | ||||
|                 ['__class__', 'type', 'id', 'name', 'descr', 'url_link'], 1, True) | ||||
|         if len(data) > 1: | ||||
|             return dict((item['id'], item) for item in data[1]) | ||||
|         else: | ||||
|             return {} | ||||
| 
 | ||||
|     def keys(self): | ||||
|         return self.data.keys() | ||||
|  | @ -79,14 +82,16 @@ class ReadContainer(ReadContainer): | |||
|         if key not in self.data: | ||||
|             return default | ||||
|         item = self.data[key] | ||||
|         if 'Folder' in item['__class__']: | ||||
|         itemType = item['__class__'].split('.')[-1] | ||||
|         if itemType == 'Folder': | ||||
|             return self.containerFactory(item['id'], server=self.server, | ||||
|                                          name=item['name']) | ||||
|         elif 'Document' in item['__class__']: | ||||
|             return self.fileFactory(item['id'], item['type'], server=self.server, | ||||
|                                     name=item['name']) | ||||
|         elif itemType == 'Document': | ||||
|             return self.fileFactory(item['id'], contentType=item['type'], | ||||
|                                     server=self.server, name=item['name']) | ||||
|         else: | ||||
|             return OtherObject(item['id'], None, server=self.server, name=item['name']) | ||||
|             return self.itemFactory(item['id'], server=self.server, | ||||
|                                     name=item['name'], type=itemType) | ||||
| 
 | ||||
|     def values(self): | ||||
|         return [self.get(k) for k in self] | ||||
|  | @ -101,6 +106,13 @@ class ReadContainer(ReadContainer): | |||
|         return key in self.keys() | ||||
| 
 | ||||
| 
 | ||||
| class Item(Item): | ||||
| 
 | ||||
|     @property | ||||
|     def icon(self): | ||||
|         return self.type.lower() | ||||
| 
 | ||||
| 
 | ||||
| class File(File): | ||||
| 
 | ||||
|     contentType = None | ||||
|  | @ -113,11 +125,6 @@ class File(File): | |||
|         return 0 | ||||
| 
 | ||||
| 
 | ||||
| class OtherObject(File): | ||||
| 
 | ||||
|     data = u'' | ||||
| 
 | ||||
| 
 | ||||
| # factory classes | ||||
| 
 | ||||
| class ContainerFactory(ContainerFactory): | ||||
|  | @ -131,10 +138,18 @@ class ContainerFactory(ContainerFactory): | |||
|         return self.proxyClass(address, server=server, **kw) | ||||
| 
 | ||||
| 
 | ||||
| class ItemFactory(ItemFactory): | ||||
| 
 | ||||
|     proxyClass = Item | ||||
| 
 | ||||
| 
 | ||||
| class FileFactory(FileFactory): | ||||
| 
 | ||||
|     def __call__(self, address, **kw): | ||||
|         contentType = kw.pop('type', 'application/octet-stream') | ||||
|         contentType = kw.pop('contentType', 'application/octet-stream') | ||||
|         if contentType.startswith('image/'): | ||||
|             obj = Image(address, contentType, **kw) | ||||
|         else: | ||||
|             obj = File(address, contentType, **kw) | ||||
|         obj.contentType = contentType | ||||
|         return obj | ||||
|  |  | |||
|  | @ -20,15 +20,33 @@ repository for testing purposes. | |||
|   >>> server.get_attributes('4', standardAttributes + ['containers'], 1, True) | ||||
|   [{...'name': 'public'...}, [{...'name': 'Introduction'...}]] | ||||
| 
 | ||||
| Access via read container and file proxies | ||||
| ------------------------------------------ | ||||
| Access via read container and item/file proxies | ||||
| ----------------------------------------------- | ||||
| 
 | ||||
| Let's first register the proxy factory utilities. | ||||
| 
 | ||||
|   >>> from zope import component | ||||
|   >>> from cybertools.integrator.bscw import ContainerFactory | ||||
|   >>> from cybertools.integrator.bscw import ContainerFactory, ItemFactory, FileFactory | ||||
|   >>> component.provideUtility(ContainerFactory(), name='bscw') | ||||
|   >>> component.provideUtility(ItemFactory(), name='bscw') | ||||
|   >>> component.provideUtility(FileFactory(), name='bscw') | ||||
| 
 | ||||
| We can now access the root object of the BSCW repository | ||||
| 
 | ||||
|   >>> from cybertools.integrator.interfaces import IContainerFactory | ||||
|   >>> root = component.getUtility(IContainerFactory, name='bscw')('4', server=server) | ||||
| 
 | ||||
|   >>> sorted(root) | ||||
|   ['bs_5'] | ||||
|   >>> sorted(root.items()) | ||||
|   [('bs_5', <...ReadContainer object...>)] | ||||
| 
 | ||||
|   >>> root.icon | ||||
|   'folder' | ||||
| 
 | ||||
|   >>> bs_5 = root['bs_5'] | ||||
|   >>> data = server.get_attributes('bs_5', | ||||
|   ...       ['__class__', 'type', 'id', 'name', 'descr', 'url_link'], 1, True) | ||||
| 
 | ||||
|   >>> bs_5.items() | ||||
|   [] | ||||
|   >>> bs_5.icon | ||||
|   'folder' | ||||
|  |  | |||
|  | @ -98,6 +98,7 @@ class File(File): | |||
| class Image(File): | ||||
| 
 | ||||
|     width = height = 0 | ||||
|     icon = 'image' | ||||
| 
 | ||||
|     def getImageSize(self): | ||||
|         return self.width, self.height | ||||
|  |  | |||
|  | @ -39,12 +39,16 @@ Accessing Objects in the Filesystem | |||
|   'application/x-tar' | ||||
|   >>> file.getSize() | ||||
|   432L | ||||
|   >>> file.icon | ||||
|   'tar' | ||||
| 
 | ||||
|   >>> logo = sub['loops_logo.png'] | ||||
|   >>> logo.contentType | ||||
|   'image/png' | ||||
|   >>> logo.getImageSize() | ||||
|   (145, 42) | ||||
|   >>> logo.icon | ||||
|   'image' | ||||
| 
 | ||||
|   >>> html = top['index.html'] | ||||
|   >>> html.contentType | ||||
|  | @ -55,4 +59,6 @@ Accessing Objects in the Filesystem | |||
|       <a href="sub">Subdirectory</a> | ||||
|       <a href="sub/demo.tgz">Demo</a>... | ||||
|   </html>... | ||||
|   >>> html.icon | ||||
|   'html' | ||||
| 
 | ||||
|  |  | |||
|  | @ -28,7 +28,25 @@ from zope.app.publication.interfaces import IFileContent | |||
| from zope.interface import Interface, Attribute | ||||
| 
 | ||||
| 
 | ||||
| class IFile(IFile, IFileContent): | ||||
| class IProxy(Interface): | ||||
| 
 | ||||
|     icon = Attribute('The name of an icon that may be used for symbolizing ' | ||||
|                 'this object.') | ||||
| 
 | ||||
| 
 | ||||
| class IReadContainer(IProxy, IReadContainer): | ||||
|     """ A readable container of items. | ||||
|     """ | ||||
| 
 | ||||
| 
 | ||||
| class IItem(IProxy, Interface): | ||||
|     """ A terminal kind of object, i.e. not a container of other objects. | ||||
|     """ | ||||
| 
 | ||||
| 
 | ||||
| class IFile(IItem, IFile, IFileContent): | ||||
| 
 | ||||
|     contentType = Attribute('The MIME type of the object.') | ||||
| 
 | ||||
|     def getData(num): | ||||
|         """ Return num bytes from the file`s data. | ||||
|  | @ -52,8 +70,12 @@ class IContainerFactory(IProxyFactory): | |||
|     """ | ||||
| 
 | ||||
| 
 | ||||
| class IItemFactory(IProxyFactory): | ||||
|     """ Creates general terminal proxy objects. | ||||
|     """ | ||||
| 
 | ||||
| 
 | ||||
| class IFileFactory(IProxyFactory): | ||||
|     """ Creates file proxy objects for the external specification | ||||
|         given. | ||||
|     """ | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										701
									
								
								integrator/mime.types
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										701
									
								
								integrator/mime.types
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,701 @@ | |||
| application/activemessage | ||||
| application/andrew-inset			ez | ||||
| application/applefile | ||||
| application/atomicmail | ||||
| application/batch-SMTP | ||||
| application/beep+xml | ||||
| application/cals-1840 | ||||
| application/commonground | ||||
| application/cu-seeme				cu | ||||
| application/cybercash | ||||
| application/dca-rft | ||||
| application/dec-dx | ||||
| application/docbook+xml | ||||
| application/dsptype				tsp | ||||
| application/dvcs | ||||
| application/edi-consent | ||||
| application/edi-x12 | ||||
| application/edifact | ||||
| application/eshop | ||||
| application/font-tdpfr | ||||
| application/futuresplash			spl | ||||
| application/ghostview | ||||
| application/hta					hta | ||||
| application/http | ||||
| application/hyperstudio | ||||
| application/iges | ||||
| application/index | ||||
| application/index.cmd | ||||
| application/index.obj | ||||
| application/index.response | ||||
| application/index.vnd | ||||
| application/iotp | ||||
| application/ipp | ||||
| application/isup | ||||
| application/java-archive			jar | ||||
| application/java-serialized-object		ser | ||||
| application/java-vm				class | ||||
| application/mac-binhex40			hqx | ||||
| application/mac-compactpro			cpt | ||||
| application/macwriteii | ||||
| application/marc | ||||
| application/mathematica				nb | ||||
| application/mathematica-old | ||||
| application/msaccess				mdb | ||||
| application/msword				doc dot | ||||
| application/news-message-id | ||||
| application/news-transmission | ||||
| application/ocsp-request | ||||
| application/ocsp-response | ||||
| application/octet-stream			bin | ||||
| application/oda					oda | ||||
| application/ogg					ogg | ||||
| application/parityfec | ||||
| application/pdf					pdf | ||||
| application/pgp-encrypted | ||||
| application/pgp-keys				key | ||||
| application/pgp-signature			pgp | ||||
| application/pics-rules				prf | ||||
| application/pkcs10 | ||||
| application/pkcs7-mime | ||||
| application/pkcs7-signature | ||||
| application/pkix-cert | ||||
| application/pkix-crl | ||||
| application/pkixcmp | ||||
| application/postscript				ps ai eps | ||||
| application/prs.alvestrand.titrax-sheet | ||||
| application/prs.cww | ||||
| application/prs.nprend | ||||
| application/qsig | ||||
| application/rar					rar | ||||
| application/rdf+xml				rdf | ||||
| application/remote-printing | ||||
| application/riscos | ||||
| application/rss+xml				rss | ||||
| application/rtf | ||||
| application/sdp | ||||
| application/set-payment | ||||
| application/set-payment-initiation | ||||
| application/set-registration | ||||
| application/set-registration-initiation | ||||
| application/sgml | ||||
| application/sgml-open-catalog | ||||
| application/sieve | ||||
| application/slate | ||||
| application/smil				smi smil | ||||
| application/timestamp-query | ||||
| application/timestamp-reply | ||||
| application/vemmi | ||||
| application/whoispp-query | ||||
| application/whoispp-response | ||||
| application/wita | ||||
| application/wordperfect				wpd | ||||
| application/wordperfect5.1			wp5 | ||||
| application/x400-bp | ||||
| application/xhtml+xml				xhtml xht | ||||
| application/xml					xml xsl | ||||
| application/xml-dtd | ||||
| application/xml-external-parsed-entity | ||||
| application/zip					zip | ||||
| application/vnd.3M.Post-it-Notes | ||||
| application/vnd.accpac.simply.aso | ||||
| application/vnd.accpac.simply.imp | ||||
| application/vnd.acucobol | ||||
| application/vnd.aether.imp | ||||
| application/vnd.anser-web-certificate-issue-initiation | ||||
| application/vnd.anser-web-funds-transfer-initiation | ||||
| application/vnd.audiograph | ||||
| application/vnd.bmi | ||||
| application/vnd.businessobjects | ||||
| application/vnd.canon-cpdl | ||||
| application/vnd.canon-lips | ||||
| application/vnd.cinderella			cdy | ||||
| application/vnd.claymore | ||||
| application/vnd.commerce-battelle | ||||
| application/vnd.commonspace | ||||
| application/vnd.comsocaller | ||||
| application/vnd.contact.cmsg | ||||
| application/vnd.cosmocaller | ||||
| application/vnd.ctc-posml | ||||
| application/vnd.cups-postscript | ||||
| application/vnd.cups-raster | ||||
| application/vnd.cups-raw | ||||
| application/vnd.cybank | ||||
| application/vnd.dna | ||||
| application/vnd.dpgraph | ||||
| application/vnd.dxr | ||||
| application/vnd.ecdis-update | ||||
| application/vnd.ecowin.chart | ||||
| application/vnd.ecowin.filerequest | ||||
| application/vnd.ecowin.fileupdate | ||||
| application/vnd.ecowin.series | ||||
| application/vnd.ecowin.seriesrequest | ||||
| application/vnd.ecowin.seriesupdate | ||||
| application/vnd.enliven | ||||
| application/vnd.epson.esf | ||||
| application/vnd.epson.msf | ||||
| application/vnd.epson.quickanime | ||||
| application/vnd.epson.salt | ||||
| application/vnd.epson.ssf | ||||
| application/vnd.ericsson.quickcall | ||||
| application/vnd.eudora.data | ||||
| application/vnd.fdf | ||||
| application/vnd.ffsns | ||||
| application/vnd.flographit | ||||
| application/vnd.framemaker | ||||
| application/vnd.fsc.weblaunch | ||||
| application/vnd.fujitsu.oasys | ||||
| application/vnd.fujitsu.oasys2 | ||||
| application/vnd.fujitsu.oasys3 | ||||
| application/vnd.fujitsu.oasysgp | ||||
| application/vnd.fujitsu.oasysprs | ||||
| application/vnd.fujixerox.ddd | ||||
| application/vnd.fujixerox.docuworks | ||||
| application/vnd.fujixerox.docuworks.binder | ||||
| application/vnd.fut-misnet | ||||
| application/vnd.grafeq | ||||
| application/vnd.groove-account | ||||
| application/vnd.groove-identity-message | ||||
| application/vnd.groove-injector | ||||
| application/vnd.groove-tool-message | ||||
| application/vnd.groove-tool-template | ||||
| application/vnd.groove-vcard | ||||
| application/vnd.hhe.lesson-player | ||||
| application/vnd.hp-HPGL | ||||
| application/vnd.hp-PCL | ||||
| application/vnd.hp-PCLXL | ||||
| application/vnd.hp-hpid | ||||
| application/vnd.hp-hps | ||||
| application/vnd.httphone | ||||
| application/vnd.hzn-3d-crossword | ||||
| application/vnd.ibm.MiniPay | ||||
| application/vnd.ibm.afplinedata | ||||
| application/vnd.ibm.modcap | ||||
| application/vnd.informix-visionary | ||||
| application/vnd.intercon.formnet | ||||
| application/vnd.intertrust.digibox | ||||
| application/vnd.intertrust.nncp | ||||
| application/vnd.intu.qbo | ||||
| application/vnd.intu.qfx | ||||
| application/vnd.irepository.package+xml | ||||
| application/vnd.is-xpr | ||||
| application/vnd.japannet-directory-service | ||||
| application/vnd.japannet-jpnstore-wakeup | ||||
| application/vnd.japannet-payment-wakeup | ||||
| application/vnd.japannet-registration | ||||
| application/vnd.japannet-registration-wakeup | ||||
| application/vnd.japannet-setstore-wakeup | ||||
| application/vnd.japannet-verification | ||||
| application/vnd.japannet-verification-wakeup | ||||
| application/vnd.koan | ||||
| application/vnd.lotus-1-2-3 | ||||
| application/vnd.lotus-approach | ||||
| application/vnd.lotus-freelance | ||||
| application/vnd.lotus-notes | ||||
| application/vnd.lotus-organizer | ||||
| application/vnd.lotus-screencam | ||||
| application/vnd.lotus-wordpro | ||||
| application/vnd.mcd | ||||
| application/vnd.mediastation.cdkey | ||||
| application/vnd.meridian-slingshot | ||||
| application/vnd.mif | ||||
| application/vnd.minisoft-hp3000-save | ||||
| application/vnd.mitsubishi.misty-guard.trustweb | ||||
| application/vnd.mobius.daf | ||||
| application/vnd.mobius.dis | ||||
| application/vnd.mobius.msl | ||||
| application/vnd.mobius.plc | ||||
| application/vnd.mobius.txf | ||||
| application/vnd.motorola.flexsuite | ||||
| application/vnd.motorola.flexsuite.adsi | ||||
| application/vnd.motorola.flexsuite.fis | ||||
| application/vnd.motorola.flexsuite.gotap | ||||
| application/vnd.motorola.flexsuite.kmr | ||||
| application/vnd.motorola.flexsuite.ttc | ||||
| application/vnd.motorola.flexsuite.wem | ||||
| application/vnd.mozilla.xul+xml			xul | ||||
| application/vnd.ms-artgalry | ||||
| application/vnd.ms-asf | ||||
| application/vnd.ms-excel			xls xlb xlt | ||||
| application/vnd.ms-lrm | ||||
| application/vnd.ms-pki.seccat			cat | ||||
| application/vnd.ms-pki.stl			stl | ||||
| application/vnd.ms-powerpoint			ppt pps | ||||
| application/vnd.ms-project | ||||
| application/vnd.ms-tnef | ||||
| application/vnd.ms-works | ||||
| application/vnd.mseq | ||||
| application/vnd.msign | ||||
| application/vnd.music-niff | ||||
| application/vnd.musician | ||||
| application/vnd.netfpx | ||||
| application/vnd.noblenet-directory | ||||
| application/vnd.noblenet-sealer | ||||
| application/vnd.noblenet-web | ||||
| application/vnd.novadigm.EDM | ||||
| application/vnd.novadigm.EDX | ||||
| application/vnd.novadigm.EXT | ||||
| application/vnd.oasis.opendocument.chart	odc | ||||
| application/vnd.oasis.opendocument.database	odb | ||||
| application/vnd.oasis.opendocument.formula	odf | ||||
| application/vnd.oasis.opendocument.graphics	odg | ||||
| application/vnd.oasis.opendocument.graphics-template otg | ||||
| application/vnd.oasis.opendocument.image	odi | ||||
| application/vnd.oasis.opendocument.presentation	odp | ||||
| application/vnd.oasis.opendocument.presentation-template otp | ||||
| application/vnd.oasis.opendocument.spreadsheet	ods | ||||
| application/vnd.oasis.opendocument.spreadsheet-template ots | ||||
| application/vnd.oasis.opendocument.text		odt | ||||
| application/vnd.oasis.opendocument.text-master	odm | ||||
| application/vnd.oasis.opendocument.text-template ott | ||||
| application/vnd.oasis.opendocument.text-web	oth | ||||
| application/vnd.osa.netdeploy | ||||
| application/vnd.palm | ||||
| application/vnd.pg.format | ||||
| application/vnd.pg.osasli | ||||
| application/vnd.powerbuilder6 | ||||
| application/vnd.powerbuilder6-s | ||||
| application/vnd.powerbuilder7 | ||||
| application/vnd.powerbuilder7-s | ||||
| application/vnd.powerbuilder75 | ||||
| application/vnd.powerbuilder75-s | ||||
| application/vnd.previewsystems.box | ||||
| application/vnd.publishare-delta-tree | ||||
| application/vnd.pvi.ptid1 | ||||
| application/vnd.pwg-xhtml-print+xml | ||||
| application/vnd.rapid | ||||
| application/vnd.rim.cod				cod | ||||
| application/vnd.s3sms | ||||
| application/vnd.seemail | ||||
| application/vnd.shana.informed.formdata | ||||
| application/vnd.shana.informed.formtemplate | ||||
| application/vnd.shana.informed.interchange | ||||
| application/vnd.shana.informed.package | ||||
| application/vnd.smaf				mmf | ||||
| application/vnd.sss-cod | ||||
| application/vnd.sss-dtf | ||||
| application/vnd.sss-ntf | ||||
| application/vnd.stardivision.calc		sdc | ||||
| application/vnd.stardivision.draw		sda | ||||
| application/vnd.stardivision.impress		sdd sdp | ||||
| application/vnd.stardivision.math		smf | ||||
| application/vnd.stardivision.writer		sdw vor | ||||
| application/vnd.stardivision.writer-global	sgl | ||||
| application/vnd.street-stream | ||||
| application/vnd.sun.xml.calc			sxc | ||||
| application/vnd.sun.xml.calc.template		stc | ||||
| application/vnd.sun.xml.draw			sxd | ||||
| application/vnd.sun.xml.draw.template		std | ||||
| application/vnd.sun.xml.impress			sxi | ||||
| application/vnd.sun.xml.impress.template	sti | ||||
| application/vnd.sun.xml.math			sxm | ||||
| application/vnd.sun.xml.writer			sxw | ||||
| application/vnd.sun.xml.writer.global		sxg | ||||
| application/vnd.sun.xml.writer.template		stw | ||||
| application/vnd.svd | ||||
| application/vnd.swiftview-ics | ||||
| application/vnd.symbian.install			sis | ||||
| application/vnd.triscape.mxs | ||||
| application/vnd.trueapp | ||||
| application/vnd.truedoc | ||||
| application/vnd.tve-trigger | ||||
| application/vnd.ufdl | ||||
| application/vnd.uplanet.alert | ||||
| application/vnd.uplanet.alert-wbxml | ||||
| application/vnd.uplanet.bearer-choice | ||||
| application/vnd.uplanet.bearer-choice-wbxml | ||||
| application/vnd.uplanet.cacheop | ||||
| application/vnd.uplanet.cacheop-wbxml | ||||
| application/vnd.uplanet.channel | ||||
| application/vnd.uplanet.channel-wbxml | ||||
| application/vnd.uplanet.list | ||||
| application/vnd.uplanet.list-wbxml | ||||
| application/vnd.uplanet.listcmd | ||||
| application/vnd.uplanet.listcmd-wbxml | ||||
| application/vnd.uplanet.signal | ||||
| application/vnd.vcx | ||||
| application/vnd.vectorworks | ||||
| application/vnd.vidsoft.vidconference | ||||
| application/vnd.visio				vsd | ||||
| application/vnd.vividence.scriptfile | ||||
| application/vnd.wap.sic | ||||
| application/vnd.wap.slc | ||||
| application/vnd.wap.wbxml			wbxml | ||||
| application/vnd.wap.wmlc			wmlc | ||||
| application/vnd.wap.wmlscriptc			wmlsc | ||||
| application/vnd.webturbo | ||||
| application/vnd.wrq-hp3000-labelled | ||||
| application/vnd.wt.stf | ||||
| application/vnd.xara | ||||
| application/vnd.xfdl | ||||
| application/vnd.yellowriver-custom-menu | ||||
| application/x-123				wk | ||||
| application/x-abiword				abw | ||||
| application/x-apple-diskimage			dmg | ||||
| application/x-bcpio				bcpio | ||||
| application/x-bittorrent			torrent | ||||
| application/x-cdf				cdf | ||||
| application/x-cdlink				vcd | ||||
| application/x-chess-pgn				pgn | ||||
| application/x-core | ||||
| application/x-cpio				cpio | ||||
| application/x-csh				csh | ||||
| application/x-debian-package			deb udeb | ||||
| application/x-director				dcr dir dxr | ||||
| application/x-dms				dms | ||||
| application/x-doom				wad | ||||
| application/x-dvi				dvi | ||||
| application/x-executable | ||||
| application/x-flac				flac | ||||
| application/x-font				pfa pfb gsf pcf pcf.Z | ||||
| application/x-freemind				mm | ||||
| application/x-futuresplash			spl | ||||
| application/x-gnumeric				gnumeric | ||||
| application/x-go-sgf				sgf | ||||
| application/x-graphing-calculator		gcf | ||||
| application/x-gtar				gtar tgz taz | ||||
| application/x-hdf				hdf | ||||
| application/x-httpd-php				phtml pht php | ||||
| application/x-httpd-php-source			phps | ||||
| application/x-httpd-php3			php3 | ||||
| application/x-httpd-php3-preprocessed		php3p | ||||
| application/x-httpd-php4			php4 | ||||
| application/x-ica				ica | ||||
| application/x-internet-signup			ins isp | ||||
| application/x-iphone				iii | ||||
| application/x-iso9660-image			iso | ||||
| application/x-java-applet | ||||
| application/x-java-bean | ||||
| application/x-java-jnlp-file			jnlp | ||||
| application/x-javascript			js | ||||
| application/x-jmol				jmz | ||||
| application/x-kchart				chrt | ||||
| application/x-kdelnk | ||||
| application/x-killustrator			kil | ||||
| application/x-koan				skp skd skt skm | ||||
| application/x-kpresenter			kpr kpt | ||||
| application/x-kspread				ksp | ||||
| application/x-kword				kwd kwt | ||||
| application/x-latex				latex | ||||
| application/x-lha				lha | ||||
| application/x-lzh				lzh | ||||
| application/x-lzx				lzx | ||||
| application/x-maker				frm maker frame fm fb book fbdoc | ||||
| application/x-mif				mif | ||||
| application/x-ms-wmd				wmd | ||||
| application/x-ms-wmz				wmz | ||||
| application/x-msdos-program			com exe bat dll | ||||
| application/x-msi				msi | ||||
| application/x-netcdf				nc | ||||
| application/x-ns-proxy-autoconfig		pac | ||||
| application/x-nwc				nwc | ||||
| application/x-object				o | ||||
| application/x-oz-application			oza | ||||
| application/x-pkcs7-certreqresp			p7r | ||||
| application/x-pkcs7-crl				crl | ||||
| application/x-python-code			pyc pyo | ||||
| application/x-quicktimeplayer			qtl | ||||
| application/x-redhat-package-manager		rpm | ||||
| application/x-rx | ||||
| application/x-sh				sh | ||||
| application/x-shar				shar | ||||
| application/x-shellscript | ||||
| application/x-shockwave-flash			swf swfl | ||||
| application/x-stuffit				sit | ||||
| application/x-sv4cpio				sv4cpio | ||||
| application/x-sv4crc				sv4crc | ||||
| application/x-tar				tar | ||||
| application/x-tcl				tcl | ||||
| application/x-tex-gf				gf | ||||
| application/x-tex-pk				pk | ||||
| application/x-texinfo				texinfo texi | ||||
| application/x-trash				~ % bak old sik | ||||
| application/x-troff				t tr roff | ||||
| application/x-troff-man				man | ||||
| application/x-troff-me				me | ||||
| application/x-troff-ms				ms | ||||
| application/x-ustar				ustar | ||||
| application/x-videolan | ||||
| application/x-wais-source			src | ||||
| application/x-wingz				wz | ||||
| application/x-x509-ca-cert			crt | ||||
| application/x-xcf				xcf | ||||
| application/x-xfig				fig | ||||
| application/x-xpinstall				xpi | ||||
| 
 | ||||
| audio/32kadpcm | ||||
| audio/basic					au snd | ||||
| audio/g.722.1 | ||||
| audio/l16 | ||||
| audio/midi					mid midi kar | ||||
| audio/mp4a-latm | ||||
| audio/mpa-robust | ||||
| audio/mpeg					mpga mpega mp2 mp3 m4a | ||||
| audio/mpegurl					m3u | ||||
| audio/parityfec | ||||
| audio/prs.sid					sid | ||||
| audio/telephone-event | ||||
| audio/tone | ||||
| audio/vnd.cisco.nse | ||||
| audio/vnd.cns.anp1 | ||||
| audio/vnd.cns.inf1 | ||||
| audio/vnd.digital-winds | ||||
| audio/vnd.everad.plj | ||||
| audio/vnd.lucent.voice | ||||
| audio/vnd.nortel.vbk | ||||
| audio/vnd.nuera.ecelp4800 | ||||
| audio/vnd.nuera.ecelp7470 | ||||
| audio/vnd.nuera.ecelp9600 | ||||
| audio/vnd.octel.sbc | ||||
| audio/vnd.qcelp | ||||
| audio/vnd.rhetorex.32kadpcm | ||||
| audio/vnd.vmx.cvsd | ||||
| audio/x-aiff					aif aiff aifc | ||||
| audio/x-gsm					gsm | ||||
| audio/x-mpegurl					m3u | ||||
| audio/x-ms-wma					wma | ||||
| audio/x-ms-wax					wax | ||||
| audio/x-pn-realaudio-plugin | ||||
| audio/x-pn-realaudio				ra rm ram | ||||
| audio/x-realaudio				ra | ||||
| audio/x-scpls					pls | ||||
| audio/x-sd2					sd2 | ||||
| audio/x-wav					wav | ||||
| 
 | ||||
| chemical/x-alchemy				alc | ||||
| chemical/x-cache				cac cache | ||||
| chemical/x-cache-csf				csf | ||||
| chemical/x-cactvs-binary			cbin cascii ctab | ||||
| chemical/x-cdx					cdx | ||||
| chemical/x-cerius				cer | ||||
| chemical/x-chem3d				c3d | ||||
| chemical/x-chemdraw				chm | ||||
| chemical/x-cif					cif | ||||
| chemical/x-cmdf					cmdf | ||||
| chemical/x-cml					cml | ||||
| chemical/x-compass				cpa | ||||
| chemical/x-crossfire				bsd | ||||
| chemical/x-csml					csml csm | ||||
| chemical/x-ctx					ctx | ||||
| chemical/x-cxf					cxf cef | ||||
| #chemical/x-daylight-smiles			smi | ||||
| chemical/x-embl-dl-nucleotide			emb embl | ||||
| chemical/x-galactic-spc				spc | ||||
| chemical/x-gamess-input				inp gam gamin | ||||
| chemical/x-gaussian-checkpoint			fch fchk | ||||
| chemical/x-gaussian-cube			cub | ||||
| chemical/x-gaussian-input			gau gjc gjf | ||||
| chemical/x-gaussian-log				gal | ||||
| chemical/x-gcg8-sequence			gcg | ||||
| chemical/x-genbank				gen | ||||
| chemical/x-hin					hin | ||||
| chemical/x-isostar				istr ist | ||||
| chemical/x-jcamp-dx				jdx dx | ||||
| chemical/x-kinemage				kin | ||||
| chemical/x-macmolecule				mcm | ||||
| chemical/x-macromodel-input			mmd mmod | ||||
| chemical/x-mdl-molfile				mol | ||||
| chemical/x-mdl-rdfile				rd | ||||
| chemical/x-mdl-rxnfile				rxn | ||||
| chemical/x-mdl-sdfile				sd sdf | ||||
| chemical/x-mdl-tgf				tgf | ||||
| #chemical/x-mif					mif | ||||
| chemical/x-mmcif				mcif | ||||
| chemical/x-mol2					mol2 | ||||
| chemical/x-molconn-Z				b | ||||
| chemical/x-mopac-graph				gpt | ||||
| chemical/x-mopac-input				mop mopcrt mpc dat zmt | ||||
| chemical/x-mopac-out				moo | ||||
| chemical/x-mopac-vib				mvb | ||||
| chemical/x-ncbi-asn1				asn | ||||
| chemical/x-ncbi-asn1-ascii			prt ent | ||||
| chemical/x-ncbi-asn1-binary			val aso | ||||
| chemical/x-ncbi-asn1-spec			asn | ||||
| chemical/x-pdb					pdb ent | ||||
| chemical/x-rosdal				ros | ||||
| chemical/x-swissprot				sw | ||||
| chemical/x-vamas-iso14976			vms | ||||
| chemical/x-vmd					vmd | ||||
| chemical/x-xtel					xtel | ||||
| chemical/x-xyz					xyz | ||||
| 
 | ||||
| image/cgm | ||||
| image/g3fax | ||||
| image/gif					gif | ||||
| image/ief					ief | ||||
| image/jpeg					jpeg jpg jpe | ||||
| image/naplps | ||||
| image/pcx					pcx | ||||
| image/png					png | ||||
| image/prs.btif | ||||
| image/prs.pti | ||||
| image/svg+xml					svg svgz | ||||
| image/tiff					tiff tif | ||||
| image/vnd.cns.inf2 | ||||
| image/vnd.djvu					djvu djv | ||||
| image/vnd.dwg | ||||
| image/vnd.dxf | ||||
| image/vnd.fastbidsheet | ||||
| image/vnd.fpx | ||||
| image/vnd.fst | ||||
| image/vnd.fujixerox.edmics-mmr | ||||
| image/vnd.fujixerox.edmics-rlc | ||||
| image/vnd.mix | ||||
| image/vnd.net-fpx | ||||
| image/vnd.svf | ||||
| image/vnd.wap.wbmp				wbmp | ||||
| image/vnd.xiff | ||||
| image/x-cmu-raster				ras | ||||
| image/x-coreldraw				cdr | ||||
| image/x-coreldrawpattern			pat | ||||
| image/x-coreldrawtemplate			cdt | ||||
| image/x-corelphotopaint				cpt | ||||
| image/x-icon					ico | ||||
| image/x-jg					art | ||||
| image/x-jng					jng | ||||
| image/x-ms-bmp					bmp | ||||
| image/x-photoshop				psd | ||||
| image/x-portable-anymap				pnm | ||||
| image/x-portable-bitmap				pbm | ||||
| image/x-portable-graymap			pgm | ||||
| image/x-portable-pixmap				ppm | ||||
| image/x-rgb					rgb | ||||
| image/x-xbitmap					xbm | ||||
| image/x-xpixmap					xpm | ||||
| image/x-xwindowdump				xwd | ||||
| 
 | ||||
| inode/chardevice | ||||
| inode/blockdevice | ||||
| inode/directory-locked | ||||
| inode/directory | ||||
| inode/fifo | ||||
| inode/socket | ||||
| 
 | ||||
| message/delivery-status | ||||
| message/disposition-notification | ||||
| message/external-body | ||||
| message/http | ||||
| message/s-http | ||||
| message/news | ||||
| message/partial | ||||
| message/rfc822 | ||||
| 
 | ||||
| model/iges					igs iges | ||||
| model/mesh					msh mesh silo | ||||
| model/vnd.dwf | ||||
| model/vnd.flatland.3dml | ||||
| model/vnd.gdl | ||||
| model/vnd.gs-gdl | ||||
| model/vnd.gtw | ||||
| model/vnd.mts | ||||
| model/vnd.vtu | ||||
| model/vrml					wrl vrml | ||||
| 
 | ||||
| multipart/alternative | ||||
| multipart/appledouble | ||||
| multipart/byteranges | ||||
| multipart/digest | ||||
| multipart/encrypted | ||||
| multipart/form-data | ||||
| multipart/header-set | ||||
| multipart/mixed | ||||
| multipart/parallel | ||||
| multipart/related | ||||
| multipart/report | ||||
| multipart/signed | ||||
| multipart/voice-message | ||||
| 
 | ||||
| text/calendar					ics icz | ||||
| text/comma-separated-values			csv | ||||
| text/css					css | ||||
| text/directory | ||||
| text/english | ||||
| text/enriched | ||||
| text/h323					323 | ||||
| text/html					html htm shtml | ||||
| text/iuls					uls | ||||
| text/mathml					mml | ||||
| text/parityfec | ||||
| text/plain					asc txt text diff pot | ||||
| text/prs.lines.tag | ||||
| text/rfc822-headers | ||||
| text/richtext					rtx | ||||
| text/rtf					rtf | ||||
| text/scriptlet					sct wsc | ||||
| text/t140 | ||||
| text/texmacs					tm ts | ||||
| text/tab-separated-values			tsv | ||||
| text/uri-list | ||||
| text/vnd.abc | ||||
| text/vnd.curl | ||||
| text/vnd.DMClientScript | ||||
| text/vnd.flatland.3dml | ||||
| text/vnd.fly | ||||
| text/vnd.fmi.flexstor | ||||
| text/vnd.in3d.3dml | ||||
| text/vnd.in3d.spot | ||||
| text/vnd.IPTC.NewsML | ||||
| text/vnd.IPTC.NITF | ||||
| text/vnd.latex-z | ||||
| text/vnd.motorola.reflex | ||||
| text/vnd.ms-mediapackage | ||||
| text/vnd.sun.j2me.app-descriptor		jad | ||||
| text/vnd.wap.si | ||||
| text/vnd.wap.sl | ||||
| text/vnd.wap.wml				wml | ||||
| text/vnd.wap.wmlscript				wmls | ||||
| text/x-bibtex					bib | ||||
| text/x-c++hdr					h++ hpp hxx hh | ||||
| text/x-c++src					c++ cpp cxx cc | ||||
| text/x-chdr					h | ||||
| text/x-crontab | ||||
| text/x-csh					csh | ||||
| text/x-csrc					c | ||||
| text/x-dsrc					d | ||||
| text/x-haskell					hs | ||||
| text/x-java					java | ||||
| text/x-literate-haskell				lhs | ||||
| text/x-makefile | ||||
| text/x-moc					moc | ||||
| text/x-pascal					p pas | ||||
| text/x-pcs-gcd					gcd | ||||
| text/x-perl					pl pm | ||||
| text/x-python					py | ||||
| text/x-server-parsed-html | ||||
| text/x-setext					etx | ||||
| text/x-sh					sh | ||||
| text/x-tcl					tcl tk | ||||
| text/x-tex					tex ltx sty cls | ||||
| text/x-vcalendar				vcs | ||||
| text/x-vcard					vcf | ||||
| 
 | ||||
| video/dl					dl | ||||
| video/dv					dif dv | ||||
| video/fli					fli | ||||
| video/gl					gl | ||||
| video/mpeg					mpeg mpg mpe | ||||
| video/mp4					mp4 | ||||
| video/quicktime					qt mov | ||||
| video/mp4v-es | ||||
| video/parityfec | ||||
| video/pointer | ||||
| video/vnd.fvt | ||||
| video/vnd.motorola.video | ||||
| video/vnd.motorola.videop | ||||
| video/vnd.mpegurl				mxu | ||||
| video/vnd.mts | ||||
| video/vnd.nokia.interleaved-multimedia | ||||
| video/vnd.vivo | ||||
| video/x-la-asf					lsf lsx | ||||
| video/x-mng					mng | ||||
| video/x-ms-asf					asf asx | ||||
| video/x-ms-wm					wm | ||||
| video/x-ms-wmv					wmv | ||||
| video/x-ms-wmx					wmx | ||||
| video/x-ms-wvx					wvx | ||||
| video/x-msvideo					avi | ||||
| video/x-sgi-movie				movie | ||||
| 
 | ||||
| x-conference/x-cooltalk				ice | ||||
| 
 | ||||
| x-world/x-vrml					vrm vrml wrl | ||||
|  | @ -95,6 +95,9 @@ class BSCWServer(object): | |||
|         return baseAttributes | ||||
| 
 | ||||
|     def get_document(self, id, version_id): | ||||
|         obj = self.objects.get(id) | ||||
|         if obj is None: | ||||
|             raise Fault(10101, 'Bad object id: %s' % id) | ||||
|         return '' | ||||
| 
 | ||||
|     def get_path(id): | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm