Merge branch 'feature/memory-redacted'
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Lia Schöneweiß 2023-11-18 12:48:38 +01:00
commit a0e1aaa779
3 changed files with 31 additions and 4 deletions

View File

@ -2,6 +2,8 @@ import os
from telegram.ext import ConversationHandler, CommandHandler, MessageHandler, filters, CallbackQueryHandler, CallbackContext
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update, InputMediaPhoto
import models
from telegram.constants import ParseMode
# ACTION_CHOICE, DATE_ENTRY, ADD_CONTENT = range(3)
MEMORY_CHOICE = range(1)
@ -74,13 +76,15 @@ 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(
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
)
return ConversationHandler.END

View File

@ -1,4 +1,5 @@
from datetime import time, timedelta, timezone, datetime, date
from telegram.constants import ParseMode
import os
from peewee import fn
import logging
@ -48,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(
@ -56,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
)

View File

@ -1,5 +1,6 @@
from peewee import *
from pathlib import Path
import re
import os
import datetime
@ -60,6 +61,25 @@ class JournalEntry(BaseModel):
except ValueError: #fck windows
return self.date.strftime('%a, %d. %b %Y')
@property
def spoiler_text(self) -> str:
"""Returns the text with all the frisky details hidden away"""
new_text = self.text.replace("<", "&lt;").replace(">", "&gt;").replace("&", "&amp;")
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:
group_to_replace = match[0]
new_text = new_text.replace(group_to_replace, f"<tg-spoiler>{group_to_replace}</tg-spoiler>")
return new_text
def set_db(db_path):
db.initialize(SqliteDatabase(db_path))