diff --git a/tubesync/common/json.py b/tubesync/common/json.py index e8a22e1c..5a56a019 100644 --- a/tubesync/common/json.py +++ b/tubesync/common/json.py @@ -1,4 +1,6 @@ +from datetime import datetime from django.core.serializers.json import DjangoJSONEncoder +from yt_dlp.utils import LazyList class JSONEncoder(DjangoJSONEncoder): @@ -14,3 +16,11 @@ class JSONEncoder(DjangoJSONEncoder): return list(iterable) return super().default(obj) + +def json_serial(obj): + if isinstance(obj, datetime): + return obj.isoformat() + if isinstance(obj, LazyList): + return list(obj) + raise TypeError(f'Type {type(obj)} is not json_serial()-able') +