Beispiel #1
0
 def parse_post(self, post):
     if self.context['mode'] == PostingEndpoint.START:
         return common_flavour(self.context['request'],
                               self.context['user'], post)
     else:
         return common_flavour(self.context['request'],
                               self.context['post'].poster, post)
Beispiel #2
0
    def validate_post(self, post):
        post_len = len(post)
        if not post_len:
            raise forms.ValidationError(_("Enter message."))

        if post_len < settings.post_length_min:
            message = ungettext(
                "Posted message should be at least %(limit)s character long.",
                "Posted message should be at least %(limit)s characters long.",
                settings.post_length_min)
            message = message % {'limit': settings.post_length_min}
            raise forms.ValidationError(message)

        if settings.post_length_max and post_len > settings.post_length_max:
            message = ungettext(
                "Posted message can't be longer than %(limit)s character.",
                "Posted message can't be longer than %(limit)s characters.",
                settings.post_length_max,
            )
            message = message % {'limit': settings.post_length_max}
            raise forms.ValidationError(message)

        self.parsing_result = common_flavour(post, self.post_instance.poster)

        self.post_instance.original = self.parsing_result['original_text']
        self.post_instance.parsed = self.parsing_result['parsed_text']
Beispiel #3
0
    def validate_post(self, post):
        post_len = len(post)
        if not post_len:
            raise forms.ValidationError(_("Enter message."))

        if post_len < settings.post_length_min:
            message = ungettext(
                "Posted message should be at least %(limit)s character long.",
                "Posted message should be at least %(limit)s characters long.",
                settings.post_length_min)
            message = message % {'limit': settings.post_length_min}
            raise forms.ValidationError(message)

        if settings.post_length_max and post_len > settings.post_length_max:
            message = ungettext(
                "Posted message can't be longer than %(limit)s character.",
                "Posted message can't be longer than %(limit)s characters.",
                settings.post_length_max,)
            message = message % {'limit': settings.post_length_max}
            raise forms.ValidationError(message)

        self.parsing_result = common_flavour(post, self.post_instance.poster)

        self.post_instance.original = self.parsing_result['original_text']
        self.post_instance.parsed = self.parsing_result['parsed_text']
def clean_posts():
    for post in batch_update(Post.objects):
        post.original = clean_original(post.original)

        parsed_post = common_flavour(FakeRequest(), FakeUser(), post.original)
        post.parsed = parsed_post['parsed_text']

        update_post_checksum(post)
        post.save()
Beispiel #5
0
def get_parsed_content(setting_name):
    cache_name = 'misago_legal_%s' % setting_name
    cached_content = cache.get(cache_name)

    unparsed_content = settings.get_lazy_setting(setting_name)

    checksum_source = '%s:%s' % (unparsed_content, settings.SECRET_KEY)
    unparsed_checksum = md5(checksum_source).hexdigest()

    if cached_content and cached_content.get('checksum') == unparsed_checksum:
        return cached_content['parsed']
    else:
        cached_content = {
            'checksum': unparsed_checksum,
            'parsed': common_flavour(unparsed_content)['parsed_text'],
        }
        cache.set(cache_name, cached_content)
        return cached_content['parsed']
Beispiel #6
0
def get_parsed_content(setting_name):
    cache_name = 'misago_legal_%s' % setting_name
    cached_content = cache.get(cache_name)

    unparsed_content = settings.get_lazy_setting(setting_name)

    checksum_source = '%s:%s' % (unparsed_content, settings.SECRET_KEY)
    unparsed_checksum = md5(checksum_source).hexdigest()

    if cached_content and cached_content.get('checksum') == unparsed_checksum:
        return cached_content['parsed']
    else:
        cached_content = {
            'checksum': unparsed_checksum,
            'parsed': common_flavour(unparsed_content)['parsed_text'],
        }
        cache.set(cache_name, cached_content)
        return cached_content['parsed']
