playing with regexes

This commit is contained in:
Remy Moll 2023-10-21 15:23:05 +02:00
parent d40afca1a4
commit 6b63276dd7
3 changed files with 13 additions and 1 deletions

View File

@ -1,6 +1,7 @@
import os import os
from telegram.ext import ConversationHandler, CommandHandler, MessageHandler, filters, CallbackQueryHandler, CallbackContext from telegram.ext import ConversationHandler, CommandHandler, MessageHandler, filters, CallbackQueryHandler, CallbackContext
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update, InputMediaPhoto from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update, InputMediaPhoto
from telegram.constants import ParseMode
# ACTION_CHOICE, DATE_ENTRY, ADD_CONTENT = range(3) # ACTION_CHOICE, DATE_ENTRY, ADD_CONTENT = range(3)
MEMORY_CHOICE = range(1) MEMORY_CHOICE = range(1)
@ -81,7 +82,8 @@ class MemoryHandler(BaseHandler):
await query.edit_message_text( await query.edit_message_text(
f"On {chosen_match.date_pretty}, " f"On {chosen_match.date_pretty}, "
f"{chosen_match.author} wrote: \n" f"{chosen_match.author} wrote: \n"
f"{chosen_match.text}" f"{chosen_match.spoiler_text}",
parse_mode=ParseMode.HTML
) )
return ConversationHandler.END return ConversationHandler.END

View File

@ -1,4 +1,5 @@
from datetime import time, timedelta, timezone, datetime, date from datetime import time, timedelta, timezone, datetime, date
from telegram.constants import ParseMode
import os import os
from peewee import fn from peewee import fn
import logging import logging

View File

@ -1,5 +1,6 @@
from peewee import * from peewee import *
from pathlib import Path from pathlib import Path
import re
import os import os
import datetime import datetime
@ -60,6 +61,14 @@ class JournalEntry(BaseModel):
except ValueError: #fck windows except ValueError: #fck windows
return self.date.strftime('%a, %d. %b %Y') return self.date.strftime('%a, %d. %b %Y')
@property
def spoiler_text(self) -> str:
new_text = self.text.replace("\n", "<br>").replace("<", "&lt;").replace(">", "&gt;").replace("&", "&amp;")
matches = re.findall(r"[A-Z](\s|\w)+\:\)(\w|\s)+\.", new_text)
for match in matches:
new_text = new_text.replace(match, f"<tg-spoiler>{match}</tg-spoiler>")
return new_text
def set_db(db_path): def set_db(db_path):
db.initialize(SqliteDatabase(db_path)) db.initialize(SqliteDatabase(db_path))