Spaces:
Runtime error
Runtime error
File size: 4,080 Bytes
feef734 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | """Build Mode Editor โ ัะฟัะฐะฒะปะตะฝะธะต ัะตะถะธะผะฐะผะธ ัะฑะพัะบะธ"""
import os
import json
import logging
from datetime import datetime
from typing import Dict
from .config import BUILD_MODES_FILE
class BuildModeEditor:
def __init__(self, state):
self.state = state
self.logger = logging.getLogger(__name__)
def list_modes(self) -> str:
modes = self._load_all_modes()
if not modes:
return (
"โญโโโโโโโโโโโโโโโโโโโโฎ\n"
" โ ๐๏ธ แดสแดสษชแด แด แดา สแดษชสแด
แดแดแด
แดs โ\n"
"โฐโโโโโโโโโโโโโโโโโโโโฏ\n\n"
"โ Empty...\n"
"Create your first mode: `/build mode save <name>`"
)
lines = ["โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ\n โ ๐๏ธ แดสแดสษชแด แด แดา สแดษชสแด
แดแดแด
แดs โ\nโฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ\n"]
for name, config in modes.items():
desc = config.get('description', 'No description')
lines.append(f"โธ {name}: {desc[:50]}...")
return "\n".join(lines)
def show_mode(self, mode_name: str) -> str:
modes = self._load_all_modes()
mode = modes.get(mode_name)
if not mode:
return f"โธ โ แดสสแดส\nใ{mode_name}ใ not found in the archive.\nCheck spelling: `/build mode list`"
return (
f"โญโโโโโโโโโโโโโโโโโโโโฎ\n"
f" โ ๐ {mode_name.upper()} แดแดแด
แด โ\n"
"โโโโโโโโโโโโโโโโโโโโโค\n"
f"```json\n{json.dumps(mode, ensure_ascii=False, indent=2)}\n```"
)
def save_mode(self, mode_name: str, config: Dict = None) -> str:
modes = self._load_all_modes()
if config is None:
config = dict(self.state.build_context)
config["description"] = f"Mode created {datetime.now().isoformat()}"
modes[mode_name] = config
try:
with open(BUILD_MODES_FILE, "w", encoding="utf-8") as f:
json.dump(modes, f, ensure_ascii=False, indent=2)
return f"โธ โ แด
ษชแด
sแดแด แด\nใ{mode_name}ใ saved to archive.\nLoad it anytime: `/build mode load {mode_name}`"
except Exception as e:
self.logger.error(f"Failed to save mode {mode_name}: {e}")
return f"โธ โ ๏ธ แดสสแดส\nใ{mode_name}ใ save failed: {str(e)[:100]}..."
def load_mode(self, mode_name: str) -> str:
modes = self._load_all_modes()
mode = modes.get(mode_name)
if not mode:
return f"โธ โ แดสสแดส\nใ{mode_name}ใ not found in the archive."
self.state.build_context.update(mode)
return f"โธ โ แดแดแด
แด สแดแดแด
แดแด
\nใ{mode_name}ใ activated."
def delete_mode(self, mode_name: str) -> str:
modes = self._load_all_modes()
if mode_name not in modes:
return f"โธ โ แดสสแดส\nใ{mode_name}ใ not found. Nothing to delete."
del modes[mode_name]
try:
with open(BUILD_MODES_FILE, "w", encoding="utf-8") as f:
json.dump(modes, f, ensure_ascii=False, indent=2)
return f"โธ โข๏ธ แด
แดสแดแดแดแด
\nใ{mode_name}ใ removed from archive."
except Exception as e:
self.logger.error(f"Failed to delete mode {mode_name}: {e}")
return f"โธ โ ๏ธ แดสสแดส\nใ{mode_name}ใ deletion failed: {str(e)[:100]}..."
def _load_all_modes(self) -> Dict:
if not os.path.exists(BUILD_MODES_FILE):
return {}
try:
with open(BUILD_MODES_FILE, "r", encoding="utf-8") as f:
return json.load(f)
except Exception as e:
self.logger.error(f"Failed to load build modes: {e}")
return {}
|