profile: parallelize API requests

parent 2290290f
from telegrinder import Dispatch, Message, CallbackQuery, MESSAGE_FROM_USER, WaiterMachine from telegrinder import Dispatch, Message, CallbackQuery, MESSAGE_FROM_USER, WaiterMachine
from telegrinder.rules import Command, PayloadEqRule, PayloadMarkupRule, Text, IsPrivate, HasText, Argument from telegrinder.rules import Command, PayloadEqRule, PayloadMarkupRule, Text, IsPrivate, HasText, Argument
import asyncio
from asyncio import sleep from asyncio import sleep
import re import re
from datetime import datetime from datetime import datetime
...@@ -28,15 +29,16 @@ async def profile_handler(m: Message, user: User | None) -> None: ...@@ -28,15 +29,16 @@ async def profile_handler(m: Message, user: User | None) -> None:
if user is None: if user is None:
return 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 count_source_pkg = maintainer_data.information.count_source_pkg
roles = DB.user.get_roles(m.from_user.id) 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: if bugs_data:
all_bugs = bugs_data.bugs all_bugs = bugs_data.bugs
unresolved_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