videouroki-ans/get_test.py

42 lines
1.2 KiB
Python
Raw Permalink Normal View History

2024-09-16 03:51:24 +00:00
from concurrent.futures import ThreadPoolExecutor
from bs4 import BeautifulSoup
from yaspin import yaspin
import itertools
import endpoints
import requests
import json
FIRSTNAME = "Иванов"
LASTNAME = "Василий"
CLASSTXT = "9А"
TEST_ID = int(input("Enter test ID: "))
def begin_test(id: int, fisrstname: str, lastname: str, classtxt: str) -> dict:
data = {
"member": {
"id": False,
"lastname": lastname,
"firstname": fisrstname,
"classTxt": classtxt
},
"related": 0
}
return json.loads(requests.post(endpoints.BEGIN_TEST(id), json=data).content)
def get_test(uuid: str) -> dict:
content = requests.get(endpoints.DO_TEST(uuid)).content
soup = BeautifulSoup(content, "html.parser")
return json.loads(soup.select("body > script")[2].text.replace("window.backend = ", "").strip())
def complete_test(uuid: str) -> int:
content = requests.get(endpoints.COMPLETE_TEST(uuid)).content
soup = BeautifulSoup(content, "html.parser")
return int(soup.select("div.test_main__results_statitem")[2].text.strip().replace("Выполнено верно\n",""))
test = begin_test(TEST_ID, FIRSTNAME, LASTNAME, CLASSTXT)['uuid']
print(get_test(test))
complete_test(test)