Improve clipboard workflow and logging
This commit is contained in:
@@ -3,12 +3,13 @@ from __future__ import annotations
|
||||
import argparse
|
||||
import logging
|
||||
import sys
|
||||
import time
|
||||
from threading import Lock
|
||||
|
||||
import keyboard
|
||||
|
||||
from .ai_client import AIClientError, ask_ai
|
||||
from .clipboard_capture import capture_selection
|
||||
from .clipboard_capture import capture_clipboard
|
||||
from .config import AppConfig, load_config
|
||||
from .key_stepper import KeyStepper
|
||||
|
||||
@@ -37,10 +38,18 @@ class AITypewriterApp:
|
||||
|
||||
def _capture_ask_and_step(self) -> None:
|
||||
try:
|
||||
selected = capture_selection(self.config.copy_wait_seconds, self.config.restore_clipboard)
|
||||
LOG.info("Texte capturé: %d caractères.", len(selected))
|
||||
selected = capture_clipboard()
|
||||
LOG.info("Texte lu depuis le presse-papier: %d caractères.", len(selected))
|
||||
LOG.info("Texte capturé: %r", selected)
|
||||
started_at = time.perf_counter()
|
||||
answer = ask_ai(selected, self.config)
|
||||
LOG.info("Réponse reçue: %d caractères. Mode dactylographie actif.", len(answer))
|
||||
elapsed = time.perf_counter() - started_at
|
||||
LOG.info(
|
||||
"Réponse reçue en %.2f s: %d caractères. Premier caractère écrit automatiquement, %d restants au clavier.",
|
||||
elapsed,
|
||||
len(answer),
|
||||
max(len(answer) - 1, 0),
|
||||
)
|
||||
if self._stepper is not None:
|
||||
self._stepper.stop()
|
||||
self._stepper = KeyStepper(answer, delay=self.config.type_delay_seconds)
|
||||
@@ -73,7 +82,11 @@ def main(argv: list[str] | None = None) -> int:
|
||||
|
||||
if args.ask is not None:
|
||||
try:
|
||||
print(ask_ai(args.ask, config))
|
||||
started_at = time.perf_counter()
|
||||
answer = ask_ai(args.ask, config)
|
||||
elapsed = time.perf_counter() - started_at
|
||||
LOG.info("Réponse générée en %.2f s: %d caractères.", elapsed, len(answer))
|
||||
print(answer)
|
||||
return 0
|
||||
except AIClientError as exc:
|
||||
LOG.error("%s", exc)
|
||||
|
||||
Reference in New Issue
Block a user