#! /usr/bin/env python
#-*- coding: utf-8 -*-
# pyAggr3g470r - A Web based news aggregator.
# Copyright (C) 2010-2012 Cédric Bonhomme - http://cedricbonhomme.org/
#
# For more information : http://bitbucket.org/cedricbonhomme/pyaggr3g470r/
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
__author__ = "Cedric Bonhomme"
__version__ = "$Revision: 3.6 $"
__date__ = "$Date: 2010/01/29 $"
__revision__ = "$Date: 2012/12/04 $"
__copyright__ = "Copyright (c) Cedric Bonhomme"
__license__ = "GPLv3"
#
# This file contains the "Root" class which describes
# all pages of pyAggr3g470r. These pages are:
# - main page;
# - management;
# - history;
# - favorites;
# - notifications;
# - unread;
# - feed summary.
#
import os
import re
import calendar
import cherrypy
from mako.template import Template
from mako.lookup import TemplateLookup
lookup = TemplateLookup(directories=['templates'])
from collections import Counter
import datetime
import conf
import utils
import export
import mongodb
import feedgetter
from auth import AuthController, require, member_of, name_is
#from qrcode.pyqrnative.PyQRNative import QRCode, QRErrorCorrectLevel, CodeOverflowException
#from qrcode import qr
def error_404(status, message, traceback, version):
"""
Display an error if the page does not exist.
"""
html = htmlheader()
html += htmlnav
html += "
Error %s - This page does not exist." % status
html += "\n
\n" + htmlfooter
return html
def handle_error():
"""
Handle different type of errors.
"""
html = htmlheader()
html += htmlnav
html += "
Sorry, an error occured"
html += "\n\n" + htmlfooter
cherrypy.response.status = 500
cherrypy.response.body = [html]
def htmlheader(text=""):
"""
Return the header of the HTML page with the number of unread articles
in the 'title' HTML tag..
"""
return '\n' + \
'' + \
'\n\t'+ text +' - pyAggr3g470r - News aggregator\n' + \
'\t' + \
'\n\t\n' + \
'\n\t\n' + \
'\n'
htmlfooter = '
This software is under GPLv3 license. You are welcome to copy, modify or' + \
' redistribute the source code according to the' + \
' GPLv3 license.