Actor paused by the publisher.
- NSQ Watch is paused while permission for the source data is being clarified. Every run now writes one
run-summary row with status paused, contacts no website, reads no input, charges nothing (apart from Apify's own default start event) and ends successfully.
- The pause is a single switch,
PAUSED in src/pause.py. The fetching, matching and billing code is unchanged and returns when the switch is set to False.
- Tests added for the paused behaviour (no network access, no charge, one summary row). Privacy policy and EULA are unchanged.
Compliance changes after the source terms audit.
- README now quotes the CDSCO Copyright Policy and states that the publisher has not asked CDSCO for permission; disclaimer extended (not affiliated with CDSCO, acknowledge the source, not medical advice).
- The shared parsed-alert cache is off by default (
useSharedCache default false).
First release.
- Reads the CDSCO NSQ portal (NSQ drugs from CDSCO and state laboratories, spurious drugs) and the PDF lists of the CDSCO Alerts page, with a shared parsed-alert cache and a direct-read fallback.
- PDF table extraction with three strategies (ruled tables, column positions, plain text), section split for files that hold central and state lists, warnings for count mismatches, changed layouts and unreadable pages, optional OCR for scanned pages.
- Stock matching by batch number (identical, letter/digit confusions, one edit), product name and manufacturer, with a score and reasons; optional product-level warnings.
- Stock input as quick-entry lines or a CSV link (UTF-8, UTF-8 with BOM, Windows-1252; comma, semicolon, tab or pipe separated; header names recognised or mapped).
- Pay-per-event billing:
watch-check, inventory-item-checked, inventory-match, alert-row. Free-plan caps, spending-limit handling, no repeated delivery or charge.
- Outputs: dataset views (stock matches, alert rows, alert documents, run summary),
OUTPUT, REPORT (HTML), QUARANTINE.csv, optional webhook and Slack message.