{ "_schema": "crawl_config_v2", "skill_name": "satire_news_scraper", "version": "2.0.0", "description": "全球讽刺新闻网站抓取与短剧素材提取配置", "created_at": "2026-03-26", "author": "Hunter Agent", "sources": [ { "id": "the_onion", "name": "The Onion", "url": "https://www.theonion.com", "rss": "https://www.theonion.com/rss.xml", "type": "satire_news", "style": "absurdist_realism", "region": "USA", "priority": 1, "reliability": 5, "drama_potential": 4, "categories": ["politics", "local", "entertainment", "sports", "tech"], "update_frequency": "hourly", "enabled": true }, { "id": "clickhole", "name": "ClickHole", "url": "https://www.clickhole.com", "rss": "https://clickhole.com/rss.xml", "type": "clickbait_satire", "style": "viral_mockery", "region": "USA", "priority": 1, "reliability": 5, "drama_potential": 5, "categories": ["listicles", "quizzes", "viral", "interactive"], "update_frequency": "daily", "enabled": true }, { "id": "babylon_bee", "name": "The Babylon Bee", "url": "https://babylonbee.com", "rss": "https://babylonbee.com/feed", "type": "political_satire", "style": "conservative_perspective", "region": "USA", "priority": 2, "reliability": 4, "drama_potential": 3, "categories": ["politics", "culture", "religion", "entertainment"], "update_frequency": "hourly", "enabled": true }, { "id": "hard_times", "name": "The Hard Times", "url": "https://thehardtimes.net", "rss": "https://thehardtimes.net/feed/", "type": "subculture_satire", "style": "punk_insider", "region": "USA", "priority": 2, "reliability": 4, "drama_potential": 4, "categories": ["music", "culture", "lifestyle"], "update_frequency": "daily", "enabled": true }, { "id": "reductress", "name": "Reductress", "url": "https://reductress.com", "rss": "https://reductress.com/feed/", "type": "feminist_satire", "style": "womens_magazine_parody", "region": "USA", "priority": 2, "reliability": 4, "drama_potential": 4, "categories": ["dating", "fashion", "career", "lifestyle"], "update_frequency": "daily", "enabled": true }, { "id": "mcsweeneys", "name": "McSweeney's Internet Tendency", "url": "https://www.mcsweeneys.net", "rss": "https://www.mcsweeneys.net/rss.xml", "type": "literary_humor", "style": "intelligent_absurdist", "region": "USA", "priority": 1, "reliability": 5, "drama_potential": 5, "categories": ["lists", "open_letters", "humor", "politics"], "update_frequency": "daily", "enabled": true }, { "id": "beaverton", "name": "The Beaverton", "url": "https://www.thebeaverton.com", "rss": "https://www.thebeaverton.com/feed/", "type": "satire_news", "style": "canadian_perspective", "region": "Canada", "priority": 3, "reliability": 3, "drama_potential": 3, "categories": ["politics", "world", "sports", "entertainment"], "update_frequency": "daily", "enabled": true }, { "id": "daily_mash", "name": "The Daily Mash", "url": "https://thedailymash.co.uk", "rss": "https://thedailymash.co.uk/feed/", "type": "satire_news", "style": "british_humor", "region": "UK", "priority": 3, "reliability": 3, "drama_potential": 3, "categories": ["politics", "news", "lifestyle"], "update_frequency": "daily", "enabled": true } ], "crawl": { "mode": "rss_primary", "fallback_mode": "web_scrape", "schedule": "0 */6 * * *", "batch_size": 20, "max_articles_per_source": 50, "rate_limit": { "requests_per_minute": 10, "delay_seconds": 6, "respect_robots_txt": true }, "user_agent": "SatireNewsBot/1.0 (+https://example.com/bot; research purpose)" }, "rss_parsing": { "fields": [ "title", "description", "link", "pubDate", "category", "content:encoded", "dc:creator", "guid" ], "content_cleaning": { "remove_html": true, "max_length": 3000, "preserve_paragraphs": true, "encoding": "utf-8" } }, "absurdity_detection": { "keywords": { "hyperbole": ["million", "billion", "infinity", "100%", "everyone", "nobody", "all", "none"], "absurd_actions": ["declares", "announces", "elects", "appoints", "files", "reveals", "confirms"], "impossible_subjects": ["dog", "cat", "baby", "local man", "area woman", "study", "report"], "satire_markers": ["breaking", "exclusive", "just", "finally", "officials"] }, "title_patterns": [ "^[A-Z][a-z]+ (Man|Woman|Dog|Cat|Baby)", "^(Area|Local) (Man|Woman)", "^(Study|Report|Survey) (Finds|Shows|Reveals|Confirms)", "^Breaking:", "^Exclusive:", "^[0-9]+ (Ways|Things|Reasons|Signs)" ], "scoring": { "absurdity_threshold": 0.6, "drama_potential_threshold": 0.5 } }, "dramatic_analysis": { "character_archetypes": [ "local_man", "area_woman", "officials", "experts", "scientists", "parents", "teachers", "bosses", "neighbors", "strangers" ], "scene_settings": [ "home", "office", "school", "store", "restaurant", "public_transport", "government_building", "outdoor" ], "emotional_arcs": [ "setup_escalation_punchline", "misunderstanding_resolution", "expectation_subversion", "ironic_contrast" ] }, "output_schema": { "version": "2.0", "fields": { "id": {"type": "string", "required": true}, "source": {"type": "string", "required": true}, "source_id": {"type": "string", "required": true}, "headline": {"type": "string", "required": true, "max_length": 300}, "content": {"type": "string", "required": false}, "content_summary": {"type": "string", "required": true, "max_length": 500}, "url": {"type": "string", "format": "uri", "required": true}, "category": {"type": "array", "items": "string"}, "satire_type": {"type": "array", "items": "string", "enum": ["deadpan", "absurdist", "ironic", "exaggeration", "parody", "satire"]}, "absurd_elements": {"type": "array", "items": "string"}, "absurdity_score": {"type": "number", "min": 0, "max": 1}, "dramatic_potential": { "type": "object", "properties": { "scene_setting": {"type": "string"}, "character_archetypes": {"type": "array", "items": "string"}, "conflict_core": {"type": "string"}, "dialogue_snippets": {"type": "array", "items": "string"}, "emotional_arc": {"type": "string"}, "adaptation_difficulty": {"type": "string", "enum": ["easy", "medium", "hard"]} } }, "published_at": {"type": "string", "format": "date-time"}, "extracted_at": {"type": "string", "format": "date-time", "auto": true}, "author": {"type": "string"} } }, "storage": { "raw_data_format": "json", "processed_data_format": "json", "compression": "gzip", "retention_days": 365, "backup_schedule": "weekly" }, "monitoring": { "metrics": ["fetch_success_rate", "parse_success_rate", "articles_per_day", "avg_processing_time"], "alerting": { "enabled": true, "conditions": [ {"metric": "fetch_success_rate", "operator": "<", "threshold": 0.8}, {"metric": "parse_success_rate", "operator": "<", "threshold": 0.9} ] } } }