示例#1
0
    def __init__(self, watchdog=None, verbose=False, search_cache_size=100):
        self.search_cache_size = search_cache_size
        self.watchdog = watchdog
        self.verbose = verbose

        # Configure template engine (jinja)
        template_path = os.path.join(os.path.dirname(__file__), 'templates')
        self.jinja_env = Environment(loader=FileSystemLoader(template_path),
                                 autoescape=False)
        self.jinja_env.globals["watchdog"] = True if watchdog else False

        self.template_manager = TemplateManager(template_path)
        self.art_mngr = compresor.ArticleManager()
        self.img_mngr = compresor.ImageManager()
        self.destacados_mngr = Destacados(self.art_mngr, debug=False)

        self.index = cdpindex.IndexInterface(config.DIR_INDICE)
        self.index.start()

        self.searcher = Searcher(self.index, self.search_cache_size)
        self.tmpdir = os.path.join(tempfile.gettempdir(), "cdpedia")

        self.url_map = Map([
            Rule('/', endpoint='main_page'),
            Rule('/%s/<nombre>' % ARTICLES_BASE_URL, endpoint='articulo'),
            Rule('/al_azar', endpoint='al_azar'),
            Rule('/search', endpoint='search'),
            Rule('/search/<key>', endpoint='search_results'),
            Rule('/images/<path:nombre>', endpoint='imagen'),
            Rule('/institucional/<path:path>', endpoint='institucional'),
            Rule('/watchdog/update', endpoint='watchdog_update'),
            Rule('/search_index/ready', endpoint='index_ready'),
            Rule('/tutorial', endpoint='tutorial'),
        ])
示例#2
0
    def __init__(self, watchdog=None, verbose=False, search_cache_size=100):
        self.search_cache_size = search_cache_size
        self.watchdog = watchdog
        self.verbose = verbose

        self.art_mngr = compresor.ArticleManager(verbose=verbose)

        # Configure template engine (jinja)
        template_path = os.path.join(os.path.dirname(__file__), 'templates')
        self.jinja_env = Environment(loader=FileSystemLoader(template_path),
                                     extensions=['jinja2.ext.i18n'],
                                     autoescape=False)
        self.jinja_env.globals["watchdog"] = True if watchdog else False
        translations = gettext.translation("core", 'locale',
                                           [self.art_mngr.language])
        self.jinja_env.install_gettext_translations(translations)

        self.template_manager = TemplateManager(template_path)
        self.img_mngr = compresor.ImageManager(verbose=verbose)
        self.destacados_mngr = Destacados(self.art_mngr, debug=False)

        self.index = cdpindex.IndexInterface(config.DIR_INDICE)
        self.index.start()

        self.searcher = Searcher(self.index, self.search_cache_size)
        self.tmpdir = os.path.join(tempfile.gettempdir(), "cdpedia")

        self.url_map = Map([
            Rule('/', endpoint='main_page'),
            Rule('/%s/<nombre>' % ARTICLES_BASE_URL, endpoint='articulo'),
            Rule('/al_azar', endpoint='al_azar'),
            Rule('/search', endpoint='search'),
            Rule('/search/<key>', endpoint='search_results'),
            Rule('/images/<path:nombre>', endpoint='imagen'),
            Rule('/institucional/<path:path>', endpoint='institucional'),
            Rule('/watchdog/update', endpoint='watchdog_update'),
            Rule('/search_index/ready', endpoint='index_ready'),
            Rule('/tutorial', endpoint='tutorial'),
        ])
        self._tutorial_ready = False
示例#3
0
    def __init__(self, watchdog=None, verbose=False, search_cache_size=100):
        self.search_cache_size = search_cache_size
        self.watchdog = watchdog
        self.verbose = verbose

        self.art_mngr = compresor.ArticleManager(verbose=verbose)

        # Configure template engine (jinja)
        template_path = os.path.join(os.path.dirname(__file__), "templates")
        self.jinja_env = Environment(
            loader=FileSystemLoader(template_path), extensions=["jinja2.ext.i18n"], autoescape=False
        )
        self.jinja_env.globals["watchdog"] = True if watchdog else False
        translations = gettext.translation("core", "locale", [self.art_mngr.language])
        self.jinja_env.install_gettext_translations(translations)

        self.template_manager = TemplateManager(template_path)
        self.img_mngr = compresor.ImageManager(verbose=verbose)
        self.destacados_mngr = Destacados(self.art_mngr, debug=False)

        self.index = cdpindex.IndexInterface(config.DIR_INDICE)
        self.index.start()

        self.searcher = Searcher(self.index, self.search_cache_size)
        self.tmpdir = os.path.join(tempfile.gettempdir(), "cdpedia")

        self.url_map = Map(
            [
                Rule("/", endpoint="main_page"),
                Rule("/%s/<nombre>" % ARTICLES_BASE_URL, endpoint="articulo"),
                Rule("/al_azar", endpoint="al_azar"),
                Rule("/search", endpoint="search"),
                Rule("/search/<key>", endpoint="search_results"),
                Rule("/images/<path:nombre>", endpoint="imagen"),
                Rule("/institucional/<path:path>", endpoint="institucional"),
                Rule("/watchdog/update", endpoint="watchdog_update"),
                Rule("/search_index/ready", endpoint="index_ready"),
                Rule("/tutorial", endpoint="tutorial"),
            ]
        )
        self._tutorial_ready = False
