Initial backup 2026-02-17
This commit is contained in:
55
skills/freshrss-connector/freshrss.py
Normal file
55
skills/freshrss-connector/freshrss.py
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/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()
|
||||
Reference in New Issue
Block a user