55import logging
66
77from python_v2ray .config_parser import parse_uri , XrayConfigBuilder
8- from python_v2ray .core import XrayCore # از کلاس اصلی خودتان استفاده میکنیم
8+ from python_v2ray .core import XrayCore
99
1010logging .basicConfig (level = logging .INFO , format = '%(asctime)s - [%(levelname)s] - %(message)s' )
1111
1212# --- تنظیمات ---
1313PROJECT_ROOT = Path (__file__ ).parent .resolve ()
1414VENDOR_PATH = PROJECT_ROOT / "vendor"
1515INPUT_CONFIGS_PATH = "normal.txt"
16- BAD_CONFIGS_LOG_PATH = "bad_configs.txt"
16+ BAD_CONFIGS_LOG_PATH = "bad_configs.txt" # همچنان فایل را برای اطمینان میسازیم
1717# --- پایان تنظیمات ---
1818
1919def main ():
@@ -35,11 +35,9 @@ def main():
3535
3636 params = parse_uri (uri )
3737 if not params :
38- # اگر پارسر نتواند آن را بخواند، احتمالاً بد است
3938 bad_configs .append (f"UNPARSABLE: { uri } " )
4039 continue
4140
42- # فقط پروتکلهایی که Xray پشتیبانی میکند را تست میکنیم
4341 if params .protocol not in ["vless" , "vmess" , "trojan" , "ss" , "socks" , "mvless" ]:
4442 continue
4543
@@ -57,15 +55,12 @@ def main():
5755 "type" : "field" , "inboundTag" : ["socks-in" ], "outboundTag" : outbound ["tag" ]
5856 })
5957
60- # حالا با این کانفیگ تکی، Xray را اجرا میکنیم
6158 try :
6259 with XrayCore (vendor_path = str (VENDOR_PATH ), config_builder = builder ) as xray :
63- time .sleep (0.5 ) # زمان کوتاه برای اجرا یا کرش کردن
60+ time .sleep (0.5 )
6461 if not xray .is_running ():
65- # اگر Xray اجرا نشد، این کانفیگ خراب است!
6662 logging .warning (f"\n [!!!] Found a bad config at line { i + 1 } . Xray failed to start." )
6763 bad_configs .append (f"XRAY_CRASH: { uri } " )
68- # اگر with بدون خطا تمام شد، یعنی کانفیگ سالم است و Xray متوقف شده
6964 except Exception as e :
7065 logging .error (f"\n [!!!] An unexpected error occurred for URI at line { i + 1 } : { e } " )
7166 bad_configs .append (f"EXCEPTION: { uri } " )
@@ -77,9 +72,18 @@ def main():
7772 print ("[SUCCESS] All parsable configs were validated successfully by Xray!" )
7873 else :
7974 print (f"[FAIL] Found { len (bad_configs )} problematic configs." )
75+
76+ # ذخیره در فایل
8077 with open (BAD_CONFIGS_LOG_PATH , "w" , encoding = "utf-8" ) as f :
8178 f .write ("\n " .join (bad_configs ))
8279 print (f"A list of them has been saved to '{ BAD_CONFIGS_LOG_PATH } '." )
80+
81+ # *** تغییر مهم: چاپ مستقیم در خروجی برای GitHub Actions ***
82+ print ("\n --- PRINTING PROBLEMATIC CONFIGS TO LOG ---" )
83+ for bad_config in bad_configs :
84+ print (bad_config )
85+ print ("--- END OF PROBLEMATIC CONFIGS ---" )
86+
8387 print ("=" * 50 )
8488
8589
0 commit comments