from multiprocessing import Process
from flask import Flask
from aiogram import Bot, Dispatcher, executor, types
import config
app = Flask(import_name=__name__)
bot = Bot(token=config.BOT_TOKEN)
dispatcher = Dispatcher(bot=bot)
def bot_start_polling():
executor.start_polling(dispatcher=dispatcher, skip_updates=True)
@dispatcher.message_handler(commands=['start'])
async def bot_handler_start(message: types.Message):
await message.reply('Foo')
@app.get(rule='/start_bot')
def start_bot():
bot_process = Process(target=bot_start_polling)
bot_process.start()
return str(bot_process.pid)
if __name__ == '__main__':
app.run()
import logging
while True:
try:
executor.start_polling(dispatcher=dispatcher, skip_updates=True)
except (KeyboardInterrupt, SystemExit):
break
except Exception:
logging.exception('polling error')
И боты у меня крутые, даже очень. Так что не гони на меня что я не могу делать ботов. Я основы знаю очень даже хорошо, и не только..
text = ''
for i in range(len(t)):
text = text + (
f'Найдено в AVITO\n\n'
f'<b>Объявление</b> <code>{str(i+1)}</code>\n\n'
f'<b>Имя: </b><code>{name}</code>\n\n'
f'<b>Название: </b><code>{t[i].getText()}</code>\n\n'
f'<b>Адрес:</b><code>{p[i].select("span")[0].getText()}</code>\n\n'
f'<b>Дата Публикации: </b><code>{p[i].select("span")[1].getText()}</code>'
)
bot.send_message(message.chat.id, text, parse_mode='html')
Мне нужно, чтобы бот каждые 30 минут отправлял сообщение. И это было асинхронное действие. Это, увы, я сделать не могу.
Difficulties
не словарь с названиями сложности, а множество, вот пример:In [1]: foo = {'foo': {'1', '2', '3', '4', '5'}}
In [2]: foo
Out[2]: {'foo': {'1', '2', '3', '4', '5'}}
In [3]: type(foo['foo'])
Out[3]: set
"Difficulties": [
"Легкий",
"Нормальный",
"Трудный",
"Невозможный"
]
In [1]: foo = {"Difficulties": [
...: "Легкий",
...: "Нормальный",
...: "Трудный",
...: "Невозможный"
...: ]}
In [2]: for f in foo['Difficulties']:
...: print(f)
...:
Легкий
Нормальный
Трудный
Невозможный