# Karabük Kurumsal Haber RSS Sistemi

PHP + MySQL ile çalışan, Karabük kurumlarının haberlerini scrape edip
RSS feed üreten hafif bir sistem.

---

## 📁 Dosya Yapısı

```
karabuk-rss/
├── config.php        ← Ayarlar (DB bilgileri, RSS başlığı)
├── db.php            ← Veritabanı bağlantısı + tablo kurulumu
├── scraper.php       ← Haber çekici (cron ile çalışır)
├── rss.php           ← RSS feed endpoint'i (web'den erişilir)
└── test_source.php   ← Yeni kaynak eklemeden önce test aracı
```

---

## ⚡ Kurulum (5 adım)

### 1. MySQL veritabanı oluştur
```sql
CREATE DATABASE karabuk_rss CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```

### 2. config.php dosyasını düzenle
```php
define('DB_HOST', 'localhost');
define('DB_NAME', 'karabuk_rss');
define('DB_USER', 'kullanici_adin');
define('DB_PASS', 'sifren');
define('RSS_LINK', 'https://siteadresin.com/rss.php');
```

### 3. Dosyaları hosting'e yükle
Tüm dosyaları bir klasöre yükle, örneğin: `public_html/rss/`

### 4. İlk scrap'i çalıştır (SSH ile)
```bash
php scraper.php
```
Tablo otomatik oluşturulur, haberler veritabanına eklenir.

### 5. Cron job kur (cPanel → Cron Jobs)
```
*/30 * * * *   php /home/KULLANICI/public_html/rss/scraper.php
```
Her 30 dakikada bir haberler güncellenir.

---

## 📡 RSS Feed URL'leri

| Feed | URL |
|------|-----|
| Tüm haberler | `https://siteadresin.com/rss.php` |
| Sadece Valilik | `https://siteadresin.com/rss.php?source=valilik` |
| Sadece Belediye | `https://siteadresin.com/rss.php?source=belediye` |
| Sadece GSB | `https://siteadresin.com/rss.php?source=gsb` |

Bu URL'leri Feedly, RSSHub, Inoreader gibi RSS okuyuculara ekleyebilirsin.

---

## ➕ Yeni Kaynak Ekleme

### Adım 1: Test et
```bash
php test_source.php https://www.ornekkurum.gov.tr/haberler
```
Bu araç sayfadan haber başlıklarını çekmeyi dener ve kullanılacak
regex kalıbını önerir.

### Adım 2: scraper.php içindeki $SOURCES dizisine ekle
```php
[
    'id'       => 'yeni_id',
    'name'     => 'Kurum Adı',
    'url'      => 'https://www.ornekkurum.gov.tr/haberler',
    'base_url' => 'https://www.ornekkurum.gov.tr',
    'type'     => 'html',
    'rules'    => [
        'item'  => '/test_source.php çıktısındaki kalıp/',
        'title' => 2,
        'link'  => 1,
    ],
],
```

---

## 🔧 Mevcut Kaynaklar

| ID | Kurum | URL |
|----|-------|-----|
| `valilik` | Karabük Valiliği | karabuk.gov.tr/haberler |
| `belediye` | Karabük Belediyesi | karabuk.bel.tr/haberler.asp |
| `gsb` | Karabük Gençlik ve Spor | karabuk.gsb.gov.tr |

---

## 🗒️ Notlar

- Haber tablosu MySQL'de `news` adıyla oluşturulur, `link` alanı UNIQUE'tir — aynı haber iki kez girilmez.
- Kamu sitelerinin HTML yapısı değişirse `scraper.php` içindeki `rules.item` regex'ini güncelle.
- `test_source.php` sadece CLI'dan çalışır, web'e koyma.
- Hosting SSL gerektiriyorsa `CURLOPT_SSL_VERIFYPEER => true` yap.
