#!/bin/bash # Der Standard RSS helper - fetches via internal fivefilters set -e FIVEFILTERS_URL="https://fivefilters.cloonar.com" FIVEFILTERS_IP="10.42.97.5" RSS_SOURCE="https://www.derstandard.at/rss" # Resolve to internal IP (bypasses web_fetch private IP block) CURL="curl -sk --resolve fivefilters.cloonar.com:443:${FIVEFILTERS_IP}" usage() { cat < [args] Commands: urls [max] Extract article URLs (default: 50) titles [max] Extract article titles items [max] Title + URL pairs (tab-separated) raw [max] Raw RSS XML EOF } fetch_feed() { local max="${1:-50}" local encoded_url=$(printf '%s' "$RSS_SOURCE" | sed 's/:/%3A/g; s/\//%2F/g') $CURL "${FIVEFILTERS_URL}/makefulltextfeed.php?url=${encoded_url}&max=${max}&links=preserve&exc=" } case "${1:-}" in urls) fetch_feed "${2:-50}" | grep -oP '\K[^<]+' | grep "derstandard.at/story" ;; titles) fetch_feed "${2:-50}" | grep -oP '<!\[CDATA\[\K[^\]]+' | tail -n +2 ;; items) feed=$(fetch_feed "${2:-50}") paste <(echo "$feed" | grep -oP '<title><!\[CDATA\[\K[^\]]+' | tail -n +2) \ <(echo "$feed" | grep -oP '<link>\K[^<]+' | grep "derstandard.at/story") 2>/dev/null | head -50 ;; raw) fetch_feed "${2:-50}" ;; *) usage ;; esac