mirror of
https://github.com/nirvana-7777/script.service.ultimate.git
synced 2026-10-25 08:12:26 +01: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>
|
DELETE /api/providers/<provider>/timers/<client_index>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import json
|
||||||
from bottle import request, response
|
from bottle import request, response
|
||||||
|
|
||||||
from streaming_providers.base.models.timer import (
|
from streaming_providers.base.models.timer import (
|
||||||
@@ -331,7 +332,47 @@ def setup_timers_routes(app, manager, service):
|
|||||||
500 on unexpected errors.
|
500 on unexpected errors.
|
||||||
"""
|
"""
|
||||||
try:
|
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:
|
if not body:
|
||||||
response.status = 400
|
response.status = 400
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user