first commit

master
gman 1 month ago
commit 964929bd90

13
.gitignore vendored

@ -0,0 +1,13 @@
# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info
# Virtual environments
.venv
# Development notebook
dev.ipynb

@ -0,0 +1,69 @@
import json
from typing import TypedDict
from botasaurus.browser import Driver, browser
from botasaurus.request import Request, request
from fastapi import FastAPI
class Coordinates(TypedDict):
longitude: float
latitude: float
@browser(headless=True, output=None)
def get_ozon(driver: Driver, data: Coordinates) -> dict:
# 55.73475686704202
# 37.58319787710864
longitude = data["longitude"]
latitude = data["latitude"]
driver.get(
f"https://pvz-map.ozon.ru/api/task/creation-availability?location.lat={latitude}&location.lon={longitude}"
)
driver.short_random_sleep()
page_json = json.loads(driver.page_text)
return page_json
@request(output=None)
def get_wb(request: Request, data: Coordinates) -> dict:
# 55.73475686704202
# 37.58319787710864
longitude = data["longitude"]
latitude = data["latitude"]
response = request.get(
f"https://pvz-map-backend.wildberries.ru/api/v2/map/check-point?point.latitude={latitude}&point.longitude={longitude}"
)
return response.json()
@request(output=None)
def get_yandex(request: Request, data: Coordinates) -> dict:
# 55.73475686704202
# 37.58319787710864
longitude = data["longitude"]
latitude = data["latitude"]
response = request.get(
f"https://hubs.market.yandex.ru/api/partner-gateway/outlet-map/point-available?lat={latitude}&lng={longitude}"
)
return response.json()
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/check")
def check_point(longitude: float, latitude: float):
ozon_response = get_ozon(data={"longitude": longitude, "latitude": latitude})
wb_response = get_wb(data={"longitude": longitude, "latitude": latitude})
yandex_response = get_yandex(data={"longitude": longitude, "latitude": latitude})
return {"y": yandex_response, "o": ozon_response, "w": wb_response}

@ -0,0 +1,10 @@
[project]
name = "point-listener"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
"botasaurus>=4.0.97",
"fastapi[standard]>=0.128.0",
]
Loading…
Cancel
Save