Opera8 commited on
Commit
31bfc8f
·
verified ·
1 Parent(s): 59f1ed5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -2
app.py CHANGED
@@ -39,7 +39,7 @@ st.title("🛠️ ابزارهای مدیریت اسپیس هاگینگ‌فیس
39
  tab1, tab2 = st.tabs(["🔄 انتقال به گیت‌هاب", "📦 دانلود اسپیس (فایل ZIP)"])
40
 
41
  # ---------------------------------------------------------
42
- # تب اول: انتقال به گیت‌هاب (پشتیبانی از لینک و فایل زیپ)
43
  # ---------------------------------------------------------
44
  with tab1:
45
  st.info("منبع خود را برای انتقال به گیت‌هاب انتخاب کنید:")
@@ -96,6 +96,20 @@ with tab1:
96
  os.makedirs(temp_dir, exist_ok=True)
97
  with zipfile.ZipFile(uploaded_zip, 'r') as zip_ref:
98
  zip_ref.extractall(temp_dir)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
 
100
  # مرحله 2: عملیات گیت و پوش
101
  os.chdir(temp_dir)
@@ -115,7 +129,7 @@ with tab1:
115
  push_success, push_msg = run_command(f"git push -f {auth_gh_url} main")
116
 
117
  if push_success:
118
- st.success("✅ تمام شد! فایل‌ها با موفقیت به گیت‌هاب منتقل شدند.")
119
  st.balloons()
120
  else:
121
  clean_error = push_msg.replace(gh_token, "***")
 
39
  tab1, tab2 = st.tabs(["🔄 انتقال به گیت‌هاب", "📦 دانلود اسپیس (فایل ZIP)"])
40
 
41
  # ---------------------------------------------------------
42
+ # تب اول: انتقال به گیت‌هاب (پشتیبانی از لینک و فایل زیپ + حل مشکل پوشه اضافه)
43
  # ---------------------------------------------------------
44
  with tab1:
45
  st.info("منبع خود را برای انتقال به گیت‌هاب انتخاب کنید:")
 
96
  os.makedirs(temp_dir, exist_ok=True)
97
  with zipfile.ZipFile(uploaded_zip, 'r') as zip_ref:
98
  zip_ref.extractall(temp_dir)
99
+
100
+ # بررسی و رفع مشکل پوشه اضافه (انتقال محتویات به روت اصلی)
101
+ # پوشه‌های سیستمی مک را نادیده می‌گیریم تا اختلال ایجاد نکنند
102
+ extracted_items = [item for item in os.listdir(temp_dir) if item != '__MACOSX']
103
+
104
+ # اگر فقط یک پوشه در مسیر وجود داشت
105
+ if len(extracted_items) == 1:
106
+ single_folder_path = os.path.join(temp_dir, extracted_items[0])
107
+ if os.path.isdir(single_folder_path):
108
+ # تمام فایل‌های داخل آن پوشه را یک سطح بالاتر (به روت) منتقل می‌کنیم
109
+ for item in os.listdir(single_folder_path):
110
+ shutil.move(os.path.join(single_folder_path, item), temp_dir)
111
+ # پوشه خالی باقیمانده را حذف می‌کنیم
112
+ os.rmdir(single_folder_path)
113
 
114
  # مرحله 2: عملیات گیت و پوش
115
  os.chdir(temp_dir)
 
129
  push_success, push_msg = run_command(f"git push -f {auth_gh_url} main")
130
 
131
  if push_success:
132
+ st.success("✅ تمام شد! فایل‌ها دقیقاً در روت ریپازیتوری منتقل شدند.")
133
  st.balloons()
134
  else:
135
  clean_error = push_msg.replace(gh_token, "***")