Changeset 748:cf87c0a47b04 in hatta-dev


Ignore:
Timestamp:
01/24/10 15:59:27 (2 years ago)
Author:
sheep@…
Branch:
default
Message:

move page_mime out of storage

File:
1 edited

Legend:

Unmodified
Added
Removed
  • hatta.py

    r747 r748  
    9898            or addr.startswith('ftp://') 
    9999            or addr.startswith('mailto:')) 
     100 
     101def page_mime(title): 
     102    """ 
     103    Guess page's mime type ased on corresponding file name. 
     104    Default ot text/x-wiki for files without an extension. 
     105 
     106    >>> page_mime(u'something.txt') 
     107    'text/plain' 
     108    >>> page_mime(u'SomePage') 
     109    'text/x-wiki' 
     110    >>> page_mime(u'ąęśUnicodePage') 
     111    'text/x-wiki' 
     112    >>> page_mime(u'image.png') 
     113    'image/png' 
     114    >>> page_mime(u'style.css') 
     115    'text/css' 
     116    >>> page_mime(u'archive.tar.gz') 
     117    'archive/gzip' 
     118    """ 
     119 
     120    addr = title.encode('utf-8') # the encoding doesn't relly matter here 
     121    mime, encoding = mimetypes.guess_type(addr, strict=False) 
     122    if encoding: 
     123        mime = 'archive/%s' % encoding 
     124    if mime is None: 
     125        mime = 'text/x-wiki' 
     126    return mime 
    100127 
    101128 
     
    542569        return self._changectx().rev() 
    543570 
    544     def page_mime(self, title): 
    545         """ 
    546         Guess page's mime type ased on corresponding file name. 
    547         Default ot text/x-wiki for files without an extension. 
    548  
    549         >>> page_mime('something.txt') 
    550         'text/plain' 
    551         >>> page_mime('SomePage') 
    552         'text/x-wiki' 
    553         >>> page_mime(u'ąęśUnicodePage') 
    554         'text/x-wiki' 
    555         >>> page_mime('image.png') 
    556         'image/png' 
    557         >>> page_mime('style.css') 
    558         'text/css' 
    559         >>> page_mime('archive.tar.gz') 
    560         'archive/gzip' 
    561         """ 
    562  
    563         addr = self._file_path(title) 
    564         mime, encoding = mimetypes.guess_type(addr, strict=False) 
    565         if encoding: 
    566             mime = 'archive/%s' % encoding 
    567         if mime is None: 
    568             mime = 'text/x-wiki' 
    569         return mime 
    570571 
    571572    def _changectx(self): 
     
    14741475        """Updates the content of the database, needs locks around.""" 
    14751476 
    1476         mime = self.storage.page_mime(title) 
     1477        mime = page_mime(title) 
    14771478        if not mime.startswith('text/'): 
    14781479            self.update_words(title, '', cursor=cursor) 
     
    17501751            return html.a(name=chunk) 
    17511752        if addr in self.storage: 
    1752             mime = self.storage.page_mime(addr) 
     1753            mime = page_mime(addr) 
    17531754            if mime.startswith('image/'): 
    17541755                return html.img(src=self.get_download_url(addr), class_=class_, 
     
    25722573                page_class, mime = self.filename_map[title] 
    25732574            except KeyError: 
    2574                 mime = self.storage.page_mime(title) 
     2575                mime = page_mime(title) 
    25752576                major, minor = mime.split('/', 1) 
    25762577                try: 
     
    28792880        """Serve the raw content of a page.""" 
    28802881 
    2881         mime = self.storage.page_mime(title) 
     2882        mime = page_mime(title) 
    28822883        if mime == 'text/x-wiki': 
    28832884            mime = 'text/plain' 
Note: See TracChangeset for help on using the changeset viewer.