Dalsi vlna cisteni /remind od Claude
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user