NAWALA PREMIUM 5 ISP - FINAL MASTER PROMPT

TUJUAN

Membuat bot Telegram monitoring domain yang stabil, hemat trafik, dan dapat berjalan 24/7 tanpa konflik antar fitur.

PRINSIP UTAMA

1. Report harus selalu lebih penting daripada optimasi.
2. Jika domain BLOCKED, customer wajib menerima report.
3. Tidak boleh ada kondisi yang membuat domain BLOCKED tidak pernah dilaporkan.
4. Semua fitur tambahan tidak boleh mengganggu flow report.

========================================
FLOW MONITORING
===============

Scheduler berjalan setiap 10 menit.

Urutan:

1. Ambil seluruh target dari domains.txt
2. Cek target satu per satu
3. Simpan hasil
4. Kirim report jika diperlukan
5. Simpan cache

========================================
FLOW ADD DOMAIN
===============

Command:

/add domain.com

atau

/add domain.com/menu

Saat target ditambahkan:

1. Simpan ke domains.txt
2. Langsung lakukan 1x pengecekan
3. Jika NORMAL:
   simpan status NORMAL
4. Jika BLOCKED:
   kirim BLOCKED ALERT
   simpan status BLOCKED
   aktifkan reminder

Customer tidak perlu menunggu scheduler.

========================================
FLOW CHECK MANUAL
=================

/check

Cek seluruh target.

/check domain.com/menu

Cek target tersebut saja.

Manual check selalu menggunakan pengecekan real.

Manual check tidak mengubah status BLOCKED LOCK.

========================================
FLOW STATUS
===========

Status hanya:

NORMAL
BLOCKED
WARNING
UNAVAILABLE

Tidak ada:

NORMAL STREAK
3x NORMAL
RECOVERY COUNTER
LOCK COUNTER

========================================
FLOW BLOCKED
============

Saat hasil BLOCKED:

1. Kirim BLOCKED ALERT
2. Simpan snapshot BLOCKED
3. Aktifkan reminder

Format:

🚨 BLOCKED ALERT

URL:
https://domain.com/menu

Status:
BLOCKED

ISP:
Telkomsel
XL
Indosat

========================================
FLOW REMINDER
=============

Jika target berstatus BLOCKED:

Reminder dikirim setiap:

60 menit

Isi reminder:

⏰ BLOCKED REMINDER

URL:
https://domain.com/menu

Status:
BLOCKED

Tidak perlu cek ulang.

Tidak perlu menggunakan proxy.

Reminder hanya membaca snapshot.

========================================
FLOW BERHENTI REMINDER
======================

Reminder berhenti hanya jika:

/del domain.com

atau

/del domain.com/menu

Saat target dihapus:

1. Hapus dari domains.txt
2. Hapus cache
3. Hapus snapshot
4. Hapus reminder

========================================
FLOW AUTO MONITOR
=================

Target NORMAL:

dicek setiap 10 menit

Target BLOCKED:

tidak dicek lagi

hanya reminder

========================================
FLOW URL PATH
=============

Target berikut dianggap berbeda:

domain.com

domain.com/menu

domain.com/login

domain.com/register

Masing-masing memiliki status sendiri.

========================================
FLOW REPORT
===========

Semua report dikirim ke:

telegram.chat_id

Jika report gagal:

catat ke error.log

Jangan pernah diam tanpa log.

========================================
FLOW DEBUG
==========

Saat startup:

kirim:

✅ Nawala Monitor Aktif

Saat scheduler berjalan:

catat:

[MONITOR_START]

Saat selesai:

catat:

[MONITOR_DONE]

Saat report terkirim:

catat:

[REPORT_SENT]

Saat report gagal:

catat:

[REPORT_FAILED]

========================================
FLOW TINYURL
============

TinyURL tidak boleh mempengaruhi monitoring.

Monitoring tetap berjalan walaupun TinyURL error.

TinyURL error hanya dicatat ke log.

========================================
FLOW TINYURL AMBIL DARI DOMAIN NORMAL
========================================

TinyURL harus mengambil target dari daftar domain/URL yang tersimpan di domains.txt.

Sumber kandidat:

domains.txt

Syarat kandidat:

1. Target harus berstatus NORMAL.
2. Target tidak boleh berstatus BLOCKED.
3. Target tidak boleh sedang dalam BLOCKED LOCK.
4. Target boleh berupa root domain atau URL path.

Contoh kandidat valid:

domain-a.com
domain-b.com/menu
domain-c.com/login

Saat domain utama BLOCKED:

1. Bot cek status list domain.
2. Bot cari target pertama yang statusnya NORMAL.
3. TinyURL diarahkan ke target NORMAL tersebut.
4. Jika tidak ada target NORMAL, TinyURL tidak diubah.
5. Bot tetap kirim report BLOCKED.

Contoh:

List domain:

domain-a.com = BLOCKED
domain-b.com = NORMAL
domain-c.com/menu = NORMAL

TinyURL sebelumnya:

https://tinyurl.com/aliasku
→ https://domain-a.com

Jika domain-a.com BLOCKED:

TinyURL otomatis diarahkan ke:

https://domain-b.com

Jika domain-b.com juga BLOCKED, gunakan:

https://domain-c.com/menu

========================================
FLOW TINYURL TIDAK BOLEH MENGGANGGU REPORT
========================================

TinyURL hanya fitur tambahan.

Jika update TinyURL gagal:

1. Report BLOCKED tetap dikirim.
2. Reminder tetap aktif.
3. Monitoring tetap berjalan.
4. Error TinyURL dicatat ke error.log.

Jangan sampai error TinyURL membuat report Telegram gagal.

========================================
FLOW PILIH TARGET NORMAL
========================================

Urutan pilihan target NORMAL:

1. Target dengan status cache NORMAL terbaru.
2. Jika belum ada cache, lakukan cek real 1x.
3. Jika hasil NORMAL, boleh dipakai.
4. Jika BLOCKED, jangan dipakai.
5. Jika WARNING / UNAVAILABLE, jangan dipakai kecuali tidak ada pilihan lain dan config mengizinkan.

Default:

WARNING dan UNAVAILABLE tidak boleh menjadi target TinyURL.

========================================
FLOW URL PATH UNTUK TINYURL
========================================

Jika target NORMAL memiliki path:

domain-b.com/menu

maka TinyURL harus diarahkan ke:

https://domain-b.com/menu

Bukan hanya:

https://domain-b.com

========================================
FLOW CACHE STATUS UNTUK TINYURL
========================================

Status tiap target disimpan di status_cache.json.

Contoh:

{
  "domain-a.com": {
    "status": "BLOCKED",
    "locked_status": "BLOCKED"
  },
  "domain-b.com": {
    "status": "NORMAL",
    "last_normal_at": "2026-06-15 10:00:00"
  },
  "domain-c.com/menu": {
    "status": "NORMAL",
    "last_normal_at": "2026-06-15 10:02:00"
  }
}

TinyURL hanya boleh memilih target dengan:

status = NORMAL

dan

locked_status != BLOCKED

========================================
TARGET AKHIR
============

1. Domain BLOCKED selalu menghasilkan report.
2. Reminder selalu berjalan.
3. Reminder berhenti saat /del.
4. Tidak ada flow 3x NORMAL.
5. Tidak ada recovery otomatis.
6. Tidak ada status yang hilang.
7. Monitoring tetap hemat SOAX.
8. TinyURL tidak dapat mematikan report.
9. URL path didukung penuh.
10. Stabil untuk VPS Ubuntu 24.04 dan Windows.
