def tag_feed(request, tag, full_text = False): # horrible special-case for the tag feed server = "http://%s"%(request.META['SERVER_NAME'] or 'localhost') feedclass = feed_engine( 'atom' ) feed = feedclass( title = 'things tagged %s on jerakeen.org'%tag, link = "%s/tags/%s/"%(server, urllib.quote(tag.encode('utf-8'))), description = "", author_name = "Tom Insam", author_email = "*****@*****.**", author_link = "http://jerakeen.org/", feed_url = "%s/tags/%s/feed/"%(server,urllib.quote(tag.encode('utf-8'))), ); tags = filter( lambda x: len(x), tag.split('+') ) page_list = Page.pages_tagged(tags)[:15] for p in page_list: if full_text: data = p.body else: data = p.excerpt or p.body image = '<img src="%s" style="float:left" width="75" height="75">'%p.thumb_url() feed.add_item( p.title, p.really_absolute_url(), image + pagefilter( data ), pubdate = p.date ) return HttpResponse( feed.writeString('utf-8'), mimetype = feed.mime_type )
def appcast(request, pagetype, slug): pagetype = get_object_or_404( PageType, folder = pagetype.lower() ) slug = slug.lower() page = get_object_or_404( Page, pagetype__exact = pagetype.id, slug__exact = slug ) feedclass = feed_engine('rss2') server = settings.SITE_URL feed = feedclass( title = "jerakeen.org / %s / appcast"%page.title, link = "%s%s"%( server, page.get_absolute_url() ), description = "", author_name = "Tom Insam", author_email = "*****@*****.**", author_link = "http://jerakeen.org/", feed_url = "%s%s/appcast"%( server, page.get_absolute_url() ), ); for upload in page.upload_set.all(): feed.add_item( upload.title, upload.file.url, # includes hostname pagefilter( upload.description ), pubdate = upload.date, enclosure = feedgenerator.Enclosure( upload.file.url, unicode(upload.file.size), "application/octet-stream" ), ) return HttpResponse( feed.writeString('utf-8'), mimetype = feed.mime_type )
def htmlexcerpt(self): if self.format == "raw": return mark_safe(self.excerpt) return pagefilter(self.excerpt or "{no excerpt}")
def htmlbody(self): if self.format == "raw": return mark_safe(self.body) return pagefilter(self.body)