Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cdcbf0b622 | ||
|
|
e0c85f3523 |
@@ -5,6 +5,7 @@ description = "Add your description here"
|
|||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.12"
|
requires-python = ">=3.12"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"aiofiles>=25.1.0",
|
||||||
"bs4>=0.0.2",
|
"bs4>=0.0.2",
|
||||||
"fastapi>=0.136.3",
|
"fastapi>=0.136.3",
|
||||||
"httpx>=0.28.1",
|
"httpx>=0.28.1",
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from typing import Optional, Dict, Any, Tuple
|
|||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
from fastapi import APIRouter, Request
|
from fastapi import APIRouter, Request
|
||||||
|
from functools import lru_cache
|
||||||
|
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
@@ -166,6 +167,8 @@ class IPInfo:
|
|||||||
# ==================== Роутер ====================
|
# ==================== Роутер ====================
|
||||||
router = APIRouter(prefix='/api/v1', tags=['ip'])
|
router = APIRouter(prefix='/api/v1', tags=['ip'])
|
||||||
|
|
||||||
|
|
||||||
|
@lru_cache
|
||||||
@router.get('/ip')
|
@router.get('/ip')
|
||||||
async def get_ip(request: Request):
|
async def get_ip(request: Request):
|
||||||
forwarded = request.headers.get('X-Forwarded-For')
|
forwarded = request.headers.get('X-Forwarded-For')
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
from fastapi import APIRouter, Request
|
||||||
|
import aiofiles
|
||||||
|
|
||||||
|
router = APIRouter(prefix='/api/v1', tags=['tariffs'])
|
||||||
|
|
||||||
|
@router.get('/tariffs')
|
||||||
|
async def get_tariffs(request: Request):
|
||||||
|
async with aiofiles.open('/opt/remnawave-minishop/data/tariffs.json', 'r', encoding='utf-8') as file:
|
||||||
|
return await file.read()
|
||||||
@@ -7,6 +7,15 @@ resolution-markers = [
|
|||||||
"python_full_version < '3.13'",
|
"python_full_version < '3.13'",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "aiofiles"
|
||||||
|
version = "25.1.0"
|
||||||
|
source = { registry = "https://pypi.org/simple" }
|
||||||
|
sdist = { url = "https://files.pythonhosted.org/packages/41/c3/534eac40372d8ee36ef40df62ec129bee4fdb5ad9706e58a29be53b2c970/aiofiles-25.1.0.tar.gz", hash = "sha256:a8d728f0a29de45dc521f18f07297428d56992a742f0cd2701ba86e44d23d5b2", size = 46354, upload-time = "2025-10-09T20:51:04.358Z" }
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://files.pythonhosted.org/packages/bc/8a/340a1555ae33d7354dbca4faa54948d76d89a27ceef032c8c3bc661d003e/aiofiles-25.1.0-py3-none-any.whl", hash = "sha256:abe311e527c862958650f9438e859c1fa7568a141b22abcd015e120e86a85695", size = 14668, upload-time = "2025-10-09T20:51:03.174Z" },
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "annotated-doc"
|
name = "annotated-doc"
|
||||||
version = "0.0.4"
|
version = "0.0.4"
|
||||||
@@ -883,6 +892,7 @@ name = "uvpn-backend"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = { virtual = "." }
|
source = { virtual = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
{ name = "aiofiles" },
|
||||||
{ name = "bs4" },
|
{ name = "bs4" },
|
||||||
{ name = "fastapi" },
|
{ name = "fastapi" },
|
||||||
{ name = "httpx" },
|
{ name = "httpx" },
|
||||||
@@ -896,6 +906,7 @@ dev = [
|
|||||||
|
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
requires-dist = [
|
requires-dist = [
|
||||||
|
{ name = "aiofiles", specifier = ">=25.1.0" },
|
||||||
{ name = "bs4", specifier = ">=0.0.2" },
|
{ name = "bs4", specifier = ">=0.0.2" },
|
||||||
{ name = "fastapi", specifier = ">=0.136.3" },
|
{ name = "fastapi", specifier = ">=0.136.3" },
|
||||||
{ name = "httpx", specifier = ">=0.28.1" },
|
{ name = "httpx", specifier = ">=0.28.1" },
|
||||||
|
|||||||
Reference in New Issue
Block a user