update statistics

parent d0f90c33
......@@ -40,7 +40,11 @@ class APIInfo:
class PackagesetInfo:
def __init__(self, client: BaseAPI):
self.client = client
async def active_packagesets(self) -> models.PackageSetActivePackageSetsModel:
data = await self.client.get("/packageset/active_packagesets")
return models.PackageSetActivePackageSetsModel(**data)
async def repository_statistics(self, branch: str | None = None) -> models.RepositoryStatisticsModel:
if branch:
data = await self.client.get("/packageset/repository_statistics", {"branch": branch})
......
......@@ -8,6 +8,11 @@ class APIVersion(BaseModel):
description: str
class PackageSetActivePackageSetsModel(BaseModel):
length: int
packagesets: List[str]
class RepositoryStatisticsPackageCountsModel(BaseModel):
arch: str
component: str
......
from telegrinder import MESSAGE_FROM_USER, Dispatch, Message, WaiterMachine, CallbackQuery
from telegrinder.rules import Command, PayloadEqRule, Text, IsUser
from telegrinder.rules import Command, PayloadEqRule, Text, IsUser, Markup, Argument
from datetime import datetime
import locale
......@@ -13,11 +13,23 @@ from database.models import User
dp = Dispatch()
wm = WaiterMachine(dp)
@dp.message(Command("statistics"))
@dp.message(Command("statistics", Argument("branch", optional=True)))
@dp.message(Text(["statistics", "статистика"], ignore_case=True), IsUser())
async def profile_handler(m: Message, user: User | None) -> None:
statistics_data = (await api.packageset.repository_statistics(user.default_branch)).branches[0]
async def profile_handler(m: Message, user: User | None, branch: str | None = None) -> None:
active_branches = (await api.packageset.active_packagesets()).packagesets
if branch:
branch = branch.strip().lower()
if branch not in active_branches:
await m.answer(f"Репозиторий {branch} не найден")
return
else:
if user:
branch = user.default_branch
else:
branch = (await api.packageset.active_packagesets())[0]
statistics_data = (await api.packageset.repository_statistics(branch)).branches[0]
locale.setlocale(locale.LC_TIME, 'ru_RU.UTF-8')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment