(r"/news.rss", tornado.web.RedirectHandler, { "url" : "https://blog.ipfire.org/feed.xml" }),
# Redirect news articles to blog
- (r"/news/(.*)", tornado.web.RedirectHandler, { "url" : "https://blog.ipfire.org/posts/{1}" }),
+ (r"/news/(.*)", handlers.NewsHandler),
# Static Pages
(r"/chat", StaticHandler, { "template" : "chat.html" }),
# planet.ipfire.org
self.add_handlers(r"planet(\.dev)?\.ipfire\.org", [
(r"/", tornado.web.RedirectHandler, { "url" : "https://blog.ipfire.org/" }),
- (r"/post/([A-Za-z0-9_-]+)", tornado.web.RedirectHandler, { "url" : "https://blog.ipfire.org/posts/{1}" }),
- (r"/user/([a-z0-9_-]+)", tornado.web.RedirectHandler, { "url" : "https://blog.ipfire.org/authors/{1}" }),
+ (r"/post/([A-Za-z0-9_-]+)", handlers.PlanetPostHandler),
+ (r"/user/([a-z0-9_-]+)", handlers.PlanetUserHandler),
# RSS
(r"/rss", tornado.web.RedirectHandler, { "url" : "https://blog.ipfire.org/feed.xml" }),
- (r"/user/([a-z0-9_-]+)/rss", tornado.web.RedirectHandler, { "url" : "https://blog.ipfire.org/authors/{1}.rss" }),
+ (r"/user/([a-z0-9_-]+)/rss", tornado.web.RedirectHandler, { "url" : "https://blog.ipfire.org/feed.xml" }),
(r"/news.rss", tornado.web.RedirectHandler, { "url" : "https://blog.ipfire.org/feed.xml" }),
])
import iso3166
import tornado.gen
+import tornado.httputil
import tornado.web
from . import base
latest_release=latest_release)
+class NewsHandler(base.BaseHandler):
+ def get(self, post):
+ self.redirect("https://blog.ipfire.org/post/%s" % post, permanent=True)
+
+
+class PlanetPostHandler(base.BaseHandler):
+ def get(self, post):
+ self.redirect("https://blog.ipfire.org/post/%s" % post, permanent=True)
+
+
+class PlanetUserHandler(base.BaseHandler):
+ def get(self, user):
+ self.redirect("https://blog.ipfire.org/authors/%s" % user, permanent=True)
+
+
class DonateHandler(base.BaseHandler):
def get(self):
location = self.get_remote_location()