admin now runs

This commit is contained in:
2026-06-15 19:53:33 +03:30
parent 6aa60860f2
commit 7d61fd8322
3 changed files with 20 additions and 4 deletions
+8 -4
View File
@@ -10,10 +10,6 @@ import uvicorn
from admin.models import get_active_flow_config, init_db, insert_run from admin.models import get_active_flow_config, init_db, insert_run
from config import config from config import config
from crawler.driver import driver_session
from crawler.dynamic_flow import DynamicFlow
from crawler.scenarios.fresh_session import FreshSessionScenario
from crawler.scenarios.otp_login import OTPLoginScenario
def _load_active_flow() -> dict[str, object]: def _load_active_flow() -> dict[str, object]:
@@ -56,6 +52,10 @@ def _record(
def run_otp(phone: str) -> None: def run_otp(phone: str) -> None:
from crawler.driver import driver_session
from crawler.dynamic_flow import DynamicFlow
from crawler.scenarios.otp_login import OTPLoginScenario
def otp_resolver(p: str) -> str: def otp_resolver(p: str) -> str:
# TODO: wire up your SMS gateway / webhook here. # TODO: wire up your SMS gateway / webhook here.
raise NotImplementedError("Implement otp_resolver to fetch OTP from your SMS gateway") raise NotImplementedError("Implement otp_resolver to fetch OTP from your SMS gateway")
@@ -73,6 +73,10 @@ def run_otp(phone: str) -> None:
def run_fresh() -> None: def run_fresh() -> None:
from crawler.driver import driver_session
from crawler.dynamic_flow import DynamicFlow
from crawler.scenarios.fresh_session import FreshSessionScenario
flow_cfg = _load_active_flow() flow_cfg = _load_active_flow()
t0 = time.monotonic() t0 = time.monotonic()
try: try:
+1
View File
@@ -13,6 +13,7 @@ dependencies = [
"python-multipart>=0.0.9", "python-multipart>=0.0.9",
"pydantic>=2.7.0", "pydantic>=2.7.0",
"python-dotenv>=1.0.1", "python-dotenv>=1.0.1",
"setuptools>=70.0.0",
] ]
[tool.pyright] [tool.pyright]
Generated
+11
View File
@@ -571,6 +571,7 @@ dependencies = [
{ name = "python-multipart" }, { name = "python-multipart" },
{ name = "selenium" }, { name = "selenium" },
{ name = "selenium-stealth" }, { name = "selenium-stealth" },
{ name = "setuptools" },
{ name = "undetected-chromedriver" }, { name = "undetected-chromedriver" },
{ name = "uvicorn", extra = ["standard"] }, { name = "uvicorn", extra = ["standard"] },
] ]
@@ -590,6 +591,7 @@ requires-dist = [
{ name = "python-multipart", specifier = ">=0.0.9" }, { name = "python-multipart", specifier = ">=0.0.9" },
{ name = "selenium", specifier = ">=4.18.0" }, { name = "selenium", specifier = ">=4.18.0" },
{ name = "selenium-stealth", specifier = ">=1.0.6" }, { name = "selenium-stealth", specifier = ">=1.0.6" },
{ name = "setuptools", specifier = ">=70.0.0" },
{ name = "undetected-chromedriver", specifier = ">=3.5.5" }, { name = "undetected-chromedriver", specifier = ">=3.5.5" },
{ name = "uvicorn", extras = ["standard"], specifier = ">=0.30.0" }, { name = "uvicorn", extras = ["standard"], specifier = ">=0.30.0" },
] ]
@@ -625,6 +627,15 @@ wheels = [
{ url = "https://package-mirror.liara.ir/repository/pypi/packages/selenium-stealth/1.0.6/selenium_stealth-1.0.6-py3-none-any.whl", hash = "sha256:b62da5452aa4a84f29a4dfb21a9696aff20788a7c570dd0b81bc04a940848b97" }, { url = "https://package-mirror.liara.ir/repository/pypi/packages/selenium-stealth/1.0.6/selenium_stealth-1.0.6-py3-none-any.whl", hash = "sha256:b62da5452aa4a84f29a4dfb21a9696aff20788a7c570dd0b81bc04a940848b97" },
] ]
[[package]]
name = "setuptools"
version = "82.0.1"
source = { registry = "https://pypi.reg.darano.ir/" }
sdist = { url = "https://package-mirror.liara.ir/repository/pypi/packages/setuptools/82.0.1/setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9" }
wheels = [
{ url = "https://package-mirror.liara.ir/repository/pypi/packages/setuptools/82.0.1/setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb" },
]
[[package]] [[package]]
name = "sniffio" name = "sniffio"
version = "1.3.1" version = "1.3.1"