From a2b0eb2868b59aad5dd86c55b157931664566b2b Mon Sep 17 00:00:00 2001 From: Jan Buchmaier Date: Mar 12 2019 14:34:28 +0000 Subject: Added rss feed from all copr's projects to /rss/ --- diff --git a/frontend/coprs_frontend/coprs/__init__.py b/frontend/coprs_frontend/coprs/__init__.py index 3060257..0d993d0 100644 --- a/frontend/coprs_frontend/coprs/__init__.py +++ b/frontend/coprs_frontend/coprs/__init__.py @@ -85,7 +85,8 @@ from coprs.views.user_ns import user_ns from coprs.views.user_ns import user_general from coprs.views.webhooks_ns import webhooks_ns from coprs.views.webhooks_ns import webhooks_general - +from coprs.views.rss_ns import rss_ns +from coprs.views.rss_ns import rss_general from coprs.exceptions import ObjectNotFound, AccessRestricted, BadRequest, CoprHttpException from .context_processors import include_banner, inject_fedmenu, counter_processor @@ -105,6 +106,7 @@ app.register_blueprint(tmp_ns.tmp_ns) app.register_blueprint(groups_ns) app.register_blueprint(user_ns) app.register_blueprint(webhooks_ns) +app.register_blueprint(rss_ns) app.add_url_rule("/", "coprs_ns.coprs_show", coprs_general.coprs_show) diff --git a/frontend/coprs_frontend/coprs/templates/rss/rss.xml b/frontend/coprs_frontend/coprs/templates/rss/rss.xml new file mode 100644 index 0000000..9765c7b --- /dev/null +++ b/frontend/coprs_frontend/coprs/templates/rss/rss.xml @@ -0,0 +1,16 @@ + +{% from "_helpers.html" import copr_url %} + + + Copr Home Page + https://copr.fedorainfracloud.org/coprs/ + Copr is an easy-to-use automatic build system providing a package repository as its output + {% for copr in coprs %} + + {{copr.full_name}} + {{copr_url('coprs_ns.copr_detail', copr, _external=True)}} + {{copr.description}} + + {% endfor %} + + diff --git a/frontend/coprs_frontend/coprs/views/rss_ns/__init__.py b/frontend/coprs_frontend/coprs/views/rss_ns/__init__.py new file mode 100644 index 0000000..8f31ebf --- /dev/null +++ b/frontend/coprs_frontend/coprs/views/rss_ns/__init__.py @@ -0,0 +1,3 @@ +import flask + +rss_ns = flask.Blueprint("rss_ns", __name__, url_prefix="/rss") diff --git a/frontend/coprs_frontend/coprs/views/rss_ns/rss_general.py b/frontend/coprs_frontend/coprs/views/rss_ns/rss_general.py new file mode 100644 index 0000000..83c9f04 --- /dev/null +++ b/frontend/coprs_frontend/coprs/views/rss_ns/rss_general.py @@ -0,0 +1,25 @@ +# coding: utf-8 + +from coprs.views.rss_ns import rss_ns +from coprs import app +from coprs.helpers import fix_protocol_for_frontend +from coprs.logic.coprs_logic import CoprsLogic +from flask import render_template, Response +from coprs import models + + +@rss_ns.route("/", defaults={"limit": 200}) +@rss_ns.route("//") +def rss(limit=200): + """ + Simple route that returns all projects + name, description, link to selected project + as rss feed + + """ + + coprs = CoprsLogic.get_all().order_by(models.Copr.id.desc()).limit(limit) + + answer = render_template("rss/rss.xml", coprs=coprs) + + return Response(answer, mimetype="text/xml")