64 lines
2.7 KiB
Python
Executable File
64 lines
2.7 KiB
Python
Executable File
import json
|
|
|
|
from aiogram.utils import executor
|
|
from loguru import logger
|
|
from aiogram import Bot, Dispatcher, types
|
|
from functions import get_audio_messages_func, file_data, start_stat
|
|
import asyncio
|
|
import whisper
|
|
|
|
bot = Bot(token="5941118321:AAG0g0keLrlnuH_9U9X6ehpFFAdOX38qeXI") # создаю объект бота
|
|
dp = Dispatcher(bot) # создаю объект слушателя
|
|
logger.remove() # удаляю стандартный логер
|
|
logger.add("static/logs/logging_log.log", level="INFO") # создаю логер
|
|
model = whisper.load_model("tiny", device='cpu')
|
|
lock = asyncio.Lock()
|
|
|
|
|
|
@dp.message_handler(commands=['send_messages'])
|
|
async def send_messages_command(message: types.Message):
|
|
print(message.from_user.id)
|
|
if message.from_user.id == 620318992:
|
|
with open('users.json') as file:
|
|
data = json.load(file)
|
|
for index, user_id in enumerate(data['audio'] + data['chats']):
|
|
try:
|
|
print(index)
|
|
await bot.send_message(user_id, " ".join(message.text.split(" ")[1:]))
|
|
except Exception as e:
|
|
print(e)
|
|
|
|
|
|
@dp.message_handler(content_types=['new_chat_members'])
|
|
async def new_chat_members_handler(message: types.Message):
|
|
file_data.save_data('chats', message.chat.id)
|
|
|
|
|
|
@dp.message_handler(commands=['start']) # обрабатываю команду start
|
|
async def start(message: types.Message):
|
|
file_data.save_data('start', message.from_user.id)
|
|
# получаю имя отправителя
|
|
if message.chat.first_name:
|
|
name = message.chat.first_name
|
|
else:
|
|
name = message.chat.title
|
|
logger.info(f"Группа {name} (ID: {message.chat.id}) запустил бота") # записываю в логи
|
|
await start_stat.start_stat(message)
|
|
|
|
|
|
@dp.message_handler(content_types=['voice', 'video_note', 'video']) # обрабатываю голосовые сообщения, кружки, видео
|
|
async def get_audio_messages(message: types.Message):
|
|
file_data.save_data('audio_resive')
|
|
if message.chat.type == 'group' or message.chat.type == "supergroup":
|
|
file_data.save_data('chats', message.chat.id)
|
|
file_data.save_data('audio', message.from_user.id)
|
|
else:
|
|
file_data.save_data('audio', message.from_user.id)
|
|
async with lock:
|
|
await get_audio_messages_func.get_audio_messages_func(message, logger, bot, model) # вызываю функцию
|
|
|
|
|
|
def start_work_bot(): # функция запуска бота
|
|
logger.info("Бот запустился") # записываю логи
|
|
executor.start_polling(dp, skip_updates=False) # запускаю pooling без пропуска пропущенных сообщений
|