52 lines
2.4 KiB
Python
52 lines
2.4 KiB
Python
import sqlite3
|
||
import time
|
||
import requests
|
||
from aiogram import types
|
||
from selenium import webdriver
|
||
from selenium.webdriver.chrome.service import Service
|
||
from selenium.webdriver.common.by import By
|
||
from webdriver_manager.chrome import ChromeDriverManager
|
||
|
||
|
||
async def create_yandex(message: types.Message):
|
||
conn = sqlite3.connect('db.sql')
|
||
cur = conn.cursor()
|
||
response = cur.execute("SELECT * FROM yandex WHERE user_id=?", (message.from_user.id, )).fetchall()
|
||
conn.close()
|
||
if response:
|
||
await message.reply("Ваш аккаунт уже добавлен")
|
||
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(message.text.split()[1])
|
||
driver.find_element(By.XPATH, '//*[@id="passp:sign-in"]').click()
|
||
time.sleep(1)
|
||
driver.find_element(By.XPATH, '//*[@id="passp-field-passwd"]').send_keys(message.text.split()[2])
|
||
driver.find_element(By.XPATH, '//*[@id="passp:sign-in"]').click()
|
||
time.sleep(5)
|
||
try:
|
||
cookies = [i["value"] for i in driver.get_cookies() if i["name"] == "Session_id"][0]
|
||
conn = sqlite3.connect('db.sql')
|
||
cur = conn.cursor()
|
||
cur.execute("INSERT INTO yandex (user_id, Session_id) VALUES (?, ?)", (message.from_user.id, str(cookies)))
|
||
conn.commit()
|
||
conn.close()
|
||
await message.reply("Ваш аккаунт добавлен")
|
||
except IndexError:
|
||
await message.reply("Ошибка пароля или логина")
|
||
|
||
async def statistic(message: types.Message):
|
||
conn = sqlite3.connect('db.sql')
|
||
cur = conn.cursor()
|
||
response = cur.execute("SELECT * FROM yandex WHERE user_id=?", (message.from_user.id,)).fetchall()
|
||
conn.close()
|
||
if not response:
|
||
await message.reply("Сначала используйте /create_yandex с логином и паролем для добавление аккаунта")
|
||
cookies = {"Session_id": response[0][2]}
|
||
response = requests.get("https://lyceum.yandex.ru/api/notifications?isRead=false&limit=20", cookies=cookies)
|
||
await message.reply(f'У вас {response.json()["unreadCount"]} уведомлений. Прочитайте хоть')
|