]> git.ipfire.org Git - ipfire.org.git/blobdiff - www/webapp/ui_modules.py
RSS feed and minor improvements.
[ipfire.org.git] / www / webapp / ui_modules.py
index fab4a3a62f5bb23e157a503ab4c0860557aeab6f..2105385df566ef8d868dc39ce590b7f95abda8bc 100644 (file)
@@ -2,6 +2,7 @@
 
 from __future__ import division
 
+import hashlib
 import logging
 import operator
 import socket
@@ -23,6 +24,10 @@ class UIModule(tornado.web.UIModule):
        def banners(self):
                return self.handler.banners
 
+       @property
+       def memcached(self):
+               return self.handler.memcached
+
        @property
        def releases(self):
                return self.handler.releases
@@ -67,7 +72,14 @@ class NewsItemModule(UIModule):
                        item.text = item.text[:400] + "..."
 
                # Render text
-               item.text = textile.textile(item.text)
+               text_id = "news-%s" % hashlib.md5(item.text.encode("utf-8")).hexdigest()
+
+               text = self.memcached.get(text_id)
+               if not text:
+                       text = textile.textile(item.text)
+                       self.memcached.set(text_id, text, 60)
+
+               item.text = text
 
                return self.render_string("modules/news-item.html", item=item, uncut=uncut)