def default(self, *args, **kwargs): #allow a plugin to handle a default url if it wants; it needs to return #a tuple (pagename, [Entry objects]) if it does call_result = run_callback(self.plugins, 'cb_default', args) if call_result != []: return self.render_page(call_result[1:], call_result[0]) try: offset = int(kwargs.get('offset', 0)) except ValueError: offset = 0 z = args[0] l = len(args) if l <= len(self.timeformats): #check to see if args represent a date for fmt in self.timeformats[l - 1]: try: t = time.strptime(' '.join(args), fmt) if "%Y" in fmt: year = t[0] else: year = self.now().year if "%m" in fmt or "%b" in fmt or "%B" in fmt: month = t[1] else: month = None if "%d" in fmt: day = t[2] else: day = None entries = FileCabinet.get_entries_by_date(year, month, day) if entries: entries = entries[offset:offset + config('num_entries')] return self.render_page(entries, ' '.join(args), offset) except ValueError: #not a date - move on pass z = os.path.join(*args) fname = self.stripall(z, '.html', '.htm', '.txt') e = FileCabinet.get_one(fname, self.datadir) if e: return self.render_page([e]) return self.error_page('Page Not Found', 404)
def default(self, *args, **kwargs): #allow a plugin to handle a default url if it wants; it needs to return #a tuple (pagename, [Entry objects]) if it does call_result = run_callback(self.plugins, 'cb_default', args) if call_result != []: return self.render_page(call_result[1:], call_result[0]) try: offset = int(kwargs.get('offset', 0)) except ValueError: offset = 0 z = args[0] l = len(args) if l <= len(self.timeformats): #check to see if args represent a date for fmt in self.timeformats[l-1]: try: t = time.strptime(' '.join(args), fmt) if "%Y" in fmt: year = t[0] else: year = self.now().year if "%m" in fmt or "%b" in fmt or "%B" in fmt: month = t[1] else: month = None if "%d" in fmt: day = t[2] else: day = None entries = FileCabinet.get_entries_by_date(year, month, day) if entries: entries = entries[offset:offset + config('num_entries')] return self.render_page(entries, ' '.join(args), offset) except ValueError: #not a date - move on pass z = os.path.join(*args) fname = self.stripall(z, '.html', '.htm', '.txt') e = FileCabinet.get_one(fname, self.datadir) if e: return self.render_page([e]) return self.error_page('Page Not Found', 404)