At startup time (either at first startup or immediately following a crash) the bot ignores any currently-live streams that started less than 5 minutes ago as of startup time. These streams may or may not have already been announced, it's not currently possible to tell. When the SQL migration is complete this could be as simple as awaiting a database write before firing an announcement, but for now we could just write stream IDs to a JSON file immediately before announcing the streams. These IDs could be cleared every startup by checking on every video with an ID listed in the file to see if it's still live (and if it isn't then we know we won't need to preserve its announcement status). This was already attempted with b2920c3 but immediately reverted in 7d9cc30 for being too buggy.
At startup time (either at first startup or immediately following a crash) the bot ignores any currently-live streams that started less than 5 minutes ago as of startup time. These streams may or may not have already been announced, it's not currently possible to tell. When the SQL migration is complete this could be as simple as awaiting a database write before firing an announcement, but for now we could just write stream IDs to a JSON file immediately before announcing the streams. These IDs could be cleared every startup by checking on every video with an ID listed in the file to see if it's still live (and if it isn't then we know we won't need to preserve its announcement status). This was already attempted with b2920c3 but immediately reverted in 7d9cc30 for being too buggy.