Check how recently the streamer was live before pinging again
This commit is contained in:
16
app/main.py
16
app/main.py
@@ -1,5 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from requests import HTTPError
|
from requests import HTTPError
|
||||||
@@ -10,6 +11,7 @@ from app.twitch_client import StreamInformation, TwitchClient
|
|||||||
|
|
||||||
class Main:
|
class Main:
|
||||||
is_live: bool = False
|
is_live: bool = False
|
||||||
|
last_live_at = None
|
||||||
_previous_stream: StreamInformation = None
|
_previous_stream: StreamInformation = None
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@@ -36,9 +38,23 @@ class Main:
|
|||||||
|
|
||||||
if not self.is_live:
|
if not self.is_live:
|
||||||
logger.info("Streamer went live.")
|
logger.info("Streamer went live.")
|
||||||
|
if (
|
||||||
|
self.last_live_at
|
||||||
|
and (datetime.now() - self.last_live_at).total_seconds()
|
||||||
|
< 300
|
||||||
|
):
|
||||||
|
logger.info(
|
||||||
|
"Streamer was already live once in the past 5 minutes. "
|
||||||
|
"This is probably due to a crash, not sending the Discord ping."
|
||||||
|
)
|
||||||
|
self.last_live_at = datetime.now()
|
||||||
|
self.is_live = True
|
||||||
|
return
|
||||||
|
|
||||||
self.discord_client.send_information_to_discord(
|
self.discord_client.send_information_to_discord(
|
||||||
stream=stream, profile_image=self.profile_image
|
stream=stream, profile_image=self.profile_image
|
||||||
)
|
)
|
||||||
|
self.last_live_at = datetime.now()
|
||||||
self.is_live = True
|
self.is_live = True
|
||||||
else:
|
else:
|
||||||
logger.info("Streamer still live.")
|
logger.info("Streamer still live.")
|
||||||
|
|||||||
Reference in New Issue
Block a user