#!/bin/bash

# ==========================================
# BAN-GOO LITE INSTALLER (Universal)
# ==========================================

echo "=========================================="
echo "   BAN-GOO LITE INSTALLER FOR LINUX/PI    "
echo "=========================================="

# 1. เช็คสิทธิ์ Root
if [ "$EUID" -ne 0 ]; then
  echo "❌ กรุณารันด้วยคำสั่ง sudo (เช่น sudo bash install.sh)"
  exit
fi

# 2. ถามรหัสผ่านจากผู้ใช้ก่อนเลย
echo ""
read -p "🔑 กรุณาตั้งรหัสผ่านสำหรับ Ban-Goo (Password): " USER_PASS
if [ -z "$USER_PASS" ]; then
    echo "❌ คุณไม่ได้ใส่รหัสผ่าน ยกเลิกการติดตั้ง"
    exit
fi

# 3. ติดตั้งโปรแกรมพื้นฐาน
echo ""
echo "📦 กำลังติดตั้ง Library ที่จำเป็น..."
apt-get update -qq
apt-get install -y python3 python3-pip -qq
pip3 install requests --break-system-packages > /dev/null 2>&1 || pip3 install requests > /dev/null 2>&1

# 4. สร้างโฟลเดอร์โปรแกรม
INSTALL_DIR="/opt/bangoo-lite"
mkdir -p $INSTALL_DIR
echo "📂 สร้างโฟลเดอร์ที่ $INSTALL_DIR เรียบร้อย"

# 5. เขียนไฟล์โปรแกรม Python (ฝังโค้ดลงไปเลย)
cat << 'EOF' > $INSTALL_DIR/bangoo_lite.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import requests
import sys
import os
import json
import logging

APP_NAME = "Ban-Goo Lite"
CONFIG_FILE = "/opt/bangoo-lite/config.json"
LOGIN_URL = "https://ban-goo.com/login.php"
CHECK_URL = "https://ban-goo.com/dashboard.php"

logging.basicConfig(level=logging.INFO, format='[%(asctime)s] %(levelname)s: %(message)s')

class BanGooLite:
    def __init__(self):
        self.session = requests.Session()
        self.headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}
        self.config = self.load_config()

    def load_config(self):
        try:
            with open(CONFIG_FILE, 'r') as f: return json.load(f)
        except: return {"username": "TestIOTbangoo", "password": "", "interval": 60}

    def login(self):
        user = self.config.get('username')
        pwd = self.config.get('password')
        try:
            res = self.session.post(LOGIN_URL, data={'username': user, 'password': pwd, 'submit': 'Login'}, headers=self.headers, timeout=15)
            if res.status_code == 200 and ("logout" in res.text.lower() or "dashboard" in res.text.lower()):
                logging.info("✅ Login Success")
                return True
            logging.warning("⚠️ Login Failed")
            return False
        except Exception as e:
            logging.error(f"❌ Error: {e}")
            return False

    def run(self):
        logging.info(f"🚀 {APP_NAME} Started...")
        if not self.login(): time.sleep(60)
        
        err_count = 0
        interval = self.config.get('interval', 60)

        while True:
            try:
                res = self.session.get(CHECK_URL, headers=self.headers, timeout=10)
                if res.status_code == 200:
                    logging.info(f"💓 Active | Ping: {res.elapsed.total_seconds():.2f}s")
                    err_count = 0
                else:
                    err_count += 1
                
                if err_count >= 5:
                    logging.warning("🔄 Re-connecting...")
                    if self.login(): err_count = 0
            except:
                err_count += 1
            
            time.sleep(interval)

if __name__ == "__main__":
    BanGooLite().run()
EOF

# 6. สร้างไฟล์ Config
echo "⚙️ บันทึกค่า Config..."
cat << EOF > $INSTALL_DIR/config.json
{
    "username": "TestIOTbangoo",
    "password": "$USER_PASS",
    "interval": 60
}
EOF

# 7. สร้าง Service (Auto Run แบบมืออาชีพ)
echo "🔌 ติดตั้งระบบ Auto Start (Systemd)..."
SERVICE_FILE="/etc/systemd/system/bangoo.service"

cat << EOF > $SERVICE_FILE
[Unit]
Description=Ban-Goo Dashboard Lite Service
After=network.target

[Service]
ExecStart=/usr/bin/python3 $INSTALL_DIR/bangoo_lite.py
WorkingDirectory=$INSTALL_DIR
StandardOutput=inherit
StandardError=inherit
Restart=always
User=root

[Install]
WantedBy=multi-user.target
EOF

# 8. เปิดใช้งาน Service
systemctl daemon-reload
systemctl enable bangoo.service
systemctl restart bangoo.service

echo ""
echo "✅ ========================================"
echo "✅  ติดตั้งเสร็จสมบูรณ์! (Installation Complete)"
echo "✅  โปรแกรมกำลังทำงานอยู่เบื้องหลังแล้ว"
echo "✅ ========================================"
echo "💡 หากต้องการดูสถานะ พิมพ์: sudo systemctl status bangoo"
echo "💡 หากต้องการดู Log พิมพ์: sudo journalctl -u bangoo -f"