Beispiel #7
0
def revert_post_endpoint(request, post):
    edit = get_edit_by_pk(post, request.GET.get('edit'))

    datetime = timezone.now()
    post_edits = post.edits

    post.edits_record.create(
        category=post.category,
        thread=post.thread,
        edited_on=datetime,
        editor=request.user,
        editor_name=request.user.username,
        editor_slug=request.user.slug,
        editor_ip=request.user_ip,
        edited_from=post.original,
        edited_to=edit.edited_from,
    )

    parsing_result = common_flavour(request, post.poster, edit.edited_from)

    post.original = parsing_result['original_text']
    post.parsed = parsing_result['parsed_text']

    update_post_checksum(post)

    post.updated_on = datetime
    post.edits = F('edits') + 1

    post.last_editor = request.user
    post.last_editor_name = request.user.username
    post.last_editor_slug = request.user.slug

    post.save()

    post.is_read = True
    post.is_new = False
    post.edits = post_edits + 1

    add_acl(request.user, post)

    if post.poster:
        make_users_status_aware(request.user, [post.poster])

    return Response(PostSerializer(post, context={'user': request.user}).data)
def revert_post_endpoint(request, post):
    edit = get_edit_by_pk(post, request.GET.get('edit'))

    datetime = timezone.now()
    post_edits = post.edits

    post.edits_record.create(
        category=post.category,
        thread=post.thread,
        edited_on=datetime,
        editor=request.user,
        editor_name=request.user.username,
        editor_slug=request.user.slug,
        editor_ip=request.user_ip,
        edited_from=post.original,
        edited_to=edit.edited_from,
    )

    parsing_result = common_flavour(request, post.poster, edit.edited_from)

    post.original = parsing_result['original_text']
    post.parsed = parsing_result['parsed_text']

    update_post_checksum(post)

    post.updated_on = datetime
    post.edits = F('edits') + 1

    post.last_editor = request.user
    post.last_editor_name = request.user.username
    post.last_editor_slug = request.user.slug

    post.save()

    post.is_read = True
    post.is_new = False
    post.edits = post_edits + 1

    add_acl(request.user, post)

    if post.poster:
        make_users_status_aware(request.user, [post.poster])

    return Response(PostSerializer(post, context={'user': request.user}).data)
def get_parsed_agreement_text(request, agreement):
    if not agreement.text:
        return None

    cache_name = 'misago_legal_%s_%s' % (agreement.pk, agreement.last_modified_on or '')
    cached_content = cache.get(cache_name)

    unparsed_content = agreement.text

    checksum_source = force_bytes('%s:%s' % (unparsed_content, settings.SECRET_KEY))
    unparsed_checksum = md5(checksum_source).hexdigest()

    if cached_content and cached_content.get('checksum') == unparsed_checksum:
        return cached_content['parsed']
    else:
        parsed = common_flavour(request, None, unparsed_content)['parsed_text']
        cached_content = {
            'checksum': unparsed_checksum,
            'parsed': parsed,
        }
        cache.set(cache_name, cached_content)
        return cached_content['parsed']
Beispiel #10
0
 def parse_post(self, post):
     if self.mode == PostingEndpoint.START:
         return common_flavour(self.request, self.user, post)
     else:
         return common_flavour(self.request, self.post.poster, post)
Beispiel #11
0
 def parse_post(self, post):
     if self.mode == PostingEndpoint.START:
         return common_flavour(self.request, self.user, post)
     else:
         return common_flavour(self.request, self.post.poster, post)
 def parse_post(self, post):
     if self.context['mode'] == PostingEndpoint.START:
         return common_flavour(self.context['request'], self.context['user'], post)
     else:
         return common_flavour(self.context['request'], self.context['post'].poster, post)
Beispiel #13
0
    def parse_post(self, post):
        self.parsing_result = common_flavour(self.request,
                                             self.post_instance.poster, post)

        self.post_instance.original = self.parsing_result['original_text']
        self.post_instance.parsed = self.parsing_result['parsed_text']
Beispiel #14
0
    def parse_post(self, post):
        self.parsing_result = common_flavour(
            self.request, self.post_instance.poster, post)

        self.post_instance.original = self.parsing_result['original_text']
        self.post_instance.parsed = self.parsing_result['parsed_text']