from flask import Flask, request, jsonify
import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
import re

app = Flask(__name__)

# توليد User-Agent عشوائي
ua = UserAgent()
user_agent = ua.random

# إنشاء جلسة Requests
session = requests.Session()
session.headers.update({'User-Agent': user_agent})

@app.route('/api/series', methods=['GET'])
def fetch_series_data():
    try:
        series_url = request.args.get('series_url')
        if not series_url:
            return jsonify({"success": False, "message": "يرجى تقديم رابط المسلسل في معلمة series_url"}), 400

        response = session.get(series_url)
        if response.status_code != 200:
            return jsonify({"success": False, "message": "فشل في جلب صفحة المسلسل"}), 400

        soup = BeautifulSoup(response.text, 'html.parser')

        episodes_data = []

        # 🔹 **جلب كل الروابط في الصفحة التي تحتوي على حلقات**
        all_links = soup.find_all("a", href=True)

        for link in all_links:
            episode_title_element = link.select_one("episodetitle")
            if not episode_title_element:
                continue  # إذا لم يحتوي على عنوان حلقة، يتم تجاهله

            episode_text = episode_title_element.get_text(strip=True)
            episode_number_match = re.search(r'(\d+)', episode_text)
            if not episode_number_match:
                continue  # إذا لم يحتوي العنوان على رقم حلقة، يتم تجاهله

            episode_number = int(episode_number_match.group(1))
            episode_url = link["href"]

            episodes_data.append({
                "Episoade_Name": f"الحلقة {episode_number}",
                "episoade_order": episode_number,
                "url": episode_url
            })

        # 🔹 **ترتيب الحلقات تصاعديًا**
        episodes_data.sort(key=lambda x: x["episoade_order"])

        return jsonify({
            "success": True,
            "episodes": episodes_data
        }), 200
    except Exception as e:
        return jsonify({"success": False, "message": str(e)}), 500

if __name__ == '__main__':
    app.run(debug=True)