示例#4
0
class CDPedia(object):

    def __init__(self, watchdog=None, verbose=False, search_cache_size=100):
        self.search_cache_size = search_cache_size
        self.watchdog = watchdog
        self.verbose = verbose

        # Configure template engine (jinja)
        template_path = os.path.join(os.path.dirname(__file__), 'templates')
        self.jinja_env = Environment(loader=FileSystemLoader(template_path),
                                 autoescape=False)
        self.jinja_env.globals["watchdog"] = True if watchdog else False

        self.template_manager = TemplateManager(template_path)
        self.art_mngr = compresor.ArticleManager()
        self.img_mngr = compresor.ImageManager()
        self.destacados_mngr = Destacados(self.art_mngr, debug=False)

        self.index = cdpindex.IndexInterface(config.DIR_INDICE)
        self.index.start()

        self.searcher = Searcher(self.index, self.search_cache_size)
        self.tmpdir = os.path.join(tempfile.gettempdir(), "cdpedia")

        self.url_map = Map([
            Rule('/', endpoint='main_page'),
            Rule('/%s/<nombre>' % ARTICLES_BASE_URL, endpoint='articulo'),
            Rule('/al_azar', endpoint='al_azar'),
            Rule('/search', endpoint='search'),
            Rule('/search/<key>', endpoint='search_results'),
            Rule('/images/<path:nombre>', endpoint='imagen'),
            Rule('/institucional/<path:path>', endpoint='institucional'),
            Rule('/watchdog/update', endpoint='watchdog_update'),
            Rule('/search_index/ready', endpoint='index_ready'),
            Rule('/tutorial', endpoint='tutorial'),
        ])

    def on_main_page(self, request):
        data_destacado = self.destacados_mngr.get_destacado()
        destacado = None
        if data_destacado is not None:
            link, title, first_paragraphs = data_destacado
            destacado = {"link": link, "title": title,
                         "first_paragraphs": first_paragraphs}
        return self.render_template('main_page.html',
            title="Portada",
            destacado=destacado,
        )

    def on_articulo(self, request, nombre):
        orig_link = utils.get_orig_link(nombre)
        try:
            data = self.art_mngr.get_item(nombre)
        except Exception, e:
            raise InternalServerError(u"Error interno al buscar contenido: %s" % e)

        if data is None:
            raise ArticleNotFound(nombre, orig_link)

        title = utils.get_title_from_data(data)
        return self.render_template('article.html',
            article_name=nombre,
            orig_link=orig_link,
            article=data
        )
