# Discord cardiCast webhook This is a simple webhook to push new cardiCast episodes into the cardiCast Discord channel. ## install 1. Create and activate [virtual env](https://docs.python.org/3/library/venv.html) 2. Install requirements: `pip install -r requirements.txt` 3. Set up a cronjob (see below) 4. Test cronjob works 5. Relax ## How it works We run this on the newcardigan wordpress server. 1. With a cron job we call `trigger.sh` 2. The shell script sets env values then calls `webhook.py` 4. The python script checks a custom RSS feed for new podcast episodes 5. If no new episode, end 6. If new episode, 1. save the guid to `latest_post.txt` for the next round of checking 2. use the values from the RSS feed 3. publish via a webhook to Discord ## env values These are all set in `trigger.sh`, not in crontab, to keep things contained. We need to include some secrets via environment values: * the guild/server ID (`DISCORD_GUILD`) * the secret token for the webhook (`DISCORD_TOKEN`) * the ID of the `@cardiCast ping` role (`DISCORD_CARDICAST_PING`) And because we run python in a virtual environment: **venv** - we need to activate the venv using `source ` ## Cron job command ```sh */18 * * * * cd /home/cardigan/rss-discord-bot && ./trigger.sh ``` ## RSS feed The rss feed is `https://newcardigan.org/category/cardiparties/?feed=featured_image_feed`. This special `featured_image_feed` is a slightly modified RSS2 feed. The only thing it does differently is include the featured image in an `enclosure` so that we can pick it up directly from the feed. See the newcardigan WordPress theme for how this works.