diff options
author | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2020-03-09 23:16:05 +0100 |
---|---|---|
committer | Cédric Bonhomme <cedric@cedricbonhomme.org> | 2020-03-09 23:16:05 +0100 |
commit | 3ab6290d4994b33cdbf831523938cdb18a13bf49 (patch) | |
tree | 685980f53aaa3eda4e27ddfc7032554f55528e57 /runserver.py | |
parent | Improved method to detect current version of the Newspipe instance. (diff) | |
download | newspipe-3ab6290d4994b33cdbf831523938cdb18a13bf49.tar.gz newspipe-3ab6290d4994b33cdbf831523938cdb18a13bf49.tar.bz2 newspipe-3ab6290d4994b33cdbf831523938cdb18a13bf49.zip |
Refactoring the backend.
Diffstat (limited to 'runserver.py')
-rwxr-xr-x | runserver.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/runserver.py b/runserver.py new file mode 100755 index 00000000..20c712a4 --- /dev/null +++ b/runserver.py @@ -0,0 +1,68 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- + +# Newspipe - A Web based news aggregator. +# Copyright (C) 2010-2020 Cédric Bonhomme - https://www.cedricbonhomme.org +# +# For more information: https://git.sr.ht/~cedric/newspipe +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +import calendar +from newspipe.bootstrap import application +from flask_babel import Babel, format_datetime + + +babel = Babel(application) + + +# Jinja filters +def month_name(month_number): + return calendar.month_name[month_number] + + +application.jinja_env.filters["month_name"] = month_name +application.jinja_env.filters["datetime"] = format_datetime +# inject application in Jinja env +application.jinja_env.globals["application"] = application + +# Views +from flask_restful import Api +from flask import g + +with application.app_context(): + g.api = Api(application, prefix="/api/v2.0") + g.babel = babel + + from newspipe.web import views + + application.register_blueprint(views.articles_bp) + application.register_blueprint(views.article_bp) + application.register_blueprint(views.feeds_bp) + application.register_blueprint(views.feed_bp) + application.register_blueprint(views.categories_bp) + application.register_blueprint(views.category_bp) + application.register_blueprint(views.icon_bp) + application.register_blueprint(views.admin_bp) + application.register_blueprint(views.users_bp) + application.register_blueprint(views.user_bp) + application.register_blueprint(views.bookmarks_bp) + application.register_blueprint(views.bookmark_bp) + + +if __name__ == "__main__": + application.run( + host=application.config['HOST'], + port=application.config['PORT'], + debug=application.config['DEBUG'] + ) |