WP Manifestindependent plugin directory
manifest / ai / zonautara-worldcup-bot

Zonautara World Cup News Bot

Plugins Wordpress untuk Memproduksi Berita Piala Dunia Secara Otomatis

by Zonautara.com · github.com/ronnybuol/zonautara-worldcup-bot · website

0stars
0forks

Install

The author publishes release zips, so WP-CLI can install straight from GitHub:

wp plugin install https://github.com/ronnybuol/zonautara-worldcup-bot/releases/download/v1.1.0/zonautara-worldcup-bot-final.zip

Plugin WordPress untuk agregasi, rewrite jurnalistik, dan publikasi otomatis berita Piala Dunia — dari sumber internasional dan Indonesia, dalam Bahasa Indonesia, dengan SEO siap pakai.


Daftar Isi


Tentang Plugin

Zonautara World Cup News Bot adalah plugin WordPress yang bekerja secara otomatis untuk:

  1. Mencari berita Piala Dunia terbaru dari berbagai sumber terpercaya (internasional & Indonesia)
  2. Menganalisis dan merewrite berita sesuai kaidah jurnalistik Indonesia menggunakan AI (GPT-4o-mini)
  3. Menerjemahkan konten berbahasa Inggris ke Bahasa Indonesia secara otomatis
  4. Mempublikasikan artikel lengkap ke WordPress — dengan featured image, SEO meta, tags, dan kategori

Plugin ini dikembangkan oleh tim Zonautara.com, media digital independen di Sulawesi Utara, Indonesia, sebagai alat redaksi untuk liputan Piala Dunia 2026.


Cara Kerja

┌─────────────────────────────────────────────────────────┐
│                    WP-Cron Scheduler                    │
│            (30 menit / 1 jam / 2 jam / dst)             │
└────────────────────────┬────────────────────────────────┘
                         │
          ┌──────────────▼──────────────┐
          │     Fetch dari 4 Sumber     │
          │  Guardian · NewsAPI · GNews │
          │        · FIFA RSS           │
          └──────────────┬──────────────┘
                         │
          ┌──────────────▼──────────────┐
          │   Filter & Deduplikasi      │
          │  • Relevansi piala dunia    │
          │  • Umur berita (max 6 jam)  │
          │  • Cek duplikat (DB)        │
          └──────────────┬──────────────┘
                         │
          ┌──────────────▼──────────────┐
          │     OpenAI GPT-4o-mini      │
          │  • Rewrite jurnalistik      │
          │  • Translate → Bahasa Indo  │
          │  • Generate SEO fields      │
          │  • Byline ZONAUTARA.com     │
          └──────────────┬──────────────┘
                         │
          ┌──────────────▼──────────────┐
          │     Publish ke WordPress    │
          │  • Download featured image  │
          │  • Set Rank Math SEO meta   │
          │  • Set tags & kategori      │
          │  • Footer kredit sumber     │
          └─────────────────────────────┘

Fitur Utama

🤖 AI-Powered Rewriting

  • Menggunakan OpenAI GPT-4o-mini (hemat, cepat, kualitas baik)
  • Menulis ulang sesuai piramida terbalik — fakta terpenting di awal
  • Lead paragraph wajib menjawab 5W1H (Siapa, Apa, Di mana, Kapan, Mengapa, Bagaimana)
  • Panjang artikel mengikuti sumber asli — tidak dipotong paksa
  • Byline ZONAUTARA.com - otomatis di paragraf pertama

🌐 Multi-Sumber & Bilingual

  • Artikel bahasa Inggris dan Spanyol diterjemahkan otomatis ke Bahasa Indonesia
  • Query khusus language=id di NewsAPI dan GNews untuk menjangkau media Indonesia
  • Waktu artikel dikonversi ke WIB (UTC+7) atau disebutkan eksplisit zona waktunya

🖼️ Featured Image Otomatis

  • Mengunduh gambar langsung dari URL sumber berita
  • Jika gagal (gambar diblokir, tidak tersedia), otomatis menggunakan gambar stok dari Media Library secara round-robin (bergantian)
  • ID gambar stok dapat dikonfigurasi langsung di kode

📈 SEO Rank Math Premium

Field yang diisi otomatis setiap artikel:

