Files
Hippolyzer/addon_examples/caps_example.py
2021-04-30 17:30:24 +00:00

34 lines
1.2 KiB
Python

"""
Example of how to make simple Caps requests
"""
import aiohttp
from hippolyzer.lib.proxy.addon_utils import BaseAddon, show_message
from hippolyzer.lib.proxy.commands import handle_command
from hippolyzer.lib.proxy.region import ProxiedRegion
from hippolyzer.lib.proxy.sessions import Session
class CapsExampleAddon(BaseAddon):
@handle_command()
async def test_caps(self, _session: Session, region: ProxiedRegion):
caps_client = region.caps_client
# We can pass in a ClientSession if we want to do keep-alive across requests
async with aiohttp.ClientSession() as aio_sess:
async with caps_client.get("SimulatorFeatures", session=aio_sess) as resp:
await resp.read_llsd()
# Or we can have one created for us just for this request
async with caps_client.get("SimulatorFeatures") as resp:
show_message(await resp.read_llsd())
# POSTing LLSD works
req = caps_client.post("AgentPreferences", llsd={
"hover_height": 0.5,
})
# Request object can be built, then awaited
async with req as resp:
show_message(await resp.read_llsd())
addons = [CapsExampleAddon()]