Сделал парсер сообщений вконтакте - телеграмм. Вылетает на termux
Сделал парсер сообщений вконтакте - телеграмм через бота используя библиотеку aiogram. Основная цель - пересылать сообщения из беседы вконтакте в чат телеграмм. Хотел сделать чтобы бот сам пересылал сообщения, но получилось так что запускается он по команде и пересылает сообщения только в тот чат где он был запущен этой командой. Проблема в том что я запускаю его на телефоне через Termux и при ошибке цикл прекращается и скрипт вылетает с ошибкой, хотелось бы что бы при при любой ошибке цикл возобновлял свою работу через некоторое время (time.sleep) и не вылетал на termux. На windows скрипт работает нормально при появлении ошибки он повторяет цикл.
from config import token, CHANNEL_ID
import config
import vk_api
import time
import logging
from aiogram import Bot, Dispatcher, types, executor
logging.basicConfig(level=logging.INFO)
bot = Bot(token=token)
dp = Dispatcher(bot)
@dp.message_handler(commands=['dps'])
async def commands_start(message : types.Message):
while True:
print("start")
try:
vk_session = vk_api.VkApi(token=config.vk_token)
api = vk_session.get_api()
except:
continue
x = (api.messages.getConversations())
#print(api.messages.getConversations())
y = (x["items"])
z = (y[0])
e = (z['last_message'])
v = (e['from_id'])
c = (e['text'])
i = (e['date'])
print('Поиск новых сообщений')
time.sleep(3)
VK_message = (c)
print(VK_message)
file = open('last_m.txt', 'r')
rf = file.readline()
file.close()
print(rf)
print('начало работы условий')
if VK_message == "":
print("нет сообщения")
if rf == VK_message:
print('тоже самое.')
else:
print("Новое сообщение!")
file = open('last_m.txt', 'w')
file.write(VK_message)
file.close()
print('Отравка сообщения в телегу')
file = open('last_m.txt', 'r')
neww_message = file.readline()
file.close()
await message.answer(neww_message)
if __name__ == "__main__":
executor.start_polling(dp, skip_updates=True)