aboutsummaryrefslogtreecommitdiff
path: root/runserver.py
diff options
context:
space:
mode:
authorCédric Bonhomme <cedric@cedricbonhomme.org>2020-03-09 23:16:05 +0100
committerCédric Bonhomme <cedric@cedricbonhomme.org>2020-03-09 23:16:05 +0100
commit3ab6290d4994b33cdbf831523938cdb18a13bf49 (patch)
tree685980f53aaa3eda4e27ddfc7032554f55528e57 /runserver.py
parentImproved method to detect current version of the Newspipe instance. (diff)
downloadnewspipe-3ab6290d4994b33cdbf831523938cdb18a13bf49.tar.gz
newspipe-3ab6290d4994b33cdbf831523938cdb18a13bf49.tar.bz2
newspipe-3ab6290d4994b33cdbf831523938cdb18a13bf49.zip
Refactoring the backend.
Diffstat (limited to 'runserver.py')
-rwxr-xr-xrunserver.py68
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']
+ )
bgstack15