crawl_config.json 7.7 KB
{
  "_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}
      ]
    }
  }
}