fix(cmdline): make cmdline work without PIL dependency
- Refactor controller to not require importing engine.layers (which imports PIL) - Add set_effect_chain_ref for external chain registration - Fix cmdline to use new ref mechanism
This commit is contained in:
10
cmdline.py
10
cmdline.py
@@ -60,22 +60,22 @@ def local_command(cmd: str) -> str:
|
||||
import effects_plugins
|
||||
from engine.effects.registry import get_registry
|
||||
from engine.effects.chain import EffectChain
|
||||
from engine.effects.controller import set_effect_chain_ref
|
||||
|
||||
effects_plugins.discover_plugins()
|
||||
registry = get_registry()
|
||||
chain = EffectChain(registry)
|
||||
chain.set_order(["noise", "fade", "glitch", "firehose"])
|
||||
|
||||
from engine.layers import _effect_chain
|
||||
|
||||
global _effect_chain_ref
|
||||
_effect_chain_ref = chain
|
||||
set_effect_chain_ref(chain)
|
||||
|
||||
from engine.effects.controller import handle_effects_command
|
||||
|
||||
return handle_effects_command(cmd)
|
||||
except ImportError as e:
|
||||
return f"Error: {e}\n(Try: pip install Pillow)"
|
||||
except Exception as e:
|
||||
return f"Error: {type(e).__name__}: {e}\n(Effects require PIL - run with --send or run mainline first)"
|
||||
return f"Error: {type(e).__name__}: {e}"
|
||||
if cmd == "/help":
|
||||
return AVAILABLE_COMMANDS
|
||||
if cmd == "/quit" or cmd == "/exit":
|
||||
|
||||
Reference in New Issue
Block a user