Files
audio_resive/Bot.py
T

83 lines
3.9 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from aiogram.utils import executor
from loguru import logger
from aiogram import Bot, Dispatcher, types
from functions import get_audio_messages_func, create_statistic, openai_answer
import json
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import requests
import time
bot = Bot(token="5941118321:AAG0g0keLrlnuH_9U9X6ehpFFAdOX38qeXI") # создаю объект бота
dp = Dispatcher(bot) # создаю объект слушателя
logger.remove() # удаляю стандартный логер
logger.add("logs/logging_log.log", level="INFO") # создаю логер
@dp.message_handler(commands=['start']) # обрабатываю команду start
async def start(message: types.Message):
# получаю имя отправителя
if message.chat.first_name:
name = message.chat.first_name
else:
name = message.chat.title
logger.info(f"Группа {name} (ID: {message.chat.id}) запустил бота") # записываю в логи
await bot.send_message(message.chat.id, 'Привет! Отправляй голосовое, я расшифрую!') # отправляю ответное сообщение
@dp.message_handler(commands=['statistic'])
async def statistic(message: types.Message):
login = "Dmitrium12"
password = ""
options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get('https://passport.yandex.ru/auth/')
time.sleep(1)
driver.find_element(By.CLASS_NAME, "Button2").click()
time.sleep(1)
driver.find_element(By.XPATH, '//*[@id="passp-field-login"]').send_keys(login)
driver.find_element(By.XPATH, '//*[@id="passp:sign-in"]').click()
time.sleep(1)
driver.find_element(By.XPATH, '//*[@id="passp-field-passwd"]').send_keys(password)
driver.find_element(By.XPATH, '//*[@id="passp:sign-in"]').click()
time.sleep(5)
cookies = {"Session_id": [i["value"] for i in driver.get_cookies() if i["name"] == "Session_id"][0]}
response = requests.get("https://lyceum.yandex.ru/api/notifications?isRead=false&limit=20", cookies=cookies)
await message.reply(f'У вас {response.json()["unreadCount"]} уведомлений. Прочитайте хоть')
@dp.message_handler(commands=['r'])
async def r(message: types.Message):
await openai_answer.get_response_to_openai(message, bot)
@dp.message_handler(commands=['r_clear'])
async def r_clear(message: types.Message):
await openai_answer.clear_db(message)
@dp.message_handler(content_types=['text'])
async def not_work_user(message: types.Message):
if str(message.from_user.id) == "620318992" and message.text == "Гена, бань его нахуй" and message.reply_to_message:
with open('not_work_user.json', 'r') as f:
data = json.load(f)
data['chat_gpt'].append(message.reply_to_message.from_user.id)
with open('not_work_user.json', 'w') as f:
json.dump(data, f, indent=4)
await message.reply(f"@{message.reply_to_message.from_user.username} "
f"вы больше не можете со мной разговаривать")
@dp.message_handler(content_types=['voice', 'video_note', 'video']) # обрабатываю голосовые сообщения, кружки, видео
async def get_audio_messages(message: types.Message):
await get_audio_messages_func.get_audio_messages_func(message, logger, bot) # вызываю функцию
def start_work_bot(): # функция запуска бота
logger.info("Бот запустился") # записываю логи
executor.start_polling(dp, skip_updates=True) # запускаю pooling без пропуска пропущенных сообщений