Clean up: remove dead Telnyx statuses, doula references, personal info, fix README

- Remove legacy Telnyx status strings (delivered, sent, queued, sending)
- Remove duplicate save_log/generate_report calls in main()
- Remove hardcoded personal fax number from GUI placeholder
- Replace "doula coverage claim" with generic "claim" in HTML reports
- Fix README: "7 days" → "3 successful deliveries", remove unnecessary number purchase step

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sochen 2026-03-07 01:08:50 +00:00
parent c66bd57bdc
commit d72a0c13c5
3 changed files with 19 additions and 24 deletions

View file

@ -27,10 +27,9 @@ This produces `dist/AutoFax.exe` -- a single self-contained file you can copy to
## Sinch Account Setup
1. Sign up at [dashboard.sinch.com](https://dashboard.sinch.com/)
2. Go to **Numbers** and purchase a fax-enabled number
3. Go to **Settings > Access Keys** and create a key pair
4. Note your **Project ID** (shown at the top of the dashboard)
5. Configure:
2. Go to **Settings > Access Keys** and create a key pair
3. Note your **Project ID** (shown at the top of the dashboard)
4. Configure:
```bash
cp .env.example .env
@ -60,7 +59,7 @@ This will:
- Create a Python virtual environment
- Install dependencies
- Set up an hourly cron job
- Auto-remove the cron after 7 days
- Stop automatically after 3 successful deliveries
### 3. Manual Test

View file

@ -119,20 +119,20 @@ def generate_report(entries: list[dict]):
config.REPORTS_DIR.mkdir(parents=True, exist_ok=True)
total = len(entries)
success_statuses = {"QUEUED", "IN_PROGRESS", "COMPLETED", "delivered", "sent", "queued", "sending"}
success_statuses = {"QUEUED", "IN_PROGRESS", "COMPLETED"}
failed = sum(1 for e in entries if e["status"] not in success_statuses)
succeeded = sum(1 for e in entries if e["status"] in ("COMPLETED", "delivered"))
succeeded = sum(1 for e in entries if e["status"] == "COMPLETED")
pending = total - failed - succeeded
rows = ""
for i, e in enumerate(entries, 1):
status = e["status"]
if status in ("COMPLETED", "delivered", "sent"):
if status == "COMPLETED":
status_class = "success"
status_display = "DELIVERED" if status == "COMPLETED" else status.upper()
elif status in ("QUEUED", "IN_PROGRESS", "queued", "sending"):
status_display = "DELIVERED"
elif status in ("QUEUED", "IN_PROGRESS"):
status_class = "pending"
status_display = status.upper()
status_display = status
else:
status_class = "failed"
status_display = "FAILED"
@ -181,7 +181,7 @@ def generate_report(entries: list[dict]):
<div class="summary">
<p>This report documents automated fax transmission attempts to the insurance
company for doula coverage claim processing.</p>
company for claim processing.</p>
<p>
Total attempts: <span>{total}</span> |
Delivered: <span class="success">{succeeded}</span> |
@ -210,9 +210,8 @@ def generate_report(entries: list[dict]):
<div class="footer">
<p>Generated by AutoFax automated fax system. Each row represents one
transmission attempt of the doula coverage claim (5 pages). Faxes are sent
once per hour. A status of FAILED indicates the receiving fax machine did
not accept the transmission.</p>
transmission attempt. Faxes are sent once per hour. A status of FAILED
indicates the receiving fax machine did not accept the transmission.</p>
</div>
</body>
</html>"""
@ -224,7 +223,7 @@ def generate_report(entries: list[dict]):
def update_previous_statuses(entries: list[dict]) -> list[dict]:
for entry in entries:
if entry["status"] in ("QUEUED", "IN_PROGRESS", "queued", "sending"):
if entry["status"] in ("QUEUED", "IN_PROGRESS"):
status_data = check_fax_status(entry.get("fax_id"))
if status_data:
new_status = status_data.get("status", entry["status"])
@ -285,7 +284,6 @@ def main():
break
print()
save_log(entries)
report_path = generate_report(entries)
# Notify via ntfy
@ -308,8 +306,6 @@ def main():
print(f"Report: {report_path}")
# Check if this delivery hit the target
save_log(entries)
generate_report(entries)
check_done(entries)
if result["status"] == "send_failed":

10
gui.py
View file

@ -106,7 +106,7 @@ class AutoFaxApp:
self.to_var = tk.StringVar()
self.pdf_var = tk.StringVar()
self._add_field(lf_fax, "To Number:", self.to_var, placeholder="+18019382102")
self._add_field(lf_fax, "To Number:", self.to_var, placeholder="+1XXXXXXXXXX")
pdf_frame = tk.Frame(lf_fax)
pdf_frame.pack(fill="x", pady=2)
@ -208,7 +208,7 @@ class AutoFaxApp:
if not self.key_secret_var.get().strip():
problems.append("Key Secret is required")
to_num = self.to_var.get().strip()
if not to_num or to_num == "+18019382102":
if not to_num or to_num == "+1XXXXXXXXXX":
problems.append("To Number is required")
pdf = self.pdf_var.get().strip()
if not pdf or not Path(pdf).is_file():
@ -447,7 +447,7 @@ tr:nth-child(even){{background:#f9f9f9}}
<h1>Fax Transmission Report</h1>
<div class="summary">
<p>This report documents automated fax transmission attempts to the insurance
company for doula coverage claim processing.</p>
company for claim processing.</p>
<p>Total attempts: <span>{total}</span> |
Delivered: <span class="success">{succeeded}</span> |
Failed: <span class="failed">{failed}</span> |
@ -462,8 +462,8 @@ Pending: <span>{pending}</span></p>
{rows}
</tbody></table>
<div class="footer"><p>Generated by AutoFax. Each row represents one
transmission attempt of the doula coverage claim (5 pages). Faxes are sent
once per hour. FAILED = the receiving fax machine did not accept.</p></div>
transmission attempt. Faxes are sent once per hour.
FAILED = the receiving fax machine did not accept.</p></div>
</body></html>"""
(REPORTS_DIR / "fax_report.html").write_text(html)