##// END OF EJS Templates
Limit only first posting by this session. Assume messages created by spam bots...
Limit only first posting by this session. Assume messages created by spam bots can be removed afterwards

File last commit:

r1390:1252678f default
r1494:89a50a1d default
Show More
export.py
57 lines | 1.5 KiB | text/x-python | PythonLexer
from django.contrib.auth.context_processors import PermWrapper
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,
perms=PermWrapper(request.user))
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]()