Meta Key Keterangan
rank_math_title Judul SEO dengan variabel %sep% %sitename%
rank_math_description Meta deskripsi 150–160 karakter
rank_math_focus_keyword 1 keyword utama
rank_math_keywords 4–7 keyword tambahan
rank_math_og_title Judul Open Graph (Facebook/Twitter)
rank_math_og_description Deskripsi Open Graph
rank_math_twitter_title Judul Twitter Card
rank_math_twitter_card_type summary_large_image
rank_math_rich_snippet Schema.org NewsArticle

🔁 Anti-Duplikat

  • Setiap URL dan judul artikel disimpan hash-nya di database
  • Artikel yang sama tidak akan diproses ulang meski muncul di beberapa sumber berbeda
  • Data tracking otomatis dibersihkan setelah 30 hari

⏰ Penjadwalan Fleksibel

Pilihan interval: 30 menit · 1 jam · 2 jam · 3 jam · 6 jam · 12 jam · 24 jam

📋 Log Real-time

Dashboard log dengan color coding:

  • 🟢 [SUCCESS] — artikel berhasil dipublish
  • 🔵 [INFO] — informasi proses
  • 🟡 [WARNING] — peringatan non-kritis
  • 🔴 [ERROR] — error yang perlu ditangani

Sumber Berita

Sumber Bahasa Tipe Gratis Kualitas Konten
The Guardian API Inggris REST API ✅ Unlimited ⭐⭐⭐⭐⭐ Full article
NewsAPI.org Inggris + Indonesia REST API ✅ 100 req/hari ⭐⭐⭐⭐ Multi-sumber
GNews.io Inggris + Indonesia REST API ✅ 100 req/hari ⭐⭐⭐⭐ Multi-sumber
FIFA.com RSS Inggris RSS ✅ Tanpa key ⭐⭐⭐ Press release resmi

Mengapa BBC Sport, ESPN, Goal.com, Sky Sports, Marca dihapus? Semua feed RSS tersebut hanya mengembalikan headline + 1-2 kalimat teaser — konten terlalu pendek untuk direwrite menjadi artikel jurnalistik yang layak. The Guardian dipilih karena API-nya mengembalikan bodyText artikel penuh.

Media Indonesia yang tercakup via NewsAPI & GNews (tidak langsung, lewat agregasi): Kompas.com, Detik.com, Tribunnews, Bola.com, Bola.net, Liputan6, CNN Indonesia, dan lainnya.


Prasyarat

  • WordPress 5.8 atau lebih baru
  • PHP 7.4 atau lebih baru
  • cURL aktif di server (default di hampir semua hosting)
  • OpenAI API key (wajib) — daftar di sini
  • Rank Math SEO atau Rank Math SEO Premium (opsional, untuk field SEO otomatis)
  • Minimal satu API key sumber berita (The Guardian direkomendasikan — gratis)

Instalasi

Cara 1: Upload ZIP (Paling Mudah)

  1. Download file ZIP dari halaman Releases di GitHub ini
  2. Masuk ke WordPress Admin → Plugins → Add New → Upload Plugin
  3. Upload file ZIP → klik Install NowActivate Plugin

Cara 2: Clone via Git (untuk Developer)

cd /path/to/wordpress/wp-content/plugins/
git clone https://github.com/ronnybuol/zonautara-worldcup-bot.git

Kemudian aktifkan plugin via WordPress Admin → Plugins.

Cara 3: Manual Upload via FTP/Hostinger File Manager

  1. Extract ZIP
  2. Upload folder zonautara-worldcup-bot ke /wp-content/plugins/
  3. Aktifkan via WordPress Admin → Plugins

Konfigurasi API Keys

Setelah plugin aktif, masuk ke ⚽ WC News Bot → Pengaturan → API Keys.

1. OpenAI API Key ⚠️ WAJIB

Plugin tidak akan berfungsi tanpa ini.

  1. Buka https://platform.openai.com/api-keys
  2. Klik Create new secret key
  3. Copy key (dimulai dengan sk-...) → paste ke kolom OpenAI API Key

Pastikan akun OpenAI Anda sudah memiliki kredit. GPT-4o-mini sangat hemat — lihat estimasi biaya.

2. The Guardian API Key ✅ Gratis Unlimited — Direkomendasikan

  1. Buka https://open-platform.theguardian.com/access/
  2. Pilih Register for a Developer Key
  3. Isi formulir → key dikirim via email
  4. Paste ke kolom The Guardian API Key

