From 3d94ee24eaca05cf5e03ac1af3a12c9e5f42aac9 Mon Sep 17 00:00:00 2001
From: str4d <str4d@mail.i2p>
Date: Thu, 29 Aug 2013 05:18:36 +0000
Subject: [PATCH] Set up legacy mappings of release-* pages and other blog
 posts

---
 i2p2www/legacy.py | 71 ++++++++++++++++++++++++++++++++++++++++++++++-
 i2p2www/urls.py   |  4 +++
 2 files changed, 74 insertions(+), 1 deletion(-)

diff --git a/i2p2www/legacy.py b/i2p2www/legacy.py
index a6fa08a02..c81fbb296 100644
--- a/i2p2www/legacy.py
+++ b/i2p2www/legacy.py
@@ -122,6 +122,61 @@ LEGACY_PAGES_MAP={
     'upgrade-0.6.1.30':       'misc/upgrade-0.6.1.30',
 }
 
+LEGACY_BLOG_POSTS_MAP={
+    'statnotes0108':         {'date': (2008, 2, 1), 'title': 'status'},
+    'summerofcode-2011':     {'date': (2011, 6, 6), 'title': 'Ipredator-SoC'},
+    'summerofcode-2011-end': {'date': (2011, 9, 3), 'title': 'Ipredator-SoC-itoopie-released'},
+}
+
+LEGACY_RELEASES_MAP={
+    '0.6.1.30': (2007, 10, 7),
+    '0.6.1.31': (2008, 2, 10),
+    '0.6.1.32': (2008, 3, 9),
+    '0.6.1.33': (2008, 4, 26),
+    '0.6.2':    (2008, 6, 7),
+    '0.6.3':    (2008, 8, 26),
+    '0.6.4':    (2008, 10, 6),
+    '0.6.5':    (2008, 12, 1),
+    '0.7':      (2009, 1, 25),
+    '0.7.1':    (2009, 3, 29),
+    '0.7.2':    (2009, 4, 19),
+    '0.7.3':    (2009, 5, 18),
+    '0.7.4':    (2009, 6, 13),
+    '0.7.5':    (2009, 6, 29),
+    '0.7.6':    (2009, 7, 31),
+    '0.7.7':    (2009, 10, 12),
+    '0.7.8':    (2009, 12, 8),
+    '0.7.9':    (2010, 1, 12),
+    '0.7.10':   (2010, 1, 22),
+    '0.7.11':   (2010, 2, 15),
+    '0.7.12':   (2010, 3, 15),
+    '0.7.13':   (2010, 4, 27),
+    '0.7.14':   (2010, 6, 7),
+    '0.8':      (2010, 7, 12),
+    '0.8.1':    (2010, 11, 15),
+    '0.8.2':    (2010, 12, 22),
+    '0.8.3':    (2011, 1, 24),
+    '0.8.4':    (2011, 3, 2),
+    '0.8.5':    (2011, 4, 18),
+    '0.8.6':    (2011, 5, 16),
+    '0.8.7':    (2011, 6, 27),
+    '0.8.8':    (2011, 8, 23),
+    '0.8.9':    (2011, 10, 11),
+    '0.8.10':   (2011, 10, 20),
+    '0.8.11':   (2011, 11, 8),
+    '0.8.12':   (2012, 1, 6),
+    '0.8.13':   (2012, 2, 27),
+    '0.9':      (2012, 5, 2),
+    '0.9.1':    (2012, 7, 30),
+    '0.9.2':    (2012, 9, 21),
+    '0.9.3':    (2012, 10, 27),
+    '0.9.4':    (2012, 12, 17),
+    '0.9.5':    (2013, 3, 8),
+    '0.9.6':    (2013, 5, 28),
+    '0.9.7':    (2013, 7, 15),
+    '0.9.7.1':  (2013, 8, 10),
+}
+
 def legacy_show(f):
     lang = 'en'
     if hasattr(g, 'lang') and g.lang:
@@ -130,6 +185,8 @@ def legacy_show(f):
         return redirect(url_for(LEGACY_FUNCTIONS_MAP[f]['function'], lang=lang, **LEGACY_FUNCTIONS_MAP[f]['params']))
     elif f in LEGACY_PAGES_MAP:
         return redirect(url_for('site_show', lang=lang, page=LEGACY_PAGES_MAP[f]))
+    elif f in LEGACY_BLOG_POSTS_MAP:
+        return legacy_blog(lang, LEGACY_BLOG_POSTS_MAP[f]['date'], LEGACY_BLOG_POSTS_MAP[f]['title'])
     else:
         return redirect(url_for('site_show', lang=lang, page=f))
 
@@ -137,4 +194,16 @@ def legacy_meeting(id):
     return redirect(url_for('meetings_show', id=id, lang='en'))
 
 def legacy_status(year, month, day):
-    return redirect(url_for('blog_post', lang='en', slug=('%d/%02d/%02d/status' % (year, month, day))))
+    return legacy_blog('en', (year, month, day), 'status')
+
+def legacy_release(version):
+    lang = 'en'
+    if hasattr(g, 'lang') and g.lang:
+        lang = g.lang
+    if version in LEGACY_RELEASES_MAP:
+        return legacy_blog(lang, LEGACY_RELEASES_MAP[version], '%s-Release' % version)
+    else:
+        return legacy_show('release-%s' % version)
+
+def legacy_blog(lang, (year, month, day), title):
+    return redirect(url_for('blog_post', lang=lang, slug=('%d/%02d/%02d/%s' % (year, month, day, title))))
diff --git a/i2p2www/urls.py b/i2p2www/urls.py
index b7282ef77..5d81101ed 100644
--- a/i2p2www/urls.py
+++ b/i2p2www/urls.py
@@ -71,6 +71,10 @@ url('/meeting<int:id>', 'legacy.legacy_meeting')
 url('/meeting<int:id>.html', 'legacy.legacy_meeting')
 url('/status-<int:year>-<int:month>-<int:day>', 'legacy.legacy_status')
 url('/status-<int:year>-<int:month>-<int:day>.html', 'legacy.legacy_status')
+url('/release-<string:version>_<lang:lang>', 'legacy.legacy_release')
+url('/release-<string:version>_<lang:lang>.html', 'legacy.legacy_release')
+url('/release-<string:version>/', 'legacy.legacy_release')
+url('/release-<string:version>.html', 'legacy.legacy_release')
 url('/<string:f>_<lang:lang>', 'legacy.legacy_show')
 url('/<string:f>_<lang:lang>.html', 'legacy.legacy_show')
 url('/<string:f>/', 'legacy.legacy_show')
-- 
GitLab