Adds max_posts INTEGER to campaign_subs (NULL = unlimited/evergreen). Adds successful_post_count() query counting lifetime success records. poster.py checks max_posts before the 7-day rolling dupe guard. Root cause: campaign 2 fired 8 days after the last post (just outside the 7-day window), allowing a duplicate r/opensource pitch. Fix: set max_posts=1 on intro campaigns so the lifetime cap fires regardless of window. |
||
|---|---|---|
| .. | ||
| lemmy | ||
| platforms | ||
| __init__.py | ||
| directus.py | ||
| poster.py | ||
| scheduler.py | ||
| scraper.py | ||