##// END OF EJS Templates
Put thread id parameter into POST body instead of GET param when getting a...
Put thread id parameter into POST body instead of GET param when getting a thread diff

File last commit:

r1156:1c4910b7 default
r1191:0993e95c default
Show More
export.py
55 lines | 1.4 KiB | text/x-python | PythonLexer
neko259
Refactored post export
r1156 from boards import utils
PARAMETER_TRUNCATED = 'truncated'
DIFF_TYPE_HTML = 'html'
DIFF_TYPE_JSON = 'json'
class Exporter():
@staticmethod
def export(post, request, include_last_update) -> str:
pass
class HtmlExporter(Exporter):
@staticmethod
def export(post, request, include_last_update):
if request is not None and PARAMETER_TRUNCATED in request.GET:
truncated = True
reply_link = False
else:
truncated = False
reply_link = True
return post.get_view(truncated=truncated, reply_link=reply_link,
moderator=utils.is_moderator(request))
class JsonExporter(Exporter):
@staticmethod
def export(post, request, include_last_update):
post_json = {
'id': post.id,
'title': post.title,
'text': post.get_raw_text(),
}
if post.images.exists():
post_image = post.get_first_image()
post_json['image'] = post_image.image.url
post_json['image_preview'] = post_image.image.url_200x150
if include_last_update:
post_json['bump_time'] = utils.datetime_to_epoch(
post.get_thread().bump_time)
return post_json
EXPORTERS = {
DIFF_TYPE_HTML: HtmlExporter,
DIFF_TYPE_JSON: JsonExporter,
}
def get_exporter(export_type: str) -> Exporter:
return EXPORTERS[export_type]()