Add provisioning API function to get list of user's sticker sets
This commit is contained in:
@@ -22,6 +22,7 @@ import logging
|
||||
|
||||
from aiohttp import web
|
||||
from telethon.tl.types import ChannelForbidden, ChatForbidden, TypeChat, User as TLUser
|
||||
from telethon.tl.functions.messages import GetAllStickersRequest
|
||||
from telethon.utils import get_peer_id, resolve_id
|
||||
|
||||
from mautrix.appservice import AppService
|
||||
@@ -72,6 +73,8 @@ class ProvisioningAPI(AuthAPI):
|
||||
)
|
||||
self.app.router.add_route("POST", f"{user_prefix}/pm/{{identifier}}", self.start_dm)
|
||||
|
||||
self.app.router.add_route("GET", f"{user_prefix}/stickersets", self.get_stickersets)
|
||||
|
||||
self.app.router.add_route("POST", f"{user_prefix}/retry_takeout", self.retry_takeout)
|
||||
|
||||
self.app.router.add_route("POST", f"{user_prefix}/logout", self.logout)
|
||||
@@ -497,6 +500,18 @@ class ProvisioningAPI(AuthAPI):
|
||||
status=201 if just_created else 200,
|
||||
)
|
||||
|
||||
async def get_stickersets(self, request: web.Request) -> web.Response:
|
||||
_, user, err = await self.get_user_request_info(
|
||||
request, expect_logged_in=True, want_data=False
|
||||
)
|
||||
if err is not None:
|
||||
return err
|
||||
result = await user.client(GetAllStickersRequest(0))
|
||||
resp = []
|
||||
for stickerset in result.sets:
|
||||
resp.append(stickerset.short_name)
|
||||
return web.json_response(resp, status=200)
|
||||
|
||||
async def retry_takeout(self, request: web.Request) -> web.Response:
|
||||
data, user, err = await self.get_user_request_info(
|
||||
request, expect_logged_in=True, want_data=False
|
||||
|
||||
Reference in New Issue
Block a user