Wiki: Add various json endpoints

This commit is contained in:
Andre D
2012-08-24 11:53:03 -05:00
committed by Neil Williams
parent 0e25236146
commit 19a02c4fd8
2 changed files with 33 additions and 0 deletions

View File

@@ -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)

View File

@@ -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',