erhnysr-turkish-news
暂无简介
- License 许可
- MIT
- 最近更新
- 2026-11-15
- Stars
- ★ 81
- Forks
- 17
02 资源文件 3
- 许可证LICENSE1.0 KB
- 参考文档SOURCE.md350 B
- 参考文档TRUST.auto.yaml2.2 KB
03 SKILL.md 正文
? Turkish News / Türk Haberleri
Aggregate, filter, and summarize news from Turkey's top media sources. Türkiye'nin önde gelen medya kaynaklarından haberleri topla, filtrele ve özetle.
When To Use / Ne Zaman Kullanılır
- User asks for Turkish news in any form
- User mentions specific Turkish news sources
- User wants news about Turkey, Turkish economy, Turkish politics
- User asks "gündem ne?", "son dakika var mı?", "bugün ne oldu?"
- Part of the daily brief pipeline (called by turkish-daily-brief)
Sources & RSS Feeds / Kaynaklar ve RSS Beslemeleri
Primary Sources / Ana Kaynaklar
1. Hürriyet — Genel Haber
Main: https://www.hurriyet.com.tr/rss/anasayfa
Gündem: https://www.hurriyet.com.tr/rss/gundem
Ekonomi: https://www.hurriyet.com.tr/rss/ekonomi
Dünya: https://www.hurriyet.com.tr/rss/dunya
Teknoloji: https://www.hurriyet.com.tr/rss/teknoloji
Spor: https://www.hurriyet.com.tr/rss/spor
2. Sabah — Genel Haber
Main: https://www.sabah.com.tr/rss/anasayfa.xml
Gündem: https://www.sabah.com.tr/rss/gundem.xml
Ekonomi: https://www.sabah.com.tr/rss/ekonomi.xml
Dünya: https://www.sabah.com.tr/rss/dunya.xml
Teknoloji: https://www.sabah.com.tr/rss/teknoloji.xml
3. Bloomberg HT — Finans & Ekonomi
Main: https://www.bloomberght.com/rss
Piyasa: https://www.bloomberght.com/rss/piyasa
Haberler: https://www.bloomberght.com/rss/haberler
4. CoinTelegraph TR — Kripto Para
Main: https://tr.cointelegraph.com/rss
5. NTV — Genel Haber
Main: https://www.ntv.com.tr/son-dakika.rss
Gündem: https://www.ntv.com.tr/turkiye.rss
Ekonomi: https://www.ntv.com.tr/ekonomi.rss
Dünya: https://www.ntv.com.tr/dunya.rss
Teknoloji: https://www.ntv.com.tr/teknoloji.rss
6. Anadolu Ajansı (AA) — Haber Ajansı
Main: https://www.aa.com.tr/tr/rss/default?cat=guncel
Ekonomi: https://www.aa.com.tr/tr/rss/default?cat=ekonomi
Dünya: https://www.aa.com.tr/tr/rss/default?cat=dunya
Spor: https://www.aa.com.tr/tr/rss/default?cat=spor
Supplementary Sources / Ek Kaynaklar
7. TRT Haber — Kamu Yayıncılığı
Main: https://www.trthaber.com/sondakika.rss
8. Dünya Gazetesi — Ekonomi Odaklı
Main: https://www.dunya.com/rss
Procedures / İşlem Adımları
Procedure 1: Quick News Summary / Hızlı Haber Özeti
Trigger: "Gündem ne?", "Haberleri özetle", "Bugün ne oldu?"
Steps:
- Fetch RSS feeds from top 3 sources (Hürriyet, NTV, Bloomberg HT)
- Parse XML to extract title, link, pubDate, description
- Deduplicate by similarity (same story from multiple sources)
- Sort by recency (newest first)
- Take top 10 unique stories
- Summarize each in 1-2 sentences in Turkish
- Format as numbered list with source attribution
Implementation:
from hermes_tools import web_extract, terminal
import json
# Fetch RSS feeds via curl (faster than web_extract for XML)
sources = {
"Hürriyet": "https://www.hurriyet.com.tr/rss/anasayfa",
"NTV": "https://www.ntv.com.tr/son-dakika.rss",
"Bloomberg HT": "https://www.bloomberght.com/rss",
}
all_items = []
for name, url in sources.items():
result = terminal(f"curl -s -m 10 '{url}' | python3 -c \"\nimport sys, xml.etree.ElementTree as ET\ntry:\n tree = ET.parse(sys.stdin)\n for item in tree.findall('.//item')[:10]:\n title = item.findtext('title', '')\n link = item.findtext('link', '')\n desc = item.findtext('description', '')\n date = item.findtext('pubDate', '')\n print(f'{{\\\"title\\\": \\\"{title}\\\", \\\"link\\\": \\\"{link}\\\", \\\"source\\\": \\\"{name}\\\"}}')\nexcept: pass\n\"")
# Parse results...
# Present to user as formatted Turkish summary
Output Format:
? GÜNÜN MANŞETLERİ — 11 Mart 2026
1. [Başlık] — kaynak
Kısa özet...
2. [Başlık] — kaynak
Kısa özet...
...
? Son güncelleme: 08:30
Procedure 2: Category-Specific News / Kategoriye Özel Haberler
Trigger: "Ekonomi haberleri", "Spor haberleri", "Kripto haberleri", "Dünya haberleri"
Steps:
- Detect category from user input:
- ekonomi/finans → Ekonomi RSS feeds
- spor → Spor RSS feeds
- kripto/bitcoin → CoinTelegraph TR
- dünya/uluslararası → Dünya RSS feeds
- teknoloji → Teknoloji RSS feeds
- Fetch category-specific RSS from 2-3 sources
- Parse, deduplicate, sort by recency
- Take top 8 stories
- Format with category header
Category Mapping:
ekonomi → hurriyet/ekonomi + bloomberght/piyasa + sabah/ekonomi
spor → hurriyet/spor + ntv/spor + aa/spor
kripto → tr.cointelegraph.com/rss
dünya → hurriyet/dunya + ntv/dunya + aa/dunya
teknoloji → hurriyet/teknoloji + ntv/teknoloji + sabah/teknoloji
gündem → hurriyet/gundem + ntv/turkiye + aa/guncel
Procedure 3: Deep Dive on a Story / Haberi Derinlemesine İncele
Trigger: User asks for details on a specific news story
Steps:
- Use web_extract on the article URL
- Extract full article text
- Summarize key points in Turkish
- Provide context if needed (related events, background)
- Offer to find related stories from other sources
Procedure 4: Source-Specific Fetch / Kaynağa Özel Çekme
Trigger: "Bloomberg HT'den haberleri getir", "Hürriyet manşetleri"
Steps:
- Identify the requested source
- Fetch all available RSS categories from that source
- Parse and present with source branding
- Use source-appropriate formatting (e.g., Bloomberg HT gets financial emphasis)
RSS Parsing Helper / RSS Ayrıştırma Yardımcısı
Standard approach for all RSS fetches:
import xml.etree.ElementTree as ET
from datetime import datetime
def parse_rss(xml_content, source_name, max_items=10):
"""Parse RSS XML and return structured items."""
items = []
try:
root = ET.fromstring(xml_content)
for item in root.findall('.//item')[:max_items]:
items.append({
'title': (item.findtext('title') or '').strip(),
'link': (item.findtext('link') or '').strip(),
'description': (item.findtext('description') or '').strip(),
'pub_date': (item.findtext('pubDate') or '').strip(),
'source': source_name,
})
except ET.ParseError:
pass
return items
def deduplicate(items, threshold=0.6):
"""Remove duplicate stories across sources by title similarity."""
seen = []
unique = []
for item in items:
title_words = set(item['title'].lower().split())
is_dupe = False
for seen_words in seen:
overlap = len(title_words & seen_words) / max(len(title_words | seen_words), 1)
if overlap > threshold:
is_dupe = True
break
if not is_dupe:
seen.append(title_words)
unique.append(item)
return unique
Output Templates / Çıktı Şablonları
Compact Format (for Telegram / CLI):
? TÜRKİYE GÜNDEMİ — {tarih}
1. {başlık} [{kaynak}]
2. {başlık} [{kaynak}]
3. {başlık} [{kaynak}]
...
? Detay için numara söyle
Detailed Format (for full response):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
? {KATEGORI} HABERLERİ
{tarih} • {saat}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ {başlık}
{kaynak} • {zaman}
{özet}
? {link}
▸ {başlık}
{kaynak} • {zaman}
{özet}
? {link}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Toplam {n} haber • Son güncelleme: {saat}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Error Handling / Hata Yönetimi
- If RSS feed is unreachable: skip source, note in output, try alternatives
- If all feeds fail: fall back to web_extract on source homepages
- If content is paywalled: extract available preview text, note "tam içerik ücretli"
- Rate limiting: wait 1s between requests, max 3 concurrent fetches
- Timeout: 10s per RSS feed, 15s per web_extract
Pitfalls / Dikkat Edilecekler
- Encoding: Turkish chars (ç, ğ, ı, İ, ö, ş, ü) must be preserved — always use UTF-8
- RSS availability: Some sources may change/break RSS URLs — fall back to web scraping
- Deduplication: Turkish news outlets often run same AA wire stories — always deduplicate
- Time zones: All Turkish sources use UTC+3 (Europe/Istanbul) — normalize timestamps
- Content length: RSS descriptions may be truncated — use web_extract for full articles
- Political sensitivity: Present news factually without editorial commentary
04 同仓库更多 Skills
recipe-performance
Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold/warm/background-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout/paint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.
mexc-spot-websocket
MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.
mexc-spot-rest
MEXC Spot REST workflows for public data, signed account requests, orders, wallet/admin actions, and secure signing without exposing API keys.
mexc-futures-websocket
MEXC Futures WebSocket workflows for public streams, private account/order/position streams, ping/pong, subscriptions, and depth maintenance.
0xklen-version-and-refresh-sanctions-lists
暂无简介
verify-tests-cover-changed-lines
Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.