##// END OF EJS Templates
Convert local post IDs to global when generating responses
neko259 -
r1228:4f3aad00 decentral
parent child Browse files
Show More
@@ -443,6 +443,23 b' class Post(models.Model, Viewable):'
443 443 def get_raw_text(self) -> str:
444 444 return self.text
445 445
446 def get_sync_text(self) -> str:
447 """
448 Returns text applicable for sync. It has absolute post reflinks.
449 """
450
451 replacements = dict()
452 for post_id in REGEX_REPLY.findall(self.get_raw_text()):
453 absolute_post_id = str(Post.objects.get(id=post_id).global_id)
454 replacements[post_id] = absolute_post_id
455
456 text = self.get_raw_text()
457 for key in replacements:
458 text = text.replace('[post]{}[/post]'.format(key),
459 '[post]{}[/post]'.format(replacements[key]))
460
461 return text
462
446 463 def get_absolute_id(self) -> str:
447 464 """
448 465 If the post has many threads, shows its main thread OP id in the post
@@ -53,8 +53,7 b' class SyncManager:'
53 53 title.text = post.title
54 54
55 55 text = et.SubElement(content_tag, TAG_TEXT)
56 # TODO Replace local links by global ones in the text
57 text.text = post.get_raw_text()
56 text.text = post.get_sync_text()
58 57
59 58 if not post.is_opening():
60 59 thread = et.SubElement(content_tag, TAG_THREAD)
@@ -66,14 +66,14 b' class KeyTest(TestCase):'
66 66 '<content>'
67 67 '<id key="%s" local-id="%d" type="%s" />'
68 68 '<title>test_title</title>'
69 '<text>[post]%d[/post]</text>'
69 '<text>[post]%s[/post]</text>'
70 70 '<thread><id key="%s" local-id="%d" type="%s" /></thread>'
71 71 '<pub-time>%s</pub-time>'
72 72 '</content>' % (
73 73 key.public_key,
74 74 reply_post.id,
75 75 key.key_type,
76 post.id,
76 str(post.global_id),
77 77 key.public_key,
78 78 post.id,
79 79 key.key_type,
General Comments 0
You need to be logged in to leave comments. Login now