Opera8 commited on
Commit
7480f43
·
verified ·
1 Parent(s): 1280081

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -4
app.py CHANGED
@@ -35,7 +35,7 @@ st.set_page_config(page_title="Hugging Face Space Tools", page_icon="🛠️")
35
 
36
  st.title("🛠️ ابزارهای مدیریت اسپیس هاگینگ‌فیس")
37
 
38
- # ایجاد سه تب (اضافه شدن تب انتقال به هاگینگ‌فیس)
39
  tab1, tab2, tab3 = st.tabs([
40
  "🔄 انتقال به گیت‌هاب",
41
  "📤 انتقال به هاگینگ‌فیس",
@@ -95,6 +95,9 @@ with tab1:
95
  if not success:
96
  st.error(f"خطا در دانلود: {msg}")
97
  st.stop()
 
 
 
98
  else:
99
  status_area.info("📥 در حال استخراج فایل ZIP...")
100
  os.makedirs(temp_dir, exist_ok=True)
@@ -104,7 +107,6 @@ with tab1:
104
  # بررسی و رفع مشکل پوشه اضافه (انتقال محتویات به روت اصلی)
105
  extracted_items = [item for item in os.listdir(temp_dir) if item != '__MACOSX']
106
 
107
- # اگر فقط یک پوشه در مسیر وجود داشت
108
  if len(extracted_items) == 1:
109
  single_folder_path = os.path.join(temp_dir, extracted_items[0])
110
  if os.path.isdir(single_folder_path):
@@ -120,6 +122,7 @@ with tab1:
120
  shutil.rmtree(".git", ignore_errors=True)
121
 
122
  run_command("git init")
 
123
  run_command("git add .")
124
  run_command('git config user.email "bot@transfer.com"')
125
  run_command('git config user.name "Transfer Bot"')
@@ -193,7 +196,6 @@ with tab2:
193
  shutil.rmtree(temp_dir_hf, ignore_errors=True)
194
 
195
  try:
196
- # فرمت مناسب لینک برای احراز هویت توکن هاگینگ‌فیس
197
  auth_hf_url = hf_target_url.replace("https://", f"https://__token__:{hf_token}@")
198
 
199
  # مرحله 1: آماده‌سازی فایل‌ها (دانلود یا استخراج زیپ)
@@ -203,6 +205,9 @@ with tab2:
203
  if not success:
204
  st.error(f"خطا در کلون کردن ریپازیتوری منبع: {msg}")
205
  st.stop()
 
 
 
206
  else:
207
  status_area_hf.info("📥 در حال استخراج فایل ZIP...")
208
  os.makedirs(temp_dir_hf, exist_ok=True)
@@ -226,6 +231,7 @@ with tab2:
226
  shutil.rmtree(".git", ignore_errors=True)
227
 
228
  run_command("git init")
 
229
  run_command("git add .")
230
  run_command('git config user.email "bot@transfer.com"')
231
  run_command('git config user.name "Transfer Bot"')
@@ -239,7 +245,6 @@ with tab2:
239
  st.success("✅ انتقال موفقیت‌آمیز بود! فرآیند بیلد (Build) اسپیس شما در هاگینگ‌فیس آغاز شد.")
240
  st.balloons()
241
  else:
242
- # مخفی‌سازی توکن جهت مسائل امنیتی در لاگ خطا
243
  clean_error = push_msg.replace(hf_token, "***")
244
  st.error(f"خطا در آپلود به هاگینگ‌فیس: {clean_error}")
245
 
@@ -288,6 +293,9 @@ with tab3:
288
  if not success:
289
  st.error(f"خطا در دریافت فایل‌ها: {msg}")
290
  else:
 
 
 
291
  status_zip.info("⚙️ در حال فشرده‌سازی فایل‌ها...")
292
  flatten_files = True if zip_mode == "همه فایل‌ها در روت (حذف پوشه‌بندی و انتقال همه فایل‌ها به روت زیپ)" else False
293
  zip_data = create_zip_buffer(temp_dir_zip, flatten=flatten_files)
 
35
 
36
  st.title("🛠️ ابزارهای مدیریت اسپیس هاگینگ‌فیس")
37
 
38
+ # ایجاد سه تب
39
  tab1, tab2, tab3 = st.tabs([
40
  "🔄 انتقال به گیت‌هاب",
41
  "📤 انتقال به هاگینگ‌فیس",
 
95
  if not success:
96
  st.error(f"خطا در دانلود: {msg}")
97
  st.stop()
98
+ else:
99
+ # اطمینان از دانلود کامل فایل‌های LFS
100
+ run_command(f"git -C {temp_dir} lfs pull")
101
  else:
102
  status_area.info("📥 در حال استخراج فایل ZIP...")
103
  os.makedirs(temp_dir, exist_ok=True)
 
107
  # بررسی و رفع مشکل پوشه اضافه (انتقال محتویات به روت اصلی)
108
  extracted_items = [item for item in os.listdir(temp_dir) if item != '__MACOSX']
109
 
 
110
  if len(extracted_items) == 1:
111
  single_folder_path = os.path.join(temp_dir, extracted_items[0])
112
  if os.path.isdir(single_folder_path):
 
122
  shutil.rmtree(".git", ignore_errors=True)
123
 
124
  run_command("git init")
125
+ run_command("git lfs install") # فعال‌سازی محلی LFS در مخزن جدید
126
  run_command("git add .")
127
  run_command('git config user.email "bot@transfer.com"')
128
  run_command('git config user.name "Transfer Bot"')
 
196
  shutil.rmtree(temp_dir_hf, ignore_errors=True)
197
 
198
  try:
 
199
  auth_hf_url = hf_target_url.replace("https://", f"https://__token__:{hf_token}@")
200
 
201
  # مرحله 1: آماده‌سازی فایل‌ها (دانلود یا استخراج زیپ)
 
205
  if not success:
206
  st.error(f"خطا در کلون کردن ریپازیتوری منبع: {msg}")
207
  st.stop()
208
+ else:
209
+ # اطمینان از دانلود کامل فایل‌های LFS از منبع
210
+ run_command(f"git -C {temp_dir_hf} lfs pull")
211
  else:
212
  status_area_hf.info("📥 در حال استخراج فایل ZIP...")
213
  os.makedirs(temp_dir_hf, exist_ok=True)
 
231
  shutil.rmtree(".git", ignore_errors=True)
232
 
233
  run_command("git init")
234
+ run_command("git lfs install") # فعال‌سازی محلی LFS در مخزن جدید
235
  run_command("git add .")
236
  run_command('git config user.email "bot@transfer.com"')
237
  run_command('git config user.name "Transfer Bot"')
 
245
  st.success("✅ انتقال موفقیت‌آمیز بود! فرآیند بیلد (Build) اسپیس شما در هاگینگ‌فیس آغاز شد.")
246
  st.balloons()
247
  else:
 
248
  clean_error = push_msg.replace(hf_token, "***")
249
  st.error(f"خطا در آپلود به هاگینگ‌فیس: {clean_error}")
250
 
 
293
  if not success:
294
  st.error(f"خطا در دریافت فایل‌ها: {msg}")
295
  else:
296
+ # اطمینان از دانلود کامل تمامی فایل‌های LFS قبل از عملیات فشرده‌سازی
297
+ run_command(f"git -C {temp_dir_zip} lfs pull")
298
+
299
  status_zip.info("⚙️ در حال فشرده‌سازی فایل‌ها...")
300
  flatten_files = True if zip_mode == "همه فایل‌ها در روت (حذف پوشه‌بندی و انتقال همه فایل‌ها به روت زیپ)" else False
301
  zip_data = create_zip_buffer(temp_dir_zip, flatten=flatten_files)