#!/usr/bin/env python3 """ FreshRSS News Fetcher - Uses Google Reader API """ import json import sys from pathlib import Path import urllib.request import urllib.error CONFIG_FILE = Path.home() / ".config/clawdbot/miniflux-news.json" def get_credentials(): """Load credentials from config""" if not CONFIG_FILE.exists(): print("Error: Config file not found", file=sys.stderr) sys.exit(1) with open(CONFIG_FILE) as f: return json.load(f) def fetch_freshrss(): """Fetch unread items from FreshRSS""" creds = get_credentials() url = creds['url'] password = creds['token'] # FreshRSS Google Reader API endpoints auth_url = f"{url}?Email=admin&Passwd={password}" try: # Authenticate req = urllib.request.Request(auth_url, method='POST') req.add_header('Content-Type', 'application/x-www-form-urlencoded') with urllib.request.urlopen(req, timeout=30) as response: auth_response = response.read().decode('utf-8') print("Auth response:", auth_response[:200], file=sys.stderr) print("FreshRSS connection successful!", file=sys.stderr) # TODO: Parse auth token and fetch actual entries # This needs proper Google Reader API implementation print("Note: Full FreshRSS integration requires Google Reader API implementation") except urllib.error.HTTPError as e: print(f"HTTP Error {e.code}: {e.reason}", file=sys.stderr) print("FreshRSS API access may need different authentication", file=sys.stderr) return [] except Exception as e: print(f"Error: {e}", file=sys.stderr) return [] if __name__ == '__main__': fetch_freshrss()