diff --git a/bot/commands/memory.py b/bot/commands/memory.py
index 5bae67f..f9bcb02 100644
--- a/bot/commands/memory.py
+++ b/bot/commands/memory.py
@@ -76,7 +76,8 @@ class MemoryHandler(BaseHandler):
caption=
f"On {chosen_match.date_pretty}, "
f"{chosen_match.author} wrote: \n"
- f"{chosen_match.text}"
+ f"{chosen_match.spoiler_text}",
+ parse_mode=ParseMode.HTML
)
else:
await query.edit_message_text(
diff --git a/bot/cronjob/random_memory.py b/bot/cronjob/random_memory.py
index a9db632..b0a397d 100644
--- a/bot/cronjob/random_memory.py
+++ b/bot/cronjob/random_memory.py
@@ -49,7 +49,8 @@ class RandomMemoryJob():
caption =
f"On {chosen_entry.date_pretty}, "
f"{chosen_entry.author} wrote: \n"
- f"{chosen_entry.text}"
+ f"{chosen_entry.spoiler_text}",
+ parse_mode=ParseMode.HTML
)
else:
await self.bot.send_message(
@@ -57,6 +58,7 @@ class RandomMemoryJob():
text =
f"On {chosen_entry.date_pretty}, "
f"{chosen_entry.author} wrote: \n"
- f"{chosen_entry.text}"
+ f"{chosen_entry.spoiler_text}",
+ parse_mode=ParseMode.HTML
)
diff --git a/bot/models.py b/bot/models.py
index e485aa2..6894243 100644
--- a/bot/models.py
+++ b/bot/models.py
@@ -63,10 +63,21 @@ class JournalEntry(BaseModel):
@property
def spoiler_text(self) -> str:
- new_text = self.text.replace("\n", "
").replace("<", "<").replace(">", ">").replace("&", "&")
- matches = re.findall(r"[A-Z](\s|\w)+\:\)(\w|\s)+\.", new_text)
+ """Returns the text with all the frisky details hidden away"""
+ new_text = self.text.replace("<", "<").replace(">", ">").replace("&", "&")
+ pattern = re.compile(
+ "("
+ "(((?<=(\.|\!|\?)\s)[A-Z])|(^[A-Z]))" # beginning of a sentence
+ "([^\.\!\?])+" # any character being part of a sentence
+ "\:\)" # the smiley
+ "([^\.\!\?])*" # continuation of sentence
+ "(\.|\!|\?|\,|$)" # end of the sentence
+ ")"
+ )
+ matches = pattern.findall(new_text)
for match in matches:
- new_text = new_text.replace(match, f"{match}")
+ group_to_replace = match[0]
+ new_text = new_text.replace(group_to_replace, f"{group_to_replace}")
return new_text