3. NewsAPI.org ✅ Gratis 100 req/hari

  1. Buka https://newsapi.org/register
  2. Daftar dengan email
  3. Key langsung tersedia di dashboard
  4. Paste ke kolom NewsAPI Key

⚠️ Catatan kuota: Plugin menggunakan 4 query per run (2 bahasa Inggris + 2 bahasa Indonesia). Dengan interval 1 jam = 96 request/hari — masih dalam batas gratis. Hindari interval 30 menit jika menggunakan tier gratis.

4. GNews.io ✅ Gratis 100 req/hari

  1. Buka https://gnews.io/register
  2. Daftar → key tersedia di dashboard
  3. Paste ke kolom GNews API Key

Pengaturan Plugin

Jadwal & Batas

Pengaturan Default Keterangan
Status Bot Nonaktif Aktifkan setelah semua API key diisi
Interval 1 jam Pilih sesuai kebutuhan dan kuota API
Maks artikel/run 5 Setiap artikel = 1 request OpenAI
Batas umur berita 6 jam Berita lebih tua dari ini diabaikan

Pengaturan WordPress

Pengaturan Default Keterangan
Status publikasi Publish langsung Bisa diubah ke Draft atau Pending Review
Kategori Default WP Buat kategori "Piala Dunia" dan pilih di sini
Author Administrator Pilih user yang akan menjadi penulis artikel bot
Featured image Aktif Nonaktifkan jika tidak ingin download gambar
Plugin SEO Rank Math Pilih sesuai plugin SEO yang Anda gunakan

Gambar Stok Fallback

Jika ingin mengubah daftar ID gambar fallback, edit file includes/class-post-publisher.php:

private static $fallback_image_ids = [ 219128, 219149, 219127, 218838, 218554, 218149 ];

Ganti dengan ID attachment dari Media Library WordPress Anda.

Reset Pengaturan

Jika ada pengaturan yang perlu dikembalikan ke default (misalnya setelah update dari versi lama):

⚽ WC News Bot → Pengaturan → scroll ke bawah → klik "Reset Pengaturan ke Default"

API key dan kategori/author tidak akan dihapus.


WP-Cron di Shared Hosting

WP-Cron berjalan saat ada pengunjung ke situs. Untuk keandalan lebih di shared hosting (Hostinger, Niagahoster, dll), tambahkan real cron job:

Di cPanel → Cron Jobs:

# Interval 1 jam
0 * * * * curl -s "https://domain-anda.com/wp-cron.php?doing_wp_cron" > /dev/null 2>&1
# Interval 30 menit
*/30 * * * * curl -s "https://domain-anda.com/wp-cron.php?doing_wp_cron" > /dev/null 2>&1

Ganti domain-anda.com dengan domain WordPress Anda.


Estimasi Biaya

Semua sumber berita gratis. Satu-satunya biaya adalah OpenAI GPT-4o-mini:

Interval Artikel/hari Token/bulan (est.) Biaya/bulan (est.)
30 menit (5 artikel/run) 240 ~7,2 juta ~$1,50
1 jam (5 artikel/run) 120 ~3,6 juta ~$0,75
2 jam (5 artikel/run) 60 ~1,8 juta ~$0,38
6 jam (5 artikel/run) 20 ~600 ribu ~$0,13

Harga GPT-4o-mini per Juni 2025: $0,15/1M input token + $0,60/1M output token


Kaidah Jurnalistik

Plugin ini dirancang mengikuti standar jurnalistik Indonesia:

  • Piramida Terbalik — fakta paling penting di paragraf pertama
  • 5W1H — setiap lead menjawab Who, What, Where, When, Why, How
  • Waktu eksplisit — artikel menyebutkan waktu kejadian dengan jelas, termasuk zona waktu
  • Byline media — setiap artikel dibuka dengan ZONAUTARA.com - (dapat disesuaikan di kode)
  • Kredit sumber — footer artikel mencantumkan nama media asli dengan tautan eksternal (nofollow, buka tab baru)
  • Parafrase, bukan plagiat — AI menulis ulang, bukan menyalin langsung

Troubleshooting

