This application scrapes the "Just In" section of ABC News and generates an RSS feed.
- Go (if building from source)
- Apache or Nginx (for serving RSS files)
Grab the latest binary here, deb, rpm, etc: https://github.com/arran4/abc-justin-rss/releases/
Install go 1.23+
Run go install
:
go install github.com/arran4/abc-justin-rss/cmd/abcjustinrss@latest
This installs to $HOME/go/bin
(typically check with go env
)
abcjustinrss -output /var/www/localhost/htdocs/rss/abcjustinrss.xml
Add a cron job to run the script periodically:
- Edit the root crontab:
sudo crontab -e
- Add the following line:
*/15 * * * * /usr/local/bin/abcjustinrss -output /var/www/localhost/htdocs/rss/abcjustinrss.xml
Add a cron job to run the script periodically:
- Edit the user's crontab:
crontab -e
- Add the following line:
*/15 * * * * ~/go/bin/abcjustinrss -output ~/public_html/rss/abcjustinrss.xml
Remember to modify ~
with the correct value and go/bin
too if you're using a custom go env location
- Create a systemd service file at
/etc/systemd/system/abcjustinrss.service
:
[Unit]
Description=ABC News Just-in RSS Feed Creator
[Service]
Type=oneshot
ExecStart=/usr/bin/abcjustinrss -output /var/www/localhost/htdocs/rss/abcjustinrss.xml
User=apache
Group=apache
- Create a systemd timer file at
/etc/systemd/system/everyhour@.timer
:
[Unit]
Description=Monthly Timer for %i service
[Timer]
OnCalendar=*-*-* *:00:00
AccuracySec=1h
RandomizedDelaySec=1h
Persistent=true
Unit=%i.service
[Install]
WantedBy=default.target
- Reload systemd and start the service:
sudo systemctl daemon-reload sudo systemctl enable --now everyhour@abcjustinrss.timer
- Create a systemd service file at
$HOME/.config/systemd/user/abcjustinrss.service
:
[Unit]
Description=ABC News Just-in RSS Feed Creator
[Service]
Type=oneshot
ExecStart=%h/go/bin/abcjustinrss -output %h/public_html/rss/abcjustinrss.xml
Remember to modify $HOME with the correct value and go/bin
too if you're using a custom go env location
- Create a systemd timer file at
$HOME/.config/systemd/user/everyhour@.timer
:
[Unit]
Description=Monthly Timer for %i service
[Timer]
OnCalendar=*-*-* *:00:00
AccuracySec=1h
RandomizedDelaySec=1h
Persistent=true
Unit=%i.service
[Install]
WantedBy=default.target
- Reload systemd and start the service:
systemctl --user daemon-reload && systemctl --user enable --now everyhour@abcjustinrss.timer
Refer to documentation for setting up public_html directories
http://localhost/~$USERNAME/rss/abcjustinrss.xml
Add the following configuration to your Apache setup (e.g., /etc/httpd/conf.d/rss.conf
):
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/localhost/htdocs/rss
<Directory "/var/www/localhost/htdocs/rss">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
Refer to documentation for setting up public_html directories
Add this to your Nginx server block:
server {
listen 80;
server_name example.com;
location /rss/ {
root /var/www/localhost/htdocs;
autoindex on;
}
}