Воркед

This commit is contained in:
kromskii2 committed 2025-03-15 09:36:28 +07:00
1 parent ac32c55ab9
commit ee94d8e529
1138 files changed
+55771 -77901

No files matched your search

+46 -19
View File
@@ -2,6 +2,17 @@ from PyQt6.QtWidgets import (QWidget, QVBoxLayout, QHBoxLayout,
QComboBox, QLabel)
from PyQt6.QtCore import pyqtSignal
import requests
from typing import List, Dict
import os
from dotenv import load_dotenv
# Загружаем переменные окружения
load_dotenv()
class Sampler:
def __init__(self, name: str, title: str = None):
self.name = name
self.title = title or name
class SamplerManager(QWidget):
sampler_changed = pyqtSignal(str)
@@ -71,28 +82,25 @@ class SamplerManager(QWidget):
layout.addStretch()
def load_samplers(self):
"""Загрузить список доступных сэмплеров"""
"""Загрузка списка сэмплеров с сервера"""
try:
response = requests.get(f"{self.api_url}/sdapi/v1/samplers")
if response.status_code == 200:
samplers = response.json()
current_sampler = self.sampler_combo.currentText()
samplers_data = response.json()
self.samplers = [
Sampler(sampler['name'], sampler.get('title'))
for sampler in samplers_data
]
self.sampler_combo.clear()
for sampler in samplers:
self.sampler_combo.addItem(sampler.get('name', ''))
# Восстанавливаем выбранный сэмплер, если он всё ещё доступен
index = self.sampler_combo.findText(current_sampler)
if index >= 0:
self.sampler_combo.setCurrentIndex(index)
elif self.sampler_combo.count() > 0:
# По умолчанию выбираем Euler a
default_index = self.sampler_combo.findText("Euler a")
if default_index >= 0:
self.sampler_combo.setCurrentIndex(default_index)
# По умолчанию выбираем Euler a
self.current_sampler = next(
(sampler for sampler in self.samplers if sampler.name == "Euler a"),
self.samplers[0] if self.samplers else None
)
except Exception as e:
print(f"Ошибка при загрузке сэмплеров: {str(e)}")
print(f"Ошибка загрузки сэмплеров: {str(e)}")
self.samplers = []
self.current_sampler = None
def on_sampler_changed(self, sampler_name):
"""Обработка смены сэмплера"""
@@ -103,6 +111,25 @@ class SamplerManager(QWidget):
self.api_url = new_url
self.load_samplers()
def get_samplers(self):
"""Возвращает список доступных сэмплеров"""
return self.samplers
def get_sampler_names(self):
"""Возвращает список имен сэмплеров"""
return [sampler.name for sampler in self.samplers]
def get_current_sampler(self):
"""Получить текущий выбранный сэмплер"""
return self.sampler_combo.currentText()
"""Возвращает текущий сэмплер"""
return self.current_sampler
def set_current_sampler(self, sampler_name: str) -> bool:
"""Установка текущего сэмплера"""
sampler = next(
(s for s in self.samplers if s.name == sampler_name),
None
)
if sampler:
self.current_sampler = sampler
return True
return False