import os

# مسیر پوشه اصلی
data_folder = '/home/mihanbaz/public_html/bots/data'

# لیست برای ذخیره نام پوشه‌ها و تعداد سکه‌ها
coin_data = []

# خواندن نام کاربران از فایل user.txt
user_file_path = 'data/users.txt'
valid_users = set()

if os.path.exists(user_file_path):
    with open(user_file_path, 'r') as user_file:
        valid_users = {line.strip() for line in user_file if line.strip()}

# پیمایش در پوشه‌ها
for folder_name in os.listdir(data_folder):
    folder_path = os.path.join(data_folder, folder_name)
    
    # بررسی اینکه آیا این یک پوشه است و آیا در لیست کاربران معتبر وجود دارد
    if os.path.isdir(folder_path) and folder_name in valid_users:
        coin_file_path = os.path.join(folder_path, 'coin.txt')
        
        # خواندن تعداد سکه‌ها از فایل
        if os.path.exists(coin_file_path):
            with open(coin_file_path, 'r') as file:
                content = file.read().strip()
                # بررسی اینکه آیا محتوا خالی است یا نه
                if content:
                    try:
                        coins = int(content)
                    except ValueError:
                        coins = 0  # اگر محتوا عدد نباشد، سکه را صفر در نظر بگیریم
                else:
                    coins = 0  # اگر فایل خالی باشد
        else:
            coins = 0  # اگر فایل وجود نداشته باشد
        
        # ذخیره نام پوشه و تعداد سکه‌ها
        coin_data.append((folder_name, coins))

# مرتب‌سازی بر اساس تعداد سکه‌ها (بیشتر به کمتر)
sorted_coin_data = sorted(coin_data, key=lambda x: x[1], reverse=True)

# نوشتن نتایج در یک فایل خروجی
with open('data/Best.txt', 'w') as output_file:
    for folder_name, coins in sorted_coin_data:
        output_file.write(f"{folder_name}\n{coins}\n")
