diff --git a/README.md b/README.md index 50134bb..363c401 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,8 @@ pipx install bonchcli ``` -> Это херня пока работает только с Селениумом, так что придётся поставить его, пока я не решил тикет [#5](https://github.com/KarimullinArthur/BonchAPI/issues/5) +~> Это херня пока работает только с Селениумом, так что придётся поставить его, пока я не решил тикет [#5](https://github.com/KarimullinArthur/BonchAPI/issues/5)~ -### Selemium driver -Если сидишь на Харче можешь бахнуть - -``` -sudo pacman -S chromium -``` - -Я надеюсь как можно быстрее избавиться от этой фигни, так что подробно даже писать не хочу. ## Использование ``` diff --git a/bonchcli/bonchcli.py b/bonchcli/bonchcli.py index c84d262..f984d6f 100755 --- a/bonchcli/bonchcli.py +++ b/bonchcli/bonchcli.py @@ -7,7 +7,6 @@ from bonchapi import BonchAPI from bonchapi.bonchapi import AuthError -from .get_token_from_browser import Brow from .config_manager import cm, Config from . import formatting @@ -38,37 +37,7 @@ async def main(): args = parser.parse_args() api = BonchAPI() - await api.login(config.mail, config.password) - - api.cookies = {} - - def write_brow_token(): - browser = Brow(config) - token = browser.get_token() - setattr(api, "cookies", {}) - with open("/tmp/bonch-token", "w") as file: - file.write(token) - api.cookies["miden"] = token - - def read_token_from_cache(): - with open("/tmp/bonch-token", "r") as file: - token = file.readline() - api.cookies["miden"] = token - - write_brow_token() - - try: - read_token_from_cache() - except FileNotFoundError: - write_brow_token() - - try: - rsp = await api.get_timetable(week_offset=args.week_offset) - except AuthError: - write_brow_token() - - rsp = await api.get_timetable(week_offset=args.week_offset) formatting.render_timetable(rsp) diff --git a/bonchcli/config.toml b/bonchcli/config.toml deleted file mode 100644 index 1e8c9eb..0000000 --- a/bonchcli/config.toml +++ /dev/null @@ -1,6 +0,0 @@ -# Всем салам братья! - -[auth] -mail = "pidr@mail.com" -password = "password" - diff --git a/bonchcli/get_token_from_browser.py b/bonchcli/get_token_from_browser.py deleted file mode 100644 index f566849..0000000 --- a/bonchcli/get_token_from_browser.py +++ /dev/null @@ -1,43 +0,0 @@ -import time - -from selenium import webdriver -from selenium.webdriver.chrome.options import Options -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.common.by import By - -from .config_manager import Config - - -class Brow: - def __init__(self, config: Config): - options = Options() - options.add_argument('--headless=new') - options.add_argument("--disable-blink-features=AutomationControlled") - driver = webdriver.Chrome(options=options) - self.driver = driver - self.login = config.mail - self.password = config.password - - def __del__(self): - self.driver.close() - - def auth(self): - self.driver.get("https://lk.sut.ru/cabinet") - elem = self.driver.find_element(By.NAME, "users") - elem.clear() - elem.send_keys(self.login) - - elem = self.driver.find_element(By.NAME, "parole") - elem.clear() - elem.send_keys(self.password) - elem.send_keys(Keys.RETURN) - - elem = self.driver.find_element(By.NAME, "logButton") - elem.send_keys(Keys.ENTER) - self.driver.implicitly_wait(6) # seconds - - def get_token(self): - self.auth() - token = self.driver.get_cookie("miden")["value"] - time.sleep(0.25) - return token diff --git a/pyproject.toml b/pyproject.toml index 4693f2b..7069fcb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bonchcli" -version = "0.0.2" +version = "0.0.3" description = "lk.sut.ru console client" authors = ["Karimullin Arthur "] readme = "README.md" @@ -12,12 +12,18 @@ packages = [ [tool.poetry.dependencies] python = "^3.12" selenium = "^4.28.0" -bonchapi = "0.0.4" +bonchapi = "0.0.5" tomlkit = "^0.13.2" [tool.poetry.scripts] bonchcli = "bonchcli.bonchcli:sync_main" +[tool.poetry.group.dev.dependencies] +pytest = "^8.3.4" + [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" + +[pytest] +pythonpath = "bonchcli"