ysn-rfd/text-dataset-tiny-code-script-py-format
USED of tahamajs/medicine_ds_persian for .parquet file USED of Alijafarixcs2/persian-it-llama2-2k for .parquet file USED of Abirate/english_quotes for .jsonl file NEW FILES (05/12/2025) NEW FILES (12/26/2025) NEW FILES (02/15/2026)
31.7k
1# fix_data.py
2import json
3import os
4
5BASE_DIR = os.path.dirname(os.path.abspath(__file__))
6DATA_FILE = os.path.join(BASE_DIR, "bot_data.json")
7
8def fix_data_file():
9 """رفع مشکلات فایل دادههای موجود"""
10 if not os.path.exists(DATA_FILE):
11 print(f"فایل داده در {DATA_FILE} یافت نشد.")
12 return
13
14 try:
15 with open(DATA_FILE, 'r', encoding='utf-8') as f:
16 data = json.load(f)
17
18 # رفع مشکل banned_users
19 if 'banned_users' in data and isinstance(data['banned_users'], list):
20 data['banned_users'] = list(set(data['banned_users'])) # حذف duplicates
21
22 # رفع مشکل groups و members
23 if 'groups' in data:
24 for group_id, group_info in data['groups'].items():
25 # رفع مشکل members
26 if 'members' in group_info:
27 if isinstance(group_info['members'], list):
28 # تبدیل list به set و سپس دوباره به list (حذف duplicates)
29 members_set = set(group_info['members'])
30 group_info['members'] = list(members_set)
31 elif isinstance(group_info['members'], set):
32 # اگر set است، به list تبدیل کن
33 group_info['members'] = list(group_info['members'])
34 else:
35 # اگر نه list است نه set، آن را list خالی کن
36 group_info['members'] = []
37
38 # اطمینان از وجود کلیدهای ضروری
39 if 'context' not in group_info:
40 group_info['context'] = []
41 if 'title' not in group_info:
42 group_info['title'] = 'Unknown Group'
43 if 'type' not in group_info:
44 group_info['type'] = 'group'
45
46 # رفع مشکل users
47 if 'users' in data:
48 for user_id, user_info in data['users'].items():
49 if 'context' not in user_info:
50 user_info['context'] = []
51
52 # ذخیره فایل اصلاح شده
53 with open(DATA_FILE, 'w', encoding='utf-8') as f:
54 json.dump(data, f, indent=4, ensure_ascii=False)
55
56 print(f"فایل داده در {DATA_FILE} با موفقیت اصلاح شد.")
57
58 # نمایش آمار
59 print("\n📊 آمار فایل اصلاح شده:")
60 print(f"تعداد کاربران: {len(data.get('users', {}))}")
61 print(f"تعداد گروهها: {len(data.get('groups', {}))}")
62 print(f"کاربران مسدود شده: {len(data.get('banned_users', []))}")
63
64 # بررسی groups
65 groups_with_member_issues = 0
66 for group_id, group_info in data.get('groups', {}).items():
67 if 'members' in group_info and not isinstance(group_info['members'], list):
68 groups_with_member_issues += 1
69
70 if groups_with_member_issues > 0:
71 print(f"⚠️ {groups_with_member_issues} گروه دارای مشکل در members هستند.")
72 else:
73 print("✅ همه groups به درستی اصلاح شدند.")
74
75 except Exception as e:
76 print(f"خطا در اصلاح فایل داده: {e}")
77
78if __name__ == "__main__":
79 fix_data_file()