From 74149bbee6766114c92ceb0fd909489f0cd2767a Mon Sep 17 00:00:00 2001 From: Baiju M Date: Thu, 3 Feb 2011 12:28:09 +0530 Subject: [PATCH] Atom feed --- py3k/packages.py | 29 ++++++++++++++++++++++++++++ py3k/static/feed-icon.png | Bin 0 -> 801 bytes py3k/templates/layout.html | 1 + py3k/templates/package_details.html | 15 +++++++++++++- 4 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 py3k/static/feed-icon.png diff --git a/py3k/packages.py b/py3k/packages.py index a016884..5a71c99 100644 --- a/py3k/packages.py +++ b/py3k/packages.py @@ -37,6 +37,35 @@ from .captcha import get_captcha_key from .captcha import verify_captcha +from urlparse import urljoin +from werkzeug.contrib.atom import AtomFeed + + +def make_external(url): + return urljoin(request.url_root, "project", url) + + +@app.route('/project//recent.atom') +def recent_feed(name): + feed = AtomFeed("Project: %s"%name, + feed_url=request.url, url=request.url_root) + result = Distribution.query.filter_by(name=name).first() + if result is None: + return redirect(url_for('search_package', name=name, page=1)) + comments = Comment.query.filter_by(distribution_id=result.id).order_by(db.desc(Comment.datetime)).limit(5) + + for comment in comments: + title = "%s has %s (%s) %s on %s" % (comment.fullname, + name, comment.version, + "Working" if comment.working else "Failing", + comment.platform) + feed.add(title, unicode(comment.comment), + content_type='html', + author=comment.fullname, + url=make_external(name), + updated=comment.datetime, + published=comment.datetime) + return feed.get_response() @app.route('/project//add_comment', methods=['POST']) def add_comment(name): diff --git a/py3k/static/feed-icon.png b/py3k/static/feed-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..355d1c77a2f6e861a6394649be6365b314c67a84 GIT binary patch literal 801 zcmV++1K#|JP)YL~HBhUSRMCZ^P~EsNU9^n|g$BAP+9E=6p)ULYw-Q$oR8S%msiI34f{@14 zel1$Dme4j#lNr%;CU4%m_qdoe7~4!#4zcGjyL5v^* zVu01Rps04*#X{po{lv~s{`^cXj1P`g@2yQ{i%qN(j5k;>7`Oh46^!i`?}RefX0MLP z+{xW_T3NcGI>5#!N71D^Vg4d<{yfI&|H5J*bd*M2>&_*Qt2ak;xOfdQ@Cx9u7is#q5+Zl_eRv_ z?KNKQ#!dL0`|yvwhLn0C7KEQaAisEe6%JV>HzkZ1FiuEnkFe>;DJn02jKBYB!liG> zzur&0`70QQ-TNj~cdf!j7D2&?tTf3xOz&3Qj;BbTeVfwgmq<@a`0*I=`WY~e4KKV) zq)d@TVy?uf7*-U}xI%X7D8!%3-DtktW(GoflqW;H%75wlk_-9TcNtw>~ zZ=kIvX7g6ugD=vW{ua$Mq|}2O+)d0CRk{|$3N{_Wjl7O|U>~w;oZ_zr+00h}_=lb& zwAy69PXmzDhKYruT?MGI0?SS4ECCP~uTf-?&Xr#PaMd9~uH?7o0I-{@#6m$u<@!61 z*Zc3bsThdkN})Ly!~LcmVV@%trC$Kx}P+z&8T*d*ZSWJ fi^m_Hxcd3O7Vc(}xUNP~00000NkvXXu0mjfDPw+e literal 0 HcmV?d00001 diff --git a/py3k/templates/layout.html b/py3k/templates/layout.html index aba53a0..432a058 100644 --- a/py3k/templates/layout.html +++ b/py3k/templates/layout.html @@ -4,6 +4,7 @@ {% block title %}Get Python 3{% endblock %} + {% block link %}{% endblock %} diff --git a/py3k/templates/package_details.html b/py3k/templates/package_details.html index 9a176b2..c9952ab 100644 --- a/py3k/templates/package_details.html +++ b/py3k/templates/package_details.html @@ -1,4 +1,11 @@ {% extends "layout.html" %} +{% block link %} + +{% endblock %} + {% block body %}

Want to use Python 3 for your next project ?

@@ -17,7 +24,13 @@

Find out all the third party libraries supported by P

-

{{ result.name }}

+

{{ result.name }} + + +

Home Page