extension stripping fsimport.py
Do you use fsimport.py? Sick and tired of all the html documents and images having .blah on the end of them, forcing you to use local namespace strangeness all the time? Use this extremely mild update (2 lines) to fsimport.py and zope-friendly objects (i.e. those that don't turn into "file" objects) will have their extensions stripped. Thanks, -- Ethan "mindlace" Fremen you cannot abdicate responsibility for your ideology. """Filesystem import utility""" __version__='$Revision:$'[11:-2] import sys, os, string from Globals import MessageDialog from OFS.Image import File def fsimport(self, fsdir, REQUEST=None): """Import a filesystem directory as a new folder object into the current folder. """ if not os.path.isdir(fsdir): raise ValueError, 'Path does not exist' rcimport(fsdir, self) if REQUEST is not None: return MessageDialog(title='Directory imported.', message='Directory imported.', action='%s/manage_main' % REQUEST['URL1'] ) def rcimport(fsdir, obdir): filenames=os.listdir(fsdir) for name in filenames: pathname=os.path.join(fsdir, name) if name[0] in ('.', '#', '_'): continue if name[-1] in ('~',): continue elif os.path.isfile(pathname): if _isdoc(pathname): file=open(pathname, 'r') data=file.read() file.close() """line below added 29/11/99 by mindlace""" nname=string.split(name, '.')[0] obdir.manage_addDocument(nname, '', data) elif _isimg(pathname): file=open(pathname, 'rb') data=file.read() file.close() """line below added 29/11/99 by mindlace""" nname=string.split(name, '.')[0] obdir.manage_addImage(nname, data) else: file=open(pathname, 'rb') data=file.read() file.close() fobj=File(name, '', data, content_type=_ftype(pathname)) obdir._setObject(name, fobj) elif os.path.isdir(pathname): obdir.manage_addFolder(name) rcimport(pathname, getattr(obdir, name)) else: __traceback_info__=(fsdir, obdir, name) raise ValueError, name typemap={ 'a': 'application/octet-stream', 'ai': 'application/postscript', 'aif': 'audio/x-aiff', 'aifc': 'audio/x-aiff', 'aiff': 'audio/x-aiff', 'au': 'audio/basic', 'avi': 'video/x-msvideo', 'bcpio': 'application/x-bcpio', 'bin': 'application/octet-stream', 'cdf': 'application/x-netcdf', 'cpio': 'application/x-cpio', 'csh': 'application/x-csh', 'dll': 'application/octet-stream', 'dvi': 'application/x-dvi', 'exe': 'application/octet-stream', 'eps': 'application/postscript', 'etx': 'text/x-setext', 'gif': 'image/gif', 'gtar': 'application/x-gtar', 'gz': 'application/x-gzip', 'hdf': 'application/x-hdf', 'htm': 'text/html', 'html': 'text/html', 'ief': 'image/ief', 'jpe': 'image/jpeg', 'jpeg': 'image/jpeg', 'jpg': 'image/jpeg', 'latex': 'application/x-latex', 'man': 'application/x-troff-man', 'me': 'application/x-troff-me', 'mif': 'application/x-mif', 'mov': 'video/quicktime', 'movie': 'video/x-sgi-movie', 'mpe': 'video/mpeg', 'mpeg': 'video/mpeg', 'mpg': 'video/mpeg', 'ms': 'application/x-troff-ms', 'nc': 'application/x-netcdf', 'o': 'application/octet-stream', 'obj': 'application/octet-stream', 'oda': 'application/oda', 'pbm': 'image/x-portable-bitmap', 'pdf': 'application/pdf', 'pgm': 'image/x-portable-graymap', 'pnm': 'image/x-portable-anymap', 'png': 'image/png', 'ppm': 'image/x-portable-pixmap', 'py': 'text/x-python', 'pyc': 'application/x-python-code', 'ps': 'application/postscript', 'qt': 'video/quicktime', 'ras': 'image/x-cmu-raster', 'rgb': 'image/x-rgb', 'roff': 'application/x-troff', 'rtf': 'application/rtf', 'rtx': 'text/richtext', 'sgm': 'text/x-sgml', 'sgml': 'text/x-sgml', 'sh': 'application/x-sh', 'shar': 'application/x-shar', 'snd': 'audio/basic', 'so': 'application/octet-stream', 'src': 'application/x-wais-source', 'sv4cpio': 'application/x-sv4cpio', 'sv4crc': 'application/x-sv4crc', 't': 'application/x-troff', 'tar': 'application/x-tar', 'tcl': 'application/x-tcl', 'tex': 'application/x-tex', 'texi': 'application/x-texinfo', 'texinfo': 'application/x-texinfo', 'tif': 'image/tiff', 'tiff': 'image/tiff', 'tr': 'application/x-troff', 'tsv': 'text/tab-separated-values', 'txt': 'text/plain', 'ustar': 'application/x-ustar', 'wav': 'audio/x-wav', 'xbm': 'image/x-xbitmap', 'xpm': 'image/x-xpixmap', 'xwd': 'image/x-xwindowdump', 'zip': 'application/zip', 'Z': 'application/x-compress', } def _isdoc(path): ext=string.split(path, '.')[-1] return ext in ('html', 'htm', 'shtml', 'dtml', 'txt') def _isimg(path): ext=string.split(path, '.')[-1] return ext in ('gif', 'jpg', 'png', 'bmp', 'jpeg') def _ftype(path): ext=string.split(path, '.')[-1] if typemap.has_key(ext): return typemap[ext] return 'application/octet-stream'
On Mon, Nov 29, 1999 at 07:28:52PM +0000, Ethan Fremen wrote:
Do you use fsimport.py? Sick and tired of all the html documents and images having .blah on the end of them, forcing you to use local namespace strangeness all the time?
Use this extremely mild update (2 lines) ^^^^^^^^ to fsimport.py and zope-friendly objects (i.e. those that don't turn into "file" objects)>will have their extensions stripped.
What's wrong with using diff? -- Stephen Pitts smpitts@midsouth.rr.com webmaster - http://www.mschess.org
Stephen Pitts wrote:
Use this extremely mild update (2 lines) ^^^^^^^^ to fsimport.py and zope-friendly objects (i.e. those that don't turn into "file" objects)>will have their extensions stripped.
What's wrong with using diff?
nothing, I imagine, except for the fact that I have no idea what that is or how to use it. You're welcome to elucidate me. -- Ethan "mindlace" Fremen you cannot abdicate responsibility for your ideology.
participants (2)
-
Ethan Fremen -
Stephen Pitts