Я пишу твич бота для игры крокодила. После деплоя на Heroku приложение работает некоторое время, но потом перестает. Я не понимаю в чем проблема. В логах ничего кроме "State changed from starting to crashed" нет. Причем локально все работает без ошибок.
Вот мое приложение:
import config
import utils
import socket
import re
import time
from time import sleep
def main():
s = socket.socket()
s.connect((config.HOST, config.PORT))
s.send("PASS {}\r\n".format(config.PASS).encode("utf-8"))
s.send("NICK {}\r\n".format(config.NICK).encode("utf-8"))
s.send("JOIN #{}\r\n".format(config.CHAN).encode("utf-8"))
chat_message = re.compile(r"^:\w+!\w+@\w+\.tmi\.twitch\.tv PRIVMSG #\w+ :")
s.send("CAP REQ :twitch.tv/commands\r\n".encode("utf-8"))
while True:
response = s.recv(1024).decode("utf-8")
if response == "PING :tmi.twitch.tv\r\n":
s.send("PONG :tmi.twitch.tv\r\n".encode("utf-8"))
else:
username = re.search(r"\w+", response).group(0)
mess = chat_message.sub("", response)
n
if mess.strip() == "!начать" and username == "StreamerName":
game = True
word = ""
count = {}
utils.message(s, "/me Игра начата!")
sleep(1)
while game == True:
response = s.recv(1024).decode("utf-8")
if response[0:52] == ":nickname1!nickname1@nickname1.tmi.twitch.tv WHISPER":
username = re.search(r"\w+", response).group(0)
word = response[66:]
utils.message(s, "/me Cлово установлено!")
sleep(1)
else:
username = re.search(r"\w+", response).group(0)
mess = chat_message.sub("", response)
if mess.lower() == word.lower():
utils.message(s, '/me @StreamerName {} отгадал слово!!!'.format(username))
sleep(1)
utils.message(s, "@{} отправь новое слово стримеру!".format(username))
sleep(1)
word = ""
if username in count:
count[username]+=1
else: count.update({username: 1})
if mess.strip() == "!закончить" and username == "StreamerName":
utils.message(s, "/me Игра окончена!")
sleep(1)
game = False
result = ""
for key, value in count.items():
result+= "{}: {} ".format(key, value)
utils.message(s, result)
if __name__ == "__main__":
main()
Надеюсь вы поможете мне)