示例#5
0
class CDPedia(object):
    def __init__(self, watchdog=None, verbose=False, search_cache_size=100):
        self.search_cache_size = search_cache_size
        self.watchdog = watchdog
        self.verbose = verbose

        self.art_mngr = compresor.ArticleManager(verbose=verbose)

        # Configure template engine (jinja)
        template_path = os.path.join(os.path.dirname(__file__), "templates")
        self.jinja_env = Environment(
            loader=FileSystemLoader(template_path), extensions=["jinja2.ext.i18n"], autoescape=False
        )
        self.jinja_env.globals["watchdog"] = True if watchdog else False
        translations = gettext.translation("core", "locale", [self.art_mngr.language])
        self.jinja_env.install_gettext_translations(translations)

        self.template_manager = TemplateManager(template_path)
        self.img_mngr = compresor.ImageManager(verbose=verbose)
        self.destacados_mngr = Destacados(self.art_mngr, debug=False)

        self.index = cdpindex.IndexInterface(config.DIR_INDICE)
        self.index.start()

        self.searcher = Searcher(self.index, self.search_cache_size)
        self.tmpdir = os.path.join(tempfile.gettempdir(), "cdpedia")

        self.url_map = Map(
            [
                Rule("/", endpoint="main_page"),
                Rule("/%s/<nombre>" % ARTICLES_BASE_URL, endpoint="articulo"),
                Rule("/al_azar", endpoint="al_azar"),
                Rule("/search", endpoint="search"),
                Rule("/search/<key>", endpoint="search_results"),
                Rule("/images/<path:nombre>", endpoint="imagen"),
                Rule("/institucional/<path:path>", endpoint="institucional"),
                Rule("/watchdog/update", endpoint="watchdog_update"),
                Rule("/search_index/ready", endpoint="index_ready"),
                Rule("/tutorial", endpoint="tutorial"),
            ]
        )
        self._tutorial_ready = False

    def on_main_page(self, request):
        data_destacado = self.destacados_mngr.get_destacado()
        destacado = None
        if data_destacado is not None:
            link, title, first_paragraphs = data_destacado
            destacado = {"link": link, "title": title, "first_paragraphs": first_paragraphs}

        _path = os.path.join(config.DIR_ASSETS, "dynamic", "portals.html")
        if os.path.exists(_path):
            with codecs.open(_path, "rb", encoding="utf8") as fh:
                portales = fh.read()
        else:
            portales = ""

        return self.render_template("main_page.html", title="Portada", destacado=destacado, portales=portales)

    def on_articulo(self, request, nombre):
        orig_link = utils.get_orig_link(nombre)
        try:
            data = self.art_mngr.get_item(nombre)
        except Exception, e:
            raise InternalServerError(u"Error interno al buscar contenido: %s" % e)

        if data is None:
            raise ArticleNotFound(nombre, orig_link)

        return self.render_template(
            "article.html", article_name=nombre, orig_link=orig_link, article=data, language=self.art_mngr.language
        )
示例#6
0
class CDPedia(object):
    def __init__(self, watchdog=None, verbose=False, search_cache_size=100):
        self.search_cache_size = search_cache_size
        self.watchdog = watchdog
        self.verbose = verbose

        self.art_mngr = compresor.ArticleManager(verbose=verbose)

        # Configure template engine (jinja)
        template_path = os.path.join(os.path.dirname(__file__), 'templates')
        self.jinja_env = Environment(loader=FileSystemLoader(template_path),
                                     extensions=['jinja2.ext.i18n'],
                                     autoescape=False)
        self.jinja_env.globals["watchdog"] = True if watchdog else False
        translations = gettext.translation("core", 'locale',
                                           [self.art_mngr.language])
        self.jinja_env.install_gettext_translations(translations)

        self.template_manager = TemplateManager(template_path)
        self.img_mngr = compresor.ImageManager(verbose=verbose)
        self.destacados_mngr = Destacados(self.art_mngr, debug=False)

        self.index = cdpindex.IndexInterface(config.DIR_INDICE)
        self.index.start()

        self.searcher = Searcher(self.index, self.search_cache_size)
        self.tmpdir = os.path.join(tempfile.gettempdir(), "cdpedia")

        self.url_map = Map([
            Rule('/', endpoint='main_page'),
            Rule('/%s/<nombre>' % ARTICLES_BASE_URL, endpoint='articulo'),
            Rule('/al_azar', endpoint='al_azar'),
            Rule('/search', endpoint='search'),
            Rule('/search/<key>', endpoint='search_results'),
            Rule('/images/<path:nombre>', endpoint='imagen'),
            Rule('/institucional/<path:path>', endpoint='institucional'),
            Rule('/watchdog/update', endpoint='watchdog_update'),
            Rule('/search_index/ready', endpoint='index_ready'),
            Rule('/tutorial', endpoint='tutorial'),
        ])
        self._tutorial_ready = False

    def on_main_page(self, request):
        data_destacado = self.destacados_mngr.get_destacado()
        destacado = None
        if data_destacado is not None:
            link, title, first_paragraphs = data_destacado
            destacado = {
                "link": link,
                "title": title,
                "first_paragraphs": first_paragraphs
            }

        _path = os.path.join(config.DIR_ASSETS, 'dynamic', 'portals.html')
        if os.path.exists(_path):
            with codecs.open(_path, "rb", encoding='utf8') as fh:
                portales = fh.read()
        else:
            portales = ""

        return self.render_template(
            'main_page.html',
            title="Portada",
            destacado=destacado,
            portales=portales,
        )

    def on_articulo(self, request, nombre):
        orig_link = utils.get_orig_link(nombre)
        try:
            data = self.art_mngr.get_item(nombre)
        except Exception, e:
            raise InternalServerError(
                u"Error interno al buscar contenido: %s" % e)

        if data is None:
            raise ArticleNotFound(nombre, orig_link)

        return self.render_template(
            'article.html',
            article_name=nombre,
            orig_link=orig_link,
            article=data,
            language=self.art_mngr.language,
        )