Dalsi vlna cisteni /remind od Claude

This commit is contained in:
lachtan
2026-06-10 08:48:26 +02:00
parent edf823fc72
commit abdfd8c67d
9 changed files with 237 additions and 184 deletions

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python3
#!/usr/bin/env -S uv run --script
# /// script
# requires-python = ">=3.11"
# dependencies = ["croniter"]
@@ -44,8 +44,7 @@ def _telegram_config() -> tuple[str, str]:
return telegram["token"], chat_id
def _send_telegram(text: str) -> None:
token, chat_id = _telegram_config()
def _send_telegram(text: str, token: str, chat_id: str) -> None:
url = f"https://api.telegram.org/bot{token}/sendMessage"
payload = urllib.parse.urlencode({"chat_id": chat_id, "text": text}).encode()
req = urllib.request.Request(url, data=payload, method="POST")
@@ -53,7 +52,7 @@ def _send_telegram(text: str) -> None:
resp.read()
def _now() -> datetime:
def _now_prague() -> datetime:
return datetime.now(TZ).replace(tzinfo=None)
@@ -170,7 +169,7 @@ def _minutes_to_hhmm(total: int) -> str:
def _record_fire(conn, reminder_id: int, schedule_id: int, schedule_type: str, fire_time: str, status: str, error: str | None = None) -> None:
now = _now().isoformat(timespec="seconds")
now = _now_prague().isoformat(timespec="seconds")
conn.execute(
"""
INSERT INTO reminder_fires (reminder_id, schedule_id, schedule_type, fire_time, delivered_at, status, error_message)
@@ -186,9 +185,12 @@ def main() -> None:
conn = get_db(DB_PATH)
try:
now = _now()
now = _now_prague()
due = _due_at(conn, now) + _due_cron(conn, now) + _due_random(conn, now)
if not due:
return
token, chat_id = _telegram_config()
for fire in due:
text = fire["text"]
rid = fire["id"]
@@ -197,7 +199,7 @@ def main() -> None:
schedule_type = fire["schedule_type"]
try:
_send_telegram(f"⏰ Reminder: {text}")
_send_telegram(f"⏰ Reminder: {text}", token, chat_id)
except Exception as e:
print(f"remind_send: delivery failed for {text!r}: {e}", file=sys.stderr)
_record_fire(conn, rid, sid, schedule_type, ft, "failed", str(e))