Skip to content

Commit

Permalink
Update model_management.py
Browse files Browse the repository at this point in the history
  • Loading branch information
Bebra777228 authored Sep 6, 2024
1 parent a194907 commit 2f58a64
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions rvc/modules/model_management.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,13 +115,29 @@ def download_file(url, zip_name, progress):
download_url = re.search(r'href="([^"]+)"', response.text)
if download_url:
urllib.request.urlretrieve(download_url.group(1), zip_name)
else:
raise gr.Error("Не удалось найти ссылку для скачивания с OneDrive.")
else:
raise gr.Error("Ошибка загрузки с OneDrive.")

elif "dropbox.com" in url:
progress(0.5, desc="[~] Загрузка модели с Dropbox...")
direct_url = url.split("?")[0] + "?dl=1"
urllib.request.urlretrieve(direct_url, zip_name)
# Преобразуем ссылку для прямого скачивания
if "?dl=0" in url or "?dl=1" in url:
direct_url = re.sub(r'\?dl=0', '?dl=1', url)
direct_url = re.sub(r'\?dl=1.*', '?dl=1', direct_url)
else:
direct_url = url + "?dl=1"

# Используем requests для скачивания
response = requests.get(direct_url, stream=True)
if response.status_code == 200:
with open(zip_name, 'wb') as f:
for chunk in response.iter_content(chunk_size=8192):
if chunk:
f.write(chunk)
else:
raise gr.Error(f"Ошибка загрузки с Dropbox: {response.status_code}")

elif "box.com" in url:
progress(0.5, desc="[~] Загрузка модели с Box...")
Expand Down Expand Up @@ -168,9 +184,15 @@ def download_from_url(url, dir_name, progress=gr.Progress()):

download_file(url, zip_name, progress)

# Проверим, что файл действительно является zip-архивом
if not zipfile.is_zipfile(zip_name):
raise gr.Error("Скачанный файл не является корректным zip-архивом.")

progress(0.8, desc="[~] Распаковка zip-файла...")
extract_zip(extraction_folder, zip_name)
return f"[+] Модель {dir_name} успешно загружена!"
except gr.Error as e:
raise e
except Exception as e:
raise gr.Error(str(e))

Expand All @@ -186,6 +208,7 @@ def upload_zip_model(zip_path, dir_name, progress=gr.Progress()):
)

zip_name = zip_path.name
shutil.copy(zip_path.name, zip_name) # Копируем загруженный файл
progress(0.8, desc="[~] Распаковка zip-файла...")
extract_zip(extraction_folder, zip_name)
return f"[+] Модель {dir_name} успешно загружена!"
Expand Down

0 comments on commit 2f58a64

Please sign in to comment.