from wareweb import servlet, notify from wareweb.funcs import * from wareweb.funcs import __all__ as funcs_all from paste.deploy import CONFIG from paste.url import URL from commentary import store # -*- Extra imports: -*- __all__ = ['SitePage', 'CONFIG'] __all__.extend(funcs_all) class SitePage(servlet.Servlet): message = notify.Notify() app_name = 'commentary' # -*- Extra components: -*- def awake(self): super(SitePage, self).awake(call_setup=False) self.appurl = URL(self.environ['commentary.base_href']) self.siteurl = URL(self.environ['commentary.comment_root']) self._locked = [] if self.fields.get('_'): self.set_header('content-type', 'text/xml; charset=utf-8') else: self.set_header('content-type', 'text/html; charset=utf-8') self.setup() def sleep(self): super(SitePage, self).sleep(call_teardown=False) for path_info in self._locked: store.release(path_info) self.teardown() def doc_comments(self, path_info, lock=True): if lock: store.acquire(path_info) self._locked.append(path_info) return store.DocumentComments( path_info, CONFIG['storage']) def add_log_messages(self, doc): if self.fields.get('page'): doc.svn.log_messages.append( 'in page: %s://%s%s' % ( self.environ['wsgi.url_scheme'], self.environ['HTTP_HOST'], self.fields.page)) if self.fields.get('username'): who = self.fields.username if self.fields.get('email'): who += ' <%s>' % self.fields.email else: who = self.fields.get('email') if who: doc.svn.log_messages.append('by: %s' % who)