[Streams] Use timezone-aware time (#4694)

* [Streams] Remove timezone replacement

* [Streams] Convert naive now time to UTC

* [Streams] Format with black
This commit is contained in:
Lui 2021-01-21 07:29:54 -08:00 committed by GitHub
parent 5b21d37571
commit 8dbabe24e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,7 +4,7 @@ import logging
from dateutil.parser import parse as parse_time from dateutil.parser import parse as parse_time
from random import choice from random import choice
from string import ascii_letters from string import ascii_letters
from datetime import datetime, timedelta from datetime import datetime, timedelta, timezone
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
from typing import ClassVar, Optional, List, Tuple from typing import ClassVar, Optional, List, Tuple
@ -138,9 +138,7 @@ class YoutubeStream(Stream):
scheduled = stream_data.get("scheduledStartTime", None) scheduled = stream_data.get("scheduledStartTime", None)
if scheduled is not None and actual_start_time is None: if scheduled is not None and actual_start_time is None:
scheduled = parse_time(scheduled) scheduled = parse_time(scheduled)
if ( if (scheduled - datetime.now(timezone.utc)).total_seconds() < -3600:
scheduled.replace(tzinfo=None) - datetime.now()
).total_seconds() < -3600:
continue continue
elif actual_start_time is None: elif actual_start_time is None:
continue continue
@ -178,7 +176,7 @@ class YoutubeStream(Stream):
if vid_data["liveStreamingDetails"].get("scheduledStartTime", None) is not None: if vid_data["liveStreamingDetails"].get("scheduledStartTime", None) is not None:
if "actualStartTime" not in vid_data["liveStreamingDetails"]: if "actualStartTime" not in vid_data["liveStreamingDetails"]:
start_time = parse_time(vid_data["liveStreamingDetails"]["scheduledStartTime"]) start_time = parse_time(vid_data["liveStreamingDetails"]["scheduledStartTime"])
start_in = start_time.replace(tzinfo=None) - datetime.now() start_in = start_time - datetime.now(timezone.utc)
if start_in.total_seconds() > 0: if start_in.total_seconds() > 0:
embed.description = _("This stream will start in {time}").format( embed.description = _("This stream will start in {time}").format(
time=humanize_timedelta( time=humanize_timedelta(