This commit is contained in:
2024-12-28 09:44:58 +09:00
parent 5e3ed91b3a
commit 7350989113
11 changed files with 14160 additions and 324 deletions

View File

@@ -18,7 +18,6 @@ class PluginLoader:
print("Загрузка плагинов:")
for file in os.listdir(PluginLoader.PLUGIN_PATH):
if file.endswith("_pms.py") and not file.startswith("__"):
# print(f" Plugin {file}")
module_name = f"pms_integration.plugins.{file[:-3]}"
try:
module = importlib.import_module(module_name)
@@ -26,8 +25,8 @@ class PluginLoader:
cls = getattr(module, attr)
if isinstance(cls, type) and issubclass(cls, BasePMSPlugin) and cls is not BasePMSPlugin:
plugin_name = file[:-7] # Убираем `_pms` из имени файла
# print(f" Загружен плагин {plugin_name}: {cls.__name__}")
plugins[plugin_name] = cls
print(f" Загружен плагин {plugin_name}: {cls.__name__}")
except Exception as e:
print(f" Ошибка загрузки плагина {module_name}: {e}")
return plugins
@@ -40,6 +39,7 @@ class PMSIntegrationManager:
"""
self.hotel = hotel
self.plugin = None
self.plugins = PluginLoader.load_plugins()
def load_hotel(self):
"""
@@ -52,12 +52,14 @@ class PMSIntegrationManager:
"""
Загружает плагин, соответствующий PMS конфигурации отеля.
"""
pms_name = self.hotel.pms.plugin_name.lower() # Приводим название плагина к нижнему регистру
if pms_name == "ecvi_intermark" or pms_name == "ecvi":
from pms_integration.plugins.ecvi_pms import EcviPMSPlugin
self.plugin = EcviPMSPlugin(self.hotel)
pms_name = self.hotel.pms.plugin_name.lower()
if pms_name in self.plugins:
plugin_class = self.plugins[pms_name]
self.plugin = plugin_class(self.hotel)
print(f"Плагин {pms_name} успешно загружен.")
else:
raise ValueError(f"Неизвестный PMS: {pms_name}")
def fetch_data(self):
"""
Получает данные из PMS с использованием загруженного плагина.