import requests
import pandas as pd
import facebook

# روابط API لجلب البيانات
bootstrap_url = "https://fantasy.premierleague.com/api/bootstrap-static/"
fixtures_url = "https://fantasy.premierleague.com/api/fixtures/"
live_url = "https://fantasy.premierleague.com/api/event/{GW}/live/"

# جلب البيانات الأساسية
bootstrap_response = requests.get(bootstrap_url)
bootstrap_data = bootstrap_response.json()

# جلب بيانات المباريات
fixtures_response = requests.get(fixtures_url)
fixtures_data = fixtures_response.json()

# استخراج معلومات الفرق واللاعبين والجولة الحالية
teams_df = pd.DataFrame(bootstrap_data['teams'])
players_df = pd.DataFrame(bootstrap_data['elements'])
events_df = pd.DataFrame(bootstrap_data['events'])

# تحديد الجولة الحالية
current_event = events_df[events_df['is_current'] == True].iloc[0]

if current_event is not None:
    event_id = current_event['id']
    event_name = current_event['name']
    print(f"نتائج الجولة الجارية: {event_name}")

    # جلب بيانات الإحصائيات الخاصة بالجولة الجارية
    event_data_url = f'https://fantasy.premierleague.com/api/event/{event_id}/live/'
    event_response = requests.get(event_data_url)
    event_data = event_response.json()

    # تحضير بيانات اللاعبين في الجولة الجارية
    player_stats = []
    for player_id, player in event_data['elements'].items():
        player_info = players_df[players_df['id'] == int(player_id)].iloc[0]
        stats = player['stats']
        
        player_info_dict = {
            'name': player_info['web_name'],
            'team': teams_df[teams_df['id'] == player_info['team']].iloc[0]['name'],
            'goals': stats['goals_scored'],
            'assists': stats['assists']
        }
        player_stats.append(player_info_dict)

    # تحويل البيانات إلى DataFrame لعرضها
    stats_df = pd.DataFrame(player_stats)

    # تحضير بيانات المباريات
    match_results = []
    for match in fixtures_data:
        if match['event'] == event_id:
            result = {
                'home_team': teams_df.loc[match['team_h']]['name'],
                'away_team': teams_df.loc[match['team_a']]['name'],
                'home_goals': match['team_h_score'],
                'away_goals': match['team_a_score'],
                'kickoff_time': match['kickoff_time'],
                'finished': match['finished']
            }
            match_results.append(result)

    # تحويل بيانات المباريات إلى DataFrame
    results_df = pd.DataFrame(match_results)

    # إنشاء نص الرسالة لنشر النتائج في فيسبوك
    post_text = f"نتائج الجولة الجارية: {event_name}\n"
    if not results_df.empty:
        for index, match in results_df.iterrows():
            post_text += f"{match['home_team']} {match['home_goals']} - {match['away_goals']} {match['away_team']}\n"
            match_players = stats_df[(stats_df['team'] == match['home_team']) | (stats_df['team'] == match['away_team'])]
            for i, player in match_players.iterrows():
                if player['goals'] > 0 or player['assists'] > 0:
                    post_text += f"  - {player['name']} (Goals: {player['goals']}, Assists: {player['assists']})\n"
    else:
        post_text += "لا توجد نتائج متاحة للجولة الجارية.\n"

    # نشر الرسالة في فيسبوك
    access_token = 'YOUR_ACCESS_TOKEN'
    group_id = 'YOUR_GROUP_ID'
    graph = facebook.GraphAPI(access_token)
    graph.put_object(parent_object=group_id, connection_name='feed', message=post_text)
    print("Message posted successfully!")
else:
    print("لا توجد جولة جارية حالياً.")    مامدى صحة الشيفرة وهل ممكن ان فايسبوك يسمح بالنشر في المجموعة