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