mirror of
https://github.com/nirvana-7777/script.service.ultimate.git
synced 2026-09-16 14:12:20 +02:00
debug logging for timers
This commit is contained in:
+42
-1
@@ -13,6 +13,7 @@ PUT /api/providers/<provider>/timers/<client_index>
|
||||
DELETE /api/providers/<provider>/timers/<client_index>
|
||||
"""
|
||||
|
||||
import json
|
||||
from bottle import request, response
|
||||
|
||||
from streaming_providers.base.models.timer import (
|
||||
@@ -331,7 +332,47 @@ def setup_timers_routes(app, manager, service):
|
||||
500 on unexpected errors.
|
||||
"""
|
||||
try:
|
||||
body = request.json
|
||||
# TEMP DIAGNOSTIC (remove once the Invalid-JSON issue is confirmed
|
||||
# fixed): request.json swallows the raw bytes on parse failure, so
|
||||
# we can't tell what actually arrived. Read + log it manually first.
|
||||
content_type = request.get_header("Content-Type", "")
|
||||
content_length = request.get_header("Content-Length", "")
|
||||
raw_body = request.body.read()
|
||||
logger.info(
|
||||
f"add_provider_timer[{provider}]: Content-Type={content_type!r} "
|
||||
f"Content-Length header={content_length!r} actual bytes={len(raw_body)}"
|
||||
)
|
||||
logger.info(
|
||||
f"add_provider_timer[{provider}]: raw body (repr, truncated to 2000 chars)="
|
||||
f"{raw_body[:2000]!r}"
|
||||
)
|
||||
|
||||
try:
|
||||
body = json.loads(raw_body.decode("utf-8"))
|
||||
except UnicodeDecodeError as e:
|
||||
logger.error(
|
||||
f"add_provider_timer[{provider}]: body is not valid UTF-8 — "
|
||||
f"{e} — first 100 bytes hex: {raw_body[:100].hex()}"
|
||||
)
|
||||
response.status = 400
|
||||
return {
|
||||
"error": "Bad request",
|
||||
"message": f"Request body is not valid UTF-8: {e}",
|
||||
"provider": provider,
|
||||
}
|
||||
except json.JSONDecodeError as e:
|
||||
logger.error(
|
||||
f"add_provider_timer[{provider}]: JSON decode failed at "
|
||||
f"line {e.lineno} col {e.colno} (char {e.pos}): {e.msg} — "
|
||||
f"context: {raw_body[max(0, e.pos - 30):e.pos + 30]!r}"
|
||||
)
|
||||
response.status = 400
|
||||
return {
|
||||
"error": "Bad request",
|
||||
"message": f"Request body must be valid JSON: {e.msg} at position {e.pos}",
|
||||
"provider": provider,
|
||||
}
|
||||
|
||||
if not body:
|
||||
response.status = 400
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user