codeBOKER commited on
Commit
faa354d
·
1 Parent(s): 454fa51

Update gitignore and telegram handlers, add pending transfers data

Browse files

- Enhanced .gitignore for better file exclusion
- Updated telegram_handlers.py with improvements
- Added pending_transfers.json data file

.gitignore CHANGED
@@ -5,3 +5,4 @@ __pycache__/
5
  venv/
6
  .python-version
7
  .DS_Store
 
 
5
  venv/
6
  .python-version
7
  .DS_Store
8
+ rest.http
telegram_handlers.py CHANGED
@@ -1,5 +1,7 @@
1
  import httpx
2
  import json
 
 
3
  from config import TELEGRAM_URL
4
  from ai_service import get_ai_response
5
  from database import db_manager
@@ -24,6 +26,17 @@ def _sanitize_telegram_text(text: str) -> str:
24
  return cleaned.strip()
25
 
26
 
 
 
 
 
 
 
 
 
 
 
 
27
  async def telegram_webhook(data: WebhookData):
28
  try:
29
  if not data.message or not data.message.text:
@@ -54,10 +67,14 @@ async def telegram_webhook(data: WebhookData):
54
  if not prepared_text:
55
  prepared_text = "Sorry, I couldn't generate a response. Please try again."
56
 
57
- final_text = prepared_text[:MAX_TELEGRAM_MESSAGE_LENGTH]
 
 
 
58
  payload = {
59
  "chat_id": telegram_id,
60
  "text": final_text if final_text.strip() else ".",
 
61
  }
62
 
63
 
 
1
  import httpx
2
  import json
3
+ import html
4
+ import re
5
  from config import TELEGRAM_URL
6
  from ai_service import get_ai_response
7
  from database import db_manager
 
26
  return cleaned.strip()
27
 
28
 
29
+ def _format_telegram_message(text: str) -> str:
30
+ """Convert **bold** to <b>bold</b> for HTML parse mode."""
31
+ if not text:
32
+ return text
33
+ # First escape HTML to prevent injection
34
+ escaped = html.escape(text, quote=False)
35
+ # Replace **text** with <b>text</b> (non-greedy)
36
+ formatted = re.sub(r'\*\*(.*?)\*\*', r'<b>\1</b>', escaped)
37
+ return formatted
38
+
39
+
40
  async def telegram_webhook(data: WebhookData):
41
  try:
42
  if not data.message or not data.message.text:
 
67
  if not prepared_text:
68
  prepared_text = "Sorry, I couldn't generate a response. Please try again."
69
 
70
+ # Format for HTML parse mode
71
+ formatted_text = _format_telegram_message(prepared_text)
72
+
73
+ final_text = formatted_text[:MAX_TELEGRAM_MESSAGE_LENGTH]
74
  payload = {
75
  "chat_id": telegram_id,
76
  "text": final_text if final_text.strip() else ".",
77
+ "parse_mode": "HTML",
78
  }
79
 
80
 
transfers/pending_transfers.json CHANGED
@@ -1 +1,13 @@
1
- {}
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "12": {
3
+ "telegram_id": 12,
4
+ "sender_name": "Test Sender",
5
+ "sender_serial_id": "1001",
6
+ "receiver_name": "Ahmed Salem",
7
+ "receiver_serial_id": "2001",
8
+ "receiver_account_id": "ACC-991001",
9
+ "amount": 200,
10
+ "currency": "YER",
11
+ "created_at": "2026-04-11T05:28:56.362317"
12
+ }
13
+ }