profile: parallelize API requests

parent 2290290f
from telegrinder import Dispatch, Message, CallbackQuery, MESSAGE_FROM_USER, WaiterMachine
from telegrinder.rules import Command, PayloadEqRule, PayloadMarkupRule, Text, IsPrivate, HasText, Argument
import asyncio
from asyncio import sleep
import re
from datetime import datetime
......@@ -28,15 +29,16 @@ async def profile_handler(m: Message, user: User | None) -> None:
if user is None:
return
maintainer_data = await altrepo.api.site.maintainer_info(user.default_branch, user.maintainer.nickname)
nickname = user.maintainer.nickname
maintainer_data, watch, bugs_data = await asyncio.gather(
altrepo.api.site.maintainer_info(user.default_branch, nickname),
altrepo.parser.packages.watch_by_maintainer(nickname, "by-acl"),
altrepo.api.bug.bugzilla_by_maintainer(nickname),
)
count_source_pkg = maintainer_data.information.count_source_pkg
roles = DB.user.get_roles(m.from_user.id)
watch = await altrepo.parser.packages.watch_by_maintainer(
user.maintainer.nickname, "by-acl"
)
bugs_data = await altrepo.api.bug.bugzilla_by_maintainer(user.maintainer.nickname)
if bugs_data:
all_bugs = bugs_data.bugs
unresolved_bugs = [
......
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