доделал работу с api yandex lyceum теперь без костылей

This commit is contained in:
2023-04-22 13:34:23 +07:00
parent 3176029cd2
commit 9aca8ad10e
5 changed files with 257 additions and 26 deletions
+51
View File
@@ -0,0 +1,51 @@
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"]} уведомлений. Прочитайте хоть')