From b1b7779309060b323376a4c629821fa67c22140c Mon Sep 17 00:00:00 2001 From: Nick Sergeant Date: Fri, 13 Apr 2012 23:30:23 -0400 Subject: [PATCH] RSS --- media/css/style.scss | 12 +++++++++- media/images/rss-icon.png | Bin 0 -> 1233 bytes snipts/templates/snipts/list-public.html | 3 +++ snipts/templates/snipts/list-user.html | 3 +++ snipts/views.py | 27 ++++++++++++++++++++--- templates/base.html | 4 ++++ templates/rss.xml | 14 ++++++++++++ 7 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 media/images/rss-icon.png create mode 100644 templates/rss.xml diff --git a/media/css/style.scss b/media/css/style.scss index 71ad6ff..f36b36c 100644 --- a/media/css/style.scss +++ b/media/css/style.scss @@ -242,8 +242,8 @@ header.sub { li { display: inline-block; - max-width: 490px; line-height: normal; + max-width: 490px; overflow: hidden; padding: 2px 0 4px 0; text-overflow: ellipsis; @@ -265,6 +265,16 @@ header.sub { margin-right: 3px; text-shadow: 0 1px 0 #FFF; } + &.rss { + float: right; + + a { + background: transparent url('/static/images/rss-icon.png') center left no-repeat; + display: inline-block; + margin-right: 15px; + padding-left: 15px; + } + } } } div.shortcuts { diff --git a/media/images/rss-icon.png b/media/images/rss-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3f8cdebce6d389d28b29668767bf23ed48f4cf70 GIT binary patch literal 1233 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRQ!3HGLSWET+DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yc06!V;*iRM zRQ;gT;{4L0WMIUlDTAykuyQU+O)SYT3dzsUfrVl~Mt(_taYlZDf^)E`f^TASW*&$S zR`2U;<(XGpl9-pA>gi&u1T;Y}Gc(1?$i>Lmz|zdr+||I$(9qS;$<@@t$;sK&+|0$* z(Zs+Irq?AuximL5uLPzy1)7*cU7 zX^v&_Gf6f!wlW1fz9X+MUAk0euz>N{*VotUtN#D9z5f3G{+SDtb~o&hSn-1^=HmJJ z_WXZ;fA{BKG2#ECquo6Ha<)kcDJg$`{Qv(yVZouj3a)29efo5Bx_*4!m&eEZRoAUs zH@~u?;)1+yjY@2Ol|@b;D|qq+I^w(a@%e=%F}%zI*f>!/ {{ tag.name }} {% endif %} +
  • + RSS +
  • {% endblock %} {% block tags %} diff --git a/snipts/templates/snipts/list-user.html b/snipts/templates/snipts/list-user.html index 11c4253..713b956 100644 --- a/snipts/templates/snipts/list-user.html +++ b/snipts/templates/snipts/list-user.html @@ -7,6 +7,9 @@ {% if tag %}
  • / {{ tag.name }}
  • {% endif %} +
  • + RSS +
  • {% endblock %} {% block tags %} diff --git a/snipts/views.py b/snipts/views.py index 251f85d..549bf86 100644 --- a/snipts/views.py +++ b/snipts/views.py @@ -30,7 +30,7 @@ def list_public(request, tag_slug=None): else: tag = None - return { + context = { 'has_snipts': True, 'lexers': sorted(get_all_lexers()), 'public': True, @@ -39,6 +39,12 @@ def list_public(request, tag_slug=None): 'tag': tag, } + if 'rss' in request.GET: + context['snipts'] = context['snipts'][:20] + return rss(request, context) + + return context + @render_to('snipts/list-user.html') def list_user(request, username, tag_slug=None): @@ -46,7 +52,7 @@ def list_user(request, username, tag_slug=None): tags = Tag.objects snipts = Snipt.objects - if user == request.user: + if user == request.user or (request.GET.get('api_key') == user.api_key.key): public = False favorites = Favorite.objects.filter(user=user).values('snipt') @@ -69,7 +75,7 @@ def list_user(request, username, tag_slug=None): else: tag = None - return { + context = { 'has_snipts': True, 'lexers': sorted(get_all_lexers()), 'public': public, @@ -80,6 +86,12 @@ def list_user(request, username, tag_slug=None): 'user': user, } + if 'rss' in request.GET: + context['snipts'] = context['snipts'][:20] + return rss(request, context) + + return context + @render_to('snipts/detail.html') def detail(request, username, snipt_slug): @@ -107,6 +119,7 @@ def detail(request, username, snipt_slug): tags = tags.order_by('-count', 'name') return { + 'detail': True, 'has_snipts': True, 'lexers': sorted(get_all_lexers()), 'public': public, @@ -123,3 +136,11 @@ def embed(request, snipt_key): {'lines': lines, 'snipt': snipt}, context_instance=RequestContext(request), mimetype='application/javascript') + +def rss(request, context): + return render_to_response( + 'rss.xml', + context, + context_instance=RequestContext(request), + mimetype="application/rss+xml" + ) diff --git a/templates/base.html b/templates/base.html index 2610f90..baefdb5 100644 --- a/templates/base.html +++ b/templates/base.html @@ -42,6 +42,10 @@ window.api_key = '{{ request.user.api_key.key }}';{% endblock %} {% endblock %} + {% if has_snipts and not detail %} + + {% endif %} +