Merge pull request #879 from mautrix/stickersets
Add provisioning API function to get list of user's sticker sets
This commit is contained in:
@@ -21,6 +21,7 @@ import json
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
from telethon.tl.functions.messages import GetAllStickersRequest
|
||||||
from telethon.tl.types import ChannelForbidden, ChatForbidden, TypeChat, User as TLUser
|
from telethon.tl.types import ChannelForbidden, ChatForbidden, TypeChat, User as TLUser
|
||||||
from telethon.utils import get_peer_id, resolve_id
|
from telethon.utils import get_peer_id, resolve_id
|
||||||
|
|
||||||
@@ -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("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}/retry_takeout", self.retry_takeout)
|
||||||
|
|
||||||
self.app.router.add_route("POST", f"{user_prefix}/logout", self.logout)
|
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,
|
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:
|
async def retry_takeout(self, request: web.Request) -> web.Response:
|
||||||
data, user, err = await self.get_user_request_info(
|
data, user, err = await self.get_user_request_info(
|
||||||
request, expect_logged_in=True, want_data=False
|
request, expect_logged_in=True, want_data=False
|
||||||
|
|||||||
Reference in New Issue
Block a user