From 19a02c4fd81dbc2f69e0083f4e1f207d7f2c62d1 Mon Sep 17 00:00:00 2001 From: Andre D Date: Fri, 24 Aug 2012 11:53:03 -0500 Subject: [PATCH] Wiki: Add various json endpoints --- r2/r2/config/templates.py | 5 +++++ r2/r2/lib/jsontemplates.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/r2/r2/config/templates.py b/r2/r2/config/templates.py index 7d709676e..f6a1e675b 100644 --- a/r2/r2/config/templates.py +++ b/r2/r2/config/templates.py @@ -56,6 +56,11 @@ api('organiclisting', OrganicListingJsonTemplate) api('subreddittraffic', TrafficJsonTemplate) api('takedownpane', TakedownJsonTemplate) +api('wikibasepage', WikiJsonTemplate) +api('wikipagerevisions', WikiJsonTemplate) +api('wikiview', WikiViewJsonTemplate) +api('wikirevision', WikiRevisionJsonTemplate) + api('flairlist', FlairListJsonTemplate) api('flaircsv', FlairCsvJsonTemplate) diff --git a/r2/r2/lib/jsontemplates.py b/r2/r2/lib/jsontemplates.py index a5a02a26a..bde5977d3 100755 --- a/r2/r2/lib/jsontemplates.py +++ b/r2/r2/lib/jsontemplates.py @@ -555,6 +555,32 @@ class TrafficJsonTemplate(JsonTemplate): return ObjectTemplate(res) +class WikiJsonTemplate(JsonTemplate): + def render(self, thing, *a, **kw): + try: + content = thing.content + except AttributeError: + content = thing.revisions + return ObjectTemplate(content.render() if thing else {}) + +class WikiViewJsonTemplate(ThingJsonTemplate): + def render(self, thing, *a, **kw): + edit_date = time.mktime(thing.edit_date.timetuple()) + return ObjectTemplate(dict(content_md=thing.page_content_md, + content_html=thing.page_content, + revision_by=thing.edit_by, + revision_date=edit_date, + may_revise=thing.may_revise)) + +class WikiRevisionJsonTemplate(ThingJsonTemplate): + def render(self, thing, *a, **kw): + timestamp = time.mktime(thing.date.timetuple()) + return ObjectTemplate(dict(author=thing._get('author'), + id=str(thing._id), + timestamp=timestamp, + reason=thing._get('reason'), + page=thing.page)) + class FlairListJsonTemplate(JsonTemplate): def render(self, thing, *a, **kw): def row_to_json(row): @@ -607,6 +633,8 @@ class SubredditSettingsTemplate(ThingJsonTemplate): title = 'site.title', description = 'site.description', public_description = 'site.public_description', + prev_description_id = 'site.prev_description_id', + prev_public_description_id = 'site.prev_public_description_id', language = 'site.lang', subreddit_type = 'site.type', content_options = 'site.link_type',