##// END OF EJS Templates
Do not parse links to posts that do not exists in the time of posting.
neko259 -
r312:c4a9a992 default
parent child Browse files
Show More
@@ -14,10 +14,12 b' from boards import utils'
14 14 from boards.forms import ThreadForm, PostForm, SettingsForm, PlainErrorList, \
15 15 ThreadCaptchaForm, PostCaptchaForm, LoginForm, ModeratorSettingsForm
16 16
17 from boards.models import Post, Tag, Ban, User, RANK_USER, SETTING_MODERATE
17 from boards.models import Post, Tag, Ban, User, RANK_USER, SETTING_MODERATE, \
18 REGEX_REPLY
18 19 from boards import authors
19 20 from boards.utils import get_client_ip
20 21 import neboard
22 import re
21 23
22 24
23 25 def index(request, page=0):
@@ -70,6 +72,8 b' def _new_post(request, form, thread_id=b'
70 72 title = data['title']
71 73 text = data['text']
72 74
75 text = _remove_invalid_links(text)
76
73 77 if 'image' in data.keys():
74 78 image = data['image']
75 79 else:
@@ -457,3 +461,18 b' def _ban_current_user(request):'
457 461
458 462 ip = utils.get_client_ip(request)
459 463 Ban.objects.get_or_create(ip=ip)
464
465
466 def _remove_invalid_links(text):
467 """
468 Replace invalid links in posts so that they won't be parsed.
469 Invalid links are links to non-existent posts
470 """
471
472 for reply_number in re.finditer(REGEX_REPLY, text):
473 id = reply_number.group(1)
474 post = Post.objects.filter(id=id)
475 if not post.exists():
476 text = string.replace(text, '>>' + id, id)
477
478 return text
General Comments 0
You need to be logged in to leave comments. Login now