bot sends message when stream starts or ends
authorGeorgios Atheridis <atheridis@tutamail.com>
Wed, 25 May 2022 22:20:12 +0000 (22:20 +0000)
committerGeorgios Atheridis <atheridis@tutamail.com>
Wed, 25 May 2022 22:20:12 +0000 (22:20 +0000)
skgyorugo/main.py
skgyorugo/tools/smart_start_stream_time.py

index 16942ed7c9f9ffae54f47f02b2e92d342cf005f9..68d8bb5ce3ccb6f83299cf5c6e1a7be9f6bfaf67 100644 (file)
@@ -114,10 +114,19 @@ database_manager.update_auto_messages_in_database(auto_message_modules, auto_mes
 
 
 def start(bot: Bot, message: Message):
+    i = 0
+    wait = 5
     while True:
-        tools.smart_start_stream_time.update_start_stream_timestamp()
-        analyze_auto_message.do_auto_message(bot, message, auto_message_modules)
-        time.sleep(30)
+        i += wait
+        started = tools.smart_start_stream_time.update_start_stream_timestamp()
+        if started == "START":
+            bot.send_privmsg(message.channel, "Stream has started, you can now use ?join")
+        elif started == "END":
+            bot.send_privmsg(message.channel, "Stream has ended")
+        if i >= 30:
+            analyze_auto_message.do_auto_message(bot, message, auto_message_modules)
+            i = 0
+        time.sleep(wait)
 
 
 def main(bot: Bot, message: Message):
index 901f35f32ebd64bc11720d876d2a756cec7765c0..6ffa8ffdec3e2941d10286cfd66cebd7e56f31c3 100644 (file)
@@ -70,7 +70,7 @@ def start_stream_timestamp() -> Optional[int]:
         return None
 
 
-def update_start_stream_timestamp() -> Optional[int]:
+def update_start_stream_timestamp() -> Optional[str]:
     conn = sqlite3.connect(os.path.join(PATH, "database.db"))
     c = conn.cursor()
 
@@ -100,7 +100,7 @@ def update_start_stream_timestamp() -> Optional[int]:
         if time.time() < last_checked + CHECK_STREAMTIME_CD:
             logger.info(f"returned cached start stream time: {start_stream_ts}")
             conn.close()
-            return start_stream_ts
+            return 
 
     stream_info = ttv_api.stream.get_streams(user_logins=[streamer_login])
     logger.info(f"used twitch api to get stream info")
@@ -133,7 +133,7 @@ def update_start_stream_timestamp() -> Optional[int]:
         conn.close()
         # TODO add hook, streamer ended stream
         end_stream()
-        return
+        return "END"
 
     if not fetched:
         start_stream_ts = int(stream_info[0].started_at.timestamp())
@@ -154,7 +154,7 @@ def update_start_stream_timestamp() -> Optional[int]:
         logger.info(f"returned api start stream time: {start_stream_ts}")
         # TODO add hook, streamer started streaming
         start_stream()
-        return start_stream_ts
+        return "START"
 
     start_stream_ts, last_checked = fetched
     current_time = int(time.time())
@@ -172,4 +172,4 @@ def update_start_stream_timestamp() -> Optional[int]:
     )
     conn.close()
     logger.info(f"returned cached start stream time: {start_stream_ts}")
-    return start_stream_ts
+    return