From db5dd60eb056b603a4654e6a401b81cac7043eb1 Mon Sep 17 00:00:00 2001 From: nukeop Date: Tue, 1 Nov 2016 19:07:18 +0000 Subject: [PATCH 1/2] New entry in documentation - Example illustrating sending and receiving chat messages --- docs/user_guide.rst | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/docs/user_guide.rst b/docs/user_guide.rst index 15df65a..bc5ba52 100644 --- a/docs/user_guide.rst +++ b/docs/user_guide.rst @@ -238,6 +238,47 @@ Alternatively, a callback can be registered to handle the response event every t client.on(EMsg.ClientAddFriendResponse, handle_add_response) +Sending and receiving chat messages +----------------------------------- + +Example demonstrating how to use protobuf to send chat messages, and how to receive them. + +.. code:: python + + import time + + from steam.core.msg import MsgProt + from steam.enums import EChatEntryType + from steam.enums.emsg import EMsg + + # We're assuming that client is a valid, logged in client instance + + client.on(EMsg.ClientFriendMsgIncoming, on_chat_message) + + def on_chat_message(msg): + if msg.body.chat_entry_type == EChatEntryType.Typing: + print("%s started typing a message to me", + get_name_from_steamid(msg.body.steamid_from)) + + if msg.body.chat_entry_type == EChatEntryType.ChatMsg: + print("Message from %s: %s", + get_name_from_steamid(msg.body.steamid_from), + msg.body.message) + + def get_name_from_steamid(self, steamid): + suser = self.client.get_user(steamid, False) + return suser.name + + def send_msg(steamid, msg): + sendmsg = MsgProto(EMsg.ClientFriendMsg) + sendmsg.body.steamid = steamid + sendmsg.body.chat_entry_type = 1 + sendmsg.body.message = msg + sendmsg.body.rtime32_server_timestamp = int(time.time()) + + client.send(sendmsg) + + Web Authentication ================== From 384216bc04dc598569a4de7872f78f07629eea40 Mon Sep 17 00:00:00 2001 From: nukeop Date: Tue, 1 Nov 2016 19:11:13 +0000 Subject: [PATCH 2/2] Changed print format --- docs/user_guide.rst | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/user_guide.rst b/docs/user_guide.rst index bc5ba52..7fed785 100644 --- a/docs/user_guide.rst +++ b/docs/user_guide.rst @@ -257,13 +257,17 @@ Example demonstrating how to use protobuf to send chat messages, and how to rece def on_chat_message(msg): if msg.body.chat_entry_type == EChatEntryType.Typing: - print("%s started typing a message to me", - get_name_from_steamid(msg.body.steamid_from)) + print("{} started typing a message to me".format( + get_name_from_steamid(msg.body.steamid_from) + ) + ) if msg.body.chat_entry_type == EChatEntryType.ChatMsg: - print("Message from %s: %s", + print("Message from {}: {}".format( get_name_from_steamid(msg.body.steamid_from), - msg.body.message) + msg.body.message + ) + ) def get_name_from_steamid(self, steamid): suser = self.client.get_user(steamid, False)