add hyperlinks support
This commit is contained in:
@@ -311,12 +311,32 @@ def text_message(message: types.Message):
|
|||||||
if not db.check_user(message.chat.id):
|
if not db.check_user(message.chat.id):
|
||||||
db.new_user(message)
|
db.new_user(message)
|
||||||
|
|
||||||
message.text = message.text.replace(f"{bot_username}", "").strip()
|
|
||||||
if not message.text:
|
if not message.text:
|
||||||
|
return
|
||||||
|
|
||||||
|
mes_text = message.text
|
||||||
|
mes_entities = message.entities
|
||||||
|
|
||||||
|
if not message.text.replace(f"{bot_username}", "").strip():
|
||||||
if not message.reply_to_message:
|
if not message.reply_to_message:
|
||||||
return
|
return
|
||||||
# message.text = message.reply_to_message.text
|
mes_text = message.reply_to_message.text
|
||||||
message = message.reply_to_message
|
mes_entities = message.reply_to_message.entities
|
||||||
|
|
||||||
|
text = mes_text
|
||||||
|
html_parts = []
|
||||||
|
last_idx = 0
|
||||||
|
for ent in mes_entities:
|
||||||
|
if ent.type == "text_link":
|
||||||
|
html_parts.append(text[last_idx : ent.offset])
|
||||||
|
link_text = text[ent.offset : ent.offset + ent.length]
|
||||||
|
html_parts.append(f'<a href="{ent.url}">{link_text}</a>')
|
||||||
|
last_idx = ent.offset + ent.length
|
||||||
|
|
||||||
|
html_parts.append(text[last_idx:])
|
||||||
|
msg_text = "".join(html_parts)
|
||||||
|
|
||||||
|
msg_text = msg_text.replace(f"{bot_username}", "").strip()
|
||||||
|
|
||||||
date_patterns = [
|
date_patterns = [
|
||||||
r"\b\d{1,2}\s(?:января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря)\b",
|
r"\b\d{1,2}\s(?:января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря)\b",
|
||||||
@@ -365,7 +385,7 @@ def text_message(message: types.Message):
|
|||||||
date_found_dt = None
|
date_found_dt = None
|
||||||
|
|
||||||
for pattern in date_patterns:
|
for pattern in date_patterns:
|
||||||
match = re.search(pattern, message.text, re.IGNORECASE)
|
match = re.search(pattern, msg_text, re.IGNORECASE)
|
||||||
if match:
|
if match:
|
||||||
date_found_dt = translate_date_to_datetime(match.group())
|
date_found_dt = translate_date_to_datetime(match.group())
|
||||||
|
|
||||||
@@ -377,7 +397,7 @@ def text_message(message: types.Message):
|
|||||||
|
|
||||||
db.add_note(
|
db.add_note(
|
||||||
message.chat.id,
|
message.chat.id,
|
||||||
message.text,
|
msg_text,
|
||||||
date_found_dt,
|
date_found_dt,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user