42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
|
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)
|