##// END OF EJS Templates
Use mimetype instead of extensions for file type wherever it is used
Use mimetype instead of extensions for file type wherever it is used

File last commit:

r1725:13d5acda default
r1866:fccf814a default
Show More
export.py
57 lines | 1.4 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(),
}
post_image = post.get_first_image()
if post_image:
post_json['image'] = post_image.file.url
post_json['image_preview'] = post_image.get_thumb_url()
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]()