Simplify chat client example

This commit is contained in:
Salad Dais
2023-12-13 20:42:21 +00:00
parent 6f6274ec7d
commit 7869df224e
2 changed files with 12 additions and 23 deletions

View File

@@ -6,7 +6,7 @@ import asyncio
from contextlib import aclosing
import os
from hippolyzer.lib.base.message.message import Message, Block
from hippolyzer.lib.base.message.message import Message
from hippolyzer.lib.base.templates import ChatType, ChatSourceType
from hippolyzer.lib.client.hippo_client import HippoClient
@@ -21,13 +21,7 @@ async def amain():
return
if "hello" not in str(message["ChatData"]["Message"]).lower():
return
await client.session.main_region.circuit.send_reliable(
Message(
"ChatFromViewer",
Block("AgentData", SessionID=client.session.id, AgentID=client.session.agent_id),
Block("ChatData", Message=f'Hello {message["ChatData"]["FromName"]}!', Channel=0, Type=ChatType.SHOUT),
)
)
await client.send_chat(f'Hello {message["ChatData"]["FromName"]}!', chat_type=ChatType.SHOUT)
async with aclosing(client):
await client.login(
@@ -36,25 +30,13 @@ async def amain():
start_location=os.environ.get("HIPPO_START_LOCATION", "home"),
)
print("I'm here")
await client.session.main_region.circuit.send_reliable(
Message(
"ChatFromViewer",
Block("AgentData", SessionID=client.session.id, AgentID=client.session.agent_id),
Block("ChatData", Message="Hello World!", Channel=0, Type=ChatType.SHOUT),
)
)
await client.send_chat("Hello World!", chat_type=ChatType.SHOUT)
client.session.message_handler.subscribe("ChatFromSimulator", _respond_to_chat)
while True:
try:
await asyncio.sleep(0.001)
except (KeyboardInterrupt, asyncio.CancelledError):
await client.session.main_region.circuit.send_reliable(
Message(
"ChatFromViewer",
Block("AgentData", SessionID=client.session.id, AgentID=client.session.agent_id),
Block("ChatData", Message="Goodbye World!", Channel=0, Type=ChatType.SHOUT),
)
)
await client.send_chat("Goodbye World!", chat_type=ChatType.SHOUT)
return
if __name__ == "__main__":

View File

@@ -22,7 +22,7 @@ from hippolyzer.lib.base.message.udpdeserializer import UDPMessageDeserializer
from hippolyzer.lib.base.network.caps_client import CapsClient, CAPS_DICT
from hippolyzer.lib.base.network.transport import ADDR_TUPLE, Direction, SocketUDPTransport, AbstractUDPTransport
from hippolyzer.lib.base.settings import Settings, SettingDescriptor
from hippolyzer.lib.base.templates import RegionHandshakeReplyFlags
from hippolyzer.lib.base.templates import RegionHandshakeReplyFlags, ChatType
from hippolyzer.lib.base.transfer_manager import TransferManager
from hippolyzer.lib.base.xfer_manager import XferManager
from hippolyzer.lib.client.asset_uploader import AssetUploader
@@ -482,6 +482,13 @@ class HippoClient(BaseClientSessionManager):
)
session.transport.close()
def send_chat(self, message: Union[bytes, str], channel: int = 0, chat_type=ChatType.NORMAL) -> asyncio.Future:
return self.session.main_region.circuit.send_reliable(Message(
"ChatFromViewer",
Block("AgentData", SessionID=self.session.id, AgentID=self.session.agent_id),
Block("ChatData", Message=message, Channel=channel, Type=chat_type),
))
async def _attempt_resends(self):
while True:
await asyncio.sleep(0.5)