emo-online-api / emo /desktop /actions /file_processor.py
Emo Online
Deploy Emo API
dd87944
Raw
History Blame Contribute Delete
1.03 kB
"""Traitement fichiers — conversion basique stub."""
from __future__ import annotations
from pathlib import Path
from typing import Any
from emo.desktop.actions._base import SkillResult
def run(args: dict) -> Any:
path = args.get("path") or args.get("query") or ""
p = Path(path).expanduser()
if not p.is_file():
return SkillResult.fail("Fichier requis")
suffix = p.suffix.lower()
if suffix == ".txt":
lines = p.read_text(encoding="utf-8", errors="replace").splitlines()
return SkillResult.ok(lines=len(lines), preview="\n".join(lines[:10]), message=f"{len(lines)} lignes")
if suffix == ".json":
import json
data = json.loads(p.read_text(encoding="utf-8"))
return SkillResult.ok(keys=list(data.keys()) if isinstance(data, dict) else type(data).__name__, message="JSON chargé")
return SkillResult.ok(
path=str(p),
size=p.stat().st_size,
message=f"Fichier {suffix or 'sans extension'} — traitement avancé Phase 2",
)