Bot tidak menghasilkan artikel

  1. Cek Log Aktivitas untuk detail error
  2. Pastikan OpenAI API key valid dan akun punya kredit
  3. Pastikan minimal satu sumber berita diaktifkan dan API key-nya benar
  4. Cek apakah ada artikel dalam 6 jam terakhir tentang piala dunia di sumber tersebut

Artikel hanya 1 paragraf / konten sangat pendek

  • Kemungkinan sumber hanya mengembalikan teaser
  • Pastikan The Guardian API aktif — ini sumber dengan konten terpanjang
  • Cek log apakah ada warning konten kosong

Featured image tidak muncul

  • Gambar dari sumber mungkin diblokir (hotlink protection)
  • Plugin akan otomatis fallback ke gambar stok CMS
  • Pastikan ID gambar stok di class-post-publisher.php valid di Media Library Anda

Error 429 dari OpenAI

  • Kurangi Maks artikel per run menjadi 2-3
  • Atau perpanjang interval jadwal

Feed lama (BBC, ESPN) masih muncul

Gunakan tombol Reset Pengaturan ke Default di halaman Pengaturan, atau jalankan di phpMyAdmin:

DELETE FROM wp_options WHERE option_name = 'zn_wcbot_rss_sources';

Kemudian nonaktifkan dan aktifkan kembali plugin.

WP-Cron tidak berjalan secara konsisten

Tambahkan real cron job di server — lihat bagian WP-Cron di atas.


Struktur File

zonautara-worldcup-bot/
│
├── zonautara-worldcup-bot.php          # Entry point, activation hook, AJAX handlers
│
├── includes/
│   ├── class-feed-fetcher.php          # Fetch FIFA.com RSS + filter relevansi
│   ├── class-news-api.php              # NewsAPI.org (EN + ID query)
│   ├── class-gnews-api.php             # GNews.io (EN + ID query)
│   ├── class-guardian-api.php          # The Guardian Open API
│   ├── class-openai-processor.php      # Rewrite + translate + generate SEO via GPT-4o-mini
│   ├── class-post-publisher.php        # Buat WP post, set featured image, Rank Math meta
│   ├── class-duplicate-checker.php     # Tracking artikel via DB (hash URL + judul)
│   ├── class-scheduler.php             # WP-Cron engine + run_bot() orchestrator
│   └── class-logger.php                # Activity logger dengan level & auto-rotate
│
├── admin/
│   └── class-admin-page.php            # UI: Dashboard, Pengaturan, Log Aktivitas
│
├── assets/
│   ├── css/admin.css                   # Styling halaman admin
│   └── js/admin.js                     # Handler: run now, reset, log viewer
│
├── .github/
│   └── ISSUE_TEMPLATE/
│       ├── bug_report.md
│       └── feature_request.md
│
├── logs/                               # Log file (diabaikan .gitignore)
├── .gitignore
├── CHANGELOG.md
├── LICENSE
└── README.md

Changelog

Lihat CHANGELOG.md untuk riwayat lengkap perubahan.


Lisensi

Plugin ini dilisensikan di bawah GNU General Public License v2.0 — bebas digunakan, dimodifikasi, dan didistribusikan. Lihat LICENSE untuk detail.


Tentang Pengembang

Plugin ini dikembangkan oleh Ronny Adolof Buol, Pemimpin Redaksi Zonautara.com — media digital independen berbasis di Sulawesi Utara, Indonesia, yang fokus pada jurnalisme investigatif dan data journalism.

Zonautara.com adalah bagian dari ekosistem media independen di kawasan timur Indonesia, dengan liputan mendalam di bidang lingkungan, pemerintahan, dan pembangunan daerah.


Kontribusi

Kontribusi sangat disambut! Silakan:

  1. Fork repositori ini
  2. Buat branch baru (git checkout -b fitur/nama-fitur)
  3. Commit perubahan Anda (git commit -m 'Tambah fitur X')
  4. Push ke branch (git push origin fitur/nama-fitur)
  5. Buat Pull Request

Untuk bug atau ide fitur, gunakan tab Issues di GitHub ini.


Dibuat dengan ☕ dan semangat jurnalisme independen dari Manado, Sulawesi Utara.

Releases

1 release. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v1.1.0 latest
Jun 13, 2026 2mo ago
zonautara-worldcup-bot-final.zip
0