"""X/Twitter источники — читаются без API-ключей через api.fxtwitter.com. Адаптер: feeds._x_user -> providers.x.profile(handle). Каждый хендл проверен живым прогоном (>=3 записи). Мёртвые (0 записей) не добавлены. """ _X = [ # (handle, category, теги) ("vxunderground", "abuse", ("malware", "leak")), ("malwrhunterteam", "abuse", ("malware", "stealer")), ("DailyDarkWeb", "abuse", ("leak", "ransomware")), ("DarkWebInformer", "abuse", ("leak", "darkweb")), ("abuse_ch", "abuse", ("stealer", "malware")), ("H4ckManac", "abuse", ("leak", "breach")), ("falconfeedsio", "abuse", ("ransomware", "leak")), ("nullcookies", "abuse", ("leak", "fraud")), ("TheHackersNews", "security", ("news", "cve")), ("BleepinComputer", "security", ("news", "cve")), ("campuscodi", "security", ("news", "cve")), ("ShadowServer", "security", ("scan", "cve")), ("RecordedFuture", "security", ("intel", "cve")), ("CISAgov", "security", ("cve", "advisory")), ("msftsecintel", "security", ("cve", "advisory")), ("Unit42_Intel", "security", ("intel", "cve")), ("Mandiant", "security", ("intel", "cve")), ("CrowdStrike", "security", ("intel", "cve")), ("SentinelOne", "security", ("intel", "cve")), ("Kaspersky", "security", ("intel", "cve")), ("elasticlabs", "security", ("intel",)), ("blackorbird", "security", ("apt", "intel")), ("OpenAI", "models", ("model", "release")), ("AnthropicAI", "models", ("model", "release")), ("deepseek_ai", "models", ("model", "release")), ("huggingface", "models", ("model", "dataset")), ("AI_News_", "models", ("news", "model")), ("karpathy", "community", ("ai", "guide")), ("simonw", "community", ("ai", "tool")), ("ylecun", "community", ("ai", "news")), ] X_SOURCES = [ { "name": "x_" + h.lower(), "category": cat, "kind": "tweet", "url": "https://x.com/" + h, "adapter": "x_user", "tags": tags, "limit": 15, "extra": {"handle": h}, } for h, cat, tags in _X ]