Improve insights and continue WhatsApp implementation
This commit is contained in:
@@ -5,6 +5,7 @@ from mixins.views import ObjectList, ObjectRead
|
||||
|
||||
from core.clients import transport
|
||||
from core.views.manage.permissions import SuperUserRequiredMixin
|
||||
import time
|
||||
|
||||
|
||||
class WhatsApp(SuperUserRequiredMixin, View):
|
||||
@@ -88,6 +89,41 @@ class WhatsAppAccountAdd(SuperUserRequiredMixin, ObjectRead):
|
||||
"detail_url": reverse(self.detail_url_name, kwargs=detail_url_args),
|
||||
}
|
||||
|
||||
def _debug_state(self):
|
||||
state = transport.get_runtime_state(self.service)
|
||||
now = int(time.time())
|
||||
|
||||
def _age(key: str) -> str:
|
||||
try:
|
||||
value = int(state.get(key) or 0)
|
||||
except Exception:
|
||||
value = 0
|
||||
if value <= 0:
|
||||
return "n/a"
|
||||
return f"{max(0, now - value)}s ago"
|
||||
|
||||
qr_value = str(state.get("pair_qr") or "")
|
||||
return [
|
||||
f"connected={bool(state.get('connected'))}",
|
||||
f"runtime_updated={_age('updated_at')}",
|
||||
f"runtime_seen={_age('runtime_seen_at')}",
|
||||
f"pair_requested={_age('pair_requested_at')}",
|
||||
f"qr_received={_age('qr_received_at')}",
|
||||
f"last_qr_probe={_age('last_qr_probe_at')}",
|
||||
f"pair_status={state.get('pair_status') or '-'}",
|
||||
f"pair_request_source={state.get('pair_request_source') or '-'}",
|
||||
f"qr_probe_result={state.get('qr_probe_result') or '-'}",
|
||||
f"qr_handler_supported={state.get('qr_handler_supported')}",
|
||||
f"qr_handler_registered={state.get('qr_handler_registered')}",
|
||||
f"event_hook_callable={state.get('event_hook_callable')}",
|
||||
f"event_support={state.get('event_support') or {}}",
|
||||
f"last_event={state.get('last_event') or '-'}",
|
||||
f"last_error={state.get('last_error') or '-'}",
|
||||
f"pair_qr_present={bool(qr_value)} len={len(qr_value)}",
|
||||
f"accounts={state.get('accounts') or []}",
|
||||
f"warning={state.get('warning') or '-'}",
|
||||
]
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
self.request = request
|
||||
if self._refresh_only() and request.htmx:
|
||||
@@ -109,6 +145,7 @@ class WhatsAppAccountAdd(SuperUserRequiredMixin, ObjectRead):
|
||||
"ok": True,
|
||||
"image_b64": transport.image_bytes_to_base64(image_bytes),
|
||||
"warning": transport.get_service_warning(self.service),
|
||||
"debug_lines": self._debug_state(),
|
||||
}
|
||||
except Exception as exc:
|
||||
error_text = str(exc)
|
||||
@@ -118,4 +155,5 @@ class WhatsAppAccountAdd(SuperUserRequiredMixin, ObjectRead):
|
||||
"device": device_name,
|
||||
"error": error_text,
|
||||
"warning": transport.get_service_warning(self.service),
|
||||
"debug_lines": self._debug_state(),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user