mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-25 23:08:22 -05:00
Wiki: Add various json endpoints
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user