- telegram.py: emoticons on all existing notif (🚀✅⚠️🔴💰🔍) + new notify_warn for expiring voters - db.py: voter_notify table (owner/urgency/notified_at) for state-change dedup - get_voters.py: _notify_warn() after persist() — urgency escalation ⚠️/🔴/🚨 by days remaining - Dockerfile.scan: add telegram.py to COPY - test_get_voters.py: 15 new V66 assertions (schema, record, cleanup, integration, escalation) - test_distribute.py: updated notification format assertions - SPEC.md: V66 + B26
16 lines
440 B
Docker
16 lines
440 B
Docker
FROM python:3.12-slim
|
|
ENV PYTHONUNBUFFERED=1 PIP_NO_CACHE_DIR=1
|
|
|
|
# tzdata → TZ env (jadwal skan lokal, default Asia/Jakarta) bekerja di container
|
|
RUN apt-get update && apt-get install -y --no-install-recommends tzdata \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
COPY config.py db.py get_voters.py scan_loop.py telegram.py ./
|
|
|
|
CMD ["python", "scan_loop.py"]
|