Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steam client not relaying messages to/from steam group chats #480

Closed
prg318 opened this issue Aug 7, 2018 · 3 comments
Closed

Steam client not relaying messages to/from steam group chats #480

prg318 opened this issue Aug 7, 2018 · 3 comments

Comments

@prg318
Copy link

prg318 commented Aug 7, 2018

Describe the bug
When connecting to a steam group chatroom, no messages are relayed. I'm wondering if this is related to new group chat features in steam. This may be an issue with steam-go, but I wanted to start here

To Reproduce
Set up a bridge with any other messaging service to steam and messages are not replayed into the group chat

Expected behavior
Expected messages to be relayed like irc

Screenshots/debug logs
I'd be happy to provide logs if necessary

Environment (please complete the following information):

  • linux
  • version 1.11.2-dev
  • If self compiled: output of git rev-parse HEAD 5106286

Additional context
Please add your configuration file (be sure to exclude or anonymize private data (tokens/passwords))

#This is configuration for matterbridge.
#WARNING: as this file contains credentials, be sure to set correct file permissions
###################################################################
#IRC section
###################################################################
#REQUIRED to start IRC section
[irc]

#You can configure multiple servers "[irc.name]" or "[irc.name2]"
#In this example we use [irc.freenode]
#REQUIRED
[irc.myServer.net]
#irc server to connect to. 
#REQUIRED
Server="irc.myServer.net:6667"

#Password for irc server (if necessary)
#OPTIONAL (default "")
Password=""

#Enable to use TLS connection to your irc server. 
#OPTIONAL (default false)
UseTLS=false

#Enable SASL (PLAIN) authentication. (freenode requires this from eg AWS hosts)
#It uses NickServNick and NickServPassword as login and password
#OPTIONAL (default false)
UseSASL=false

#Enable to not verify the certificate on your irc server. i
#e.g. when using selfsigned certificates
#OPTIONAL (default false)
SkipTLSVerify=true

#If you know your charset, you can specify it manually. 
#Otherwise it tries to detect this automatically. Select one below
# "iso-8859-2:1987", "iso-8859-9:1989", "866", "latin9", "iso-8859-10:1992", "iso-ir-109", "hebrew", 
# "cp932", "iso-8859-15", "cp437", "utf-16be", "iso-8859-3:1988", "windows-1251", "utf16", "latin6", 
# "latin3", "iso-8859-1:1987", "iso-8859-9", "utf-16le", "big5", "cp819", "asmo-708", "utf-8", 
# "ibm437", "iso-ir-157", "iso-ir-144", "latin4", "850", "iso-8859-5", "iso-8859-5:1988", "l3", 
# "windows-31j", "utf8", "iso-8859-3", "437", "greek", "iso-8859-8", "l6", "l9-iso-8859-15", 
# "iso-8859-2", "latin2", "iso-ir-100", "iso-8859-6", "arabic", "iso-ir-148", "us-ascii", "x-sjis", 
# "utf16be", "iso-8859-8:1988", "utf16le", "l4", "utf-16", "iso-ir-138", "iso-8859-7", "iso-8859-7:1987", 
# "windows-1252", "l2", "koi8-r", "iso8859-1", "latin1", "ecma-114", "iso-ir-110", "elot-928", 
# "iso-ir-126", "iso-8859-1", "iso-ir-127", "cp850", "cyrillic", "greek8", "windows-1250", "iso-latin-1", 
# "l5", "ibm866", "cp866", "ms-kanji", "ibm850", "ecma-118", "iso-ir-101", "ibm819", "l1", "iso-8859-6:1987", 
# "latin5", "ascii", "sjis", "iso-8859-10", "iso-8859-4", "iso-8859-4:1988", "shift-jis
# The select charset will be converted to utf-8 when sent to other bridges.
#OPTIONAL (default "")
Charset=""

#Your nick on irc. 
#REQUIRED
Nick="Zoda"

#If you registered your bot with a service like Nickserv on freenode. 
#Also being used when UseSASL=true
#
#Note: if you want do to quakenet auth, set NickServNick="Q@CServe.quakenet.org"
#OPTIONAL
#NickServNick="nickserv"
#NickServPassword="secret"

#OPTIONAL only used for quakenet auth
#NickServUsername="username"

## RELOADABLE SETTINGS
## Settings below can be reloaded by editing the file

#Flood control
#Delay in milliseconds between each message send to the IRC server
#OPTIONAL (default 1300)
MessageDelay=1300

#Maximum amount of messages to hold in queue. If queue is full 
#messages will be dropped. 
#<message clipped> will be add to the message that fills the queue.
#OPTIONAL (default 30)
MessageQueue=30

#Maximum length of message sent to irc server. If it exceeds
#<message clipped> will be add to the message.
#OPTIONAL (default 400)
MessageLength=400

#Split messages on MessageLength instead of showing the <message clipped>
#WARNING: this could lead to flooding
#OPTIONAL (default false)
MessageSplit=false

#Delay in seconds to rejoin a channel when kicked
#OPTIONAL (default 0)
RejoinDelay=0

#ColorNicks will show each nickname in a different color.
#Only works in IRC right now.
ColorNicks=false

#Nicks you want to ignore. 
#Messages from those users will not be sent to other bridges.
#OPTIONAL
IgnoreNicks="ircspammer1 ircspammer2"

#Messages you want to ignore. 
#Messages matching these regexp will be ignored and not sent to other bridges
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
IgnoreMessages="^~~ badword"

#messages you want to replace.
#it replaces outgoing messages from the bridge.
#so you need to place it by the sending bridge definition.
#regular expressions supported
#some examples:
#this replaces cat => dog and sleep => awake
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
#this replaces every number with number.  123 => numbernumbernumber
#replacemessages=[ ["[0-9]","number"] ]
#optional (default empty)
ReplaceMessages=[ ["cat","dog"] ]

#nicks you want to replace.
#see replacemessages for syntaxa
#optional (default empty)
ReplaceNicks=[ ["user--","user"] ]

#extra label that can be used in the RemoteNickFormat
#optional (default empty)
Label=""

#RemoteNickFormat defines how remote users appear on this bridge 
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
#The string "{LABEL}" (case sensitive) will be replaced by label= field of the sending bridge
#The string "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
#The string "{NOPINGNICK}" (case sensitive) will be replaced by the actual nick / username, but with a ZWSP inside the nick, so the irc user with the same nick won't get pinged. See https://github.com/42wim/matterbridge/issues/175 for more information
#OPTIONAL (default empty)
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

#Enable to show users joins/parts from other bridges 
#Currently works for messages from the following bridges: irc, mattermost, slack
#OPTIONAL (default false)
ShowJoinPart=false

#Do not send joins/parts to other bridges
#Currently works for messages from the following bridges: irc, mattermost, slack
#OPTIONAL (default false)
NoSendJoinPart=false

#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
#It will strip other characters from the nick
#OPTIONAL (default false)
StripNick=false

#Enable to show topic changes from other bridges 
#Only works hiding/show topic changes from slack bridge for now
#OPTIONAL (default false)
ShowTopicChange=false

###################################################################
#steam section
###################################################################
[steam]
#You can configure multiple servers "[steam.name]" or "[steam.name2]"
#In this example we use [steam.gamechat]
#REQUIRED

[steam.bot]
#login/pass of your bot. 
#Use a dedicated user for this and not your own account! 
#REQUIRED 
Login="redacted"
Password="redacted"

#steamguard mail authcode (not the 2FA code)
#OPTIONAL 
#Authcode="DPG76"

## RELOADABLE SETTINGS
## Settings below can be reloaded by editing the file

#Whether to prefix messages from other bridges to matrix with the sender's nick. 
#Useful if username overrides for incoming webhooks isn't enabled on the 
#matrix server. If you set PrefixMessagesWithNick to true, each message 
#from bridge to matrix will by default be prefixed by the RemoteNickFormat setting. i
#OPTIONAL (default false)
PrefixMessagesWithNick=false

#Nicks you want to ignore. 
#Messages from those users will not be sent to other bridges.
#OPTIONAL
IgnoreNicks="spammer1 spammer2"

#Messages you want to ignore. 
#Messages matching these regexp will be ignored and not sent to other bridges
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
IgnoreMessages="^~~ badword"

#messages you want to replace.
#it replaces outgoing messages from the bridge.
#so you need to place it by the sending bridge definition.
#regular expressions supported
#some examples:
#this replaces cat => dog and sleep => awake
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
#this replaces every number with number.  123 => numbernumbernumber
#replacemessages=[ ["[0-9]","number"] ]
#optional (default empty)
ReplaceMessages=[ ["cat","dog"] ]

#nicks you want to replace.
#see replacemessages for syntaxa
#optional (default empty)
ReplaceNicks=[ ["user--","user"] ]

#extra label that can be used in the RemoteNickFormat
#optional (default empty)
Label=""

#RemoteNickFormat defines how remote users appear on this bridge 
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
#The string "{LABEL}" (case sensitive) will be replaced by label= field of the sending bridge
#The string "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
#OPTIONAL (default empty)
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

#Enable to show users joins/parts from other bridges 
#Currently works for messages from the following bridges: irc, mattermost, slack
#OPTIONAL (default false)
ShowJoinPart=false

#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
#It will strip other characters from the nick
#OPTIONAL (default false)
StripNick=false

#Enable to show topic changes from other bridges 
#Only works hiding/show topic changes from slack bridge for now
#OPTIONAL (default false)
ShowTopicChange=false

###################################################################
#API
###################################################################
[api]
#You can configure multiple API hooks
#In this example we use [api.local]
#REQUIRED

[api.local]
#Address to listen on for API
#REQUIRED 
#BindAddress="127.0.0.1:4242"

#Amount of messages to keep in memory
#Buffer=1000

#Bearer token used for authentication
#curl -H "Authorization: Bearer token" http://localhost:4242/api/messages
#OPTIONAL (no authorization if token is empty)
#Token="mytoken"

#extra label that can be used in the RemoteNickFormat
#optional (default empty)
#Label=""

#RemoteNickFormat defines how remote users appear on this bridge 
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
#The string "{LABEL}" (case sensitive) will be replaced by label= field of the sending bridge
#The string "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
#OPTIONAL (default empty)
#RemoteNickFormat="{NICK}"



###################################################################
#General configuration
###################################################################
# Settings here are defaults that each protocol can override
[general]

## RELOADABLE SETTINGS
## Settings below can be reloaded by editing the file

#RemoteNickFormat defines how remote users appear on this bridge 
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
#The string "{LABEL}" (case sensitive) will be replaced by label= field of the sending bridge
#The string "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
#OPTIONAL (default empty)
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
#It will strip other characters from the nick
#OPTIONAL (default false)
StripNick=false


#MediaServerUpload (or MediaDownloadPath) and MediaServerDownload are used for uploading
#images/files/video to a remote "mediaserver" (a webserver like caddy for example).
#When configured images/files uploaded on bridges like mattermost, slack, telegram will be
#downloaded and uploaded again to MediaServerUpload URL
#MediaDownloadPath is the filesystem path where the media file will be placed, instead of uploaded,
#for if Matterbridge has write access to the directory your webserver is serving.
#It is an alternative to MediaServerUpload.
#The MediaServerDownload will be used so that bridges without native uploading support:
#gitter, irc and xmpp will be shown links to the files on MediaServerDownload
#
#More information https://github.com/42wim/matterbridge/wiki/Mediaserver-setup-%5Badvanced%5D
#OPTIONAL (default empty)
#MediaServerUpload="https://user:pass@yourserver.com/upload"
#OPTIONAL (default empty)
#MediaDownloadPath="/srv/http/yourserver.com/public/download"
#OPTIONAL (default empty)
#MediaServerDownload="https://youserver.com/download"

#MediaDownloadSize is the maximum size of attachments, videos, images
#matterbridge will download and upload this file to bridges that also support uploading files.
#eg downloading from slack to upload it to mattermost
#
#It will only download from bridges that don't have public links available, which are for the moment
#slack, telegram, matrix and mattermost
#
#OPTIONAL (default 1000000 (1 megabyte))
MediaDownloadSize=1000000

#MediaDownloadBlacklist allows you to blacklist specific files from being downloaded.
#Filenames matching these regexp will not be download/uploaded to the mediaserver
#You can use regex for this, see https://regex-golang.appspot.com/assets/html/index.html for more regex info
#OPTIONAL (default empty)
MediaDownloadBlacklist=[".html$",".htm$"]

###################################################################
#Gateway configuration
###################################################################

#You can specify multiple gateways using [[gateway]]
#Each gateway has a [[gateway.in]] and a [[gateway.out]]
#[[gateway.in]] specifies the account and channels we will receive messages from.
#[[gateway.out]] specifies the account and channels we will send the messages
#from [[gateway.in]] to.
#
#Most of the time [[gateway.in]] and [[gateway.out]] are the same if you 
#want bidirectional bridging. You can then use [[gateway.inout]]
#

[[gateway]]
#REQUIRED and UNIQUE
name="gateway1"
#Enable enables this gateway
##OPTIONAL (default false)
enable=true

    #[[gateway.in]] specifies the account and channels we will receive messages from.
    #The following example bridges between mattermost and irc
    [[gateway.inout]]

    #account specified above
    #REQUIRED
    account="irc.myServer.net"
    #channel to connect on that account
    #How to specify them for the different bridges:
    #
    #irc        - #channel (# is required) (this needs to be lowercase!)
    #mattermost - channel (the channel name as seen in the URL, not the displayname)
    #gitter     - username/room 
    #xmpp       - channel
    #slack      - channel (without the #)
    #           - ID:C123456 (where C123456 is the channel ID) does not work with webhook
    #discord    - channel (without the #)
    #           - ID:123456789 (where 123456789 is the channel ID) 
    #               (https://github.com/42wim/matterbridge/issues/57)
    #telegram   - chatid (a large negative number, eg -123456789)
    #             see (https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau)
    #hipchat    - id_channel (see https://www.hipchat.com/account/xmpp for the correct channel)
    #rocketchat - #channel (# is required (also needed for private channels!)
    #matrix     - #channel:server (eg #yourchannel:matrix.org) 
    #           - encrypted rooms are not supported in matrix
    #steam      - chatid (a large number). 
    #             The number in the URL when you click "enter chat room" in the browser
    #zulip      - stream (without the #)
    #                  
    #REQUIRED
    channel="#gcl"

        #OPTIONAL - only used for IRC and XMPP protocols at the moment
        #[gateway.in.options]
        #OPTIONAL - your irc / xmpp channel key
        #key="yourkey"


    #[[gateway.out]] specifies the account and channels we will sent messages to.
    #[[gateway.out]]
    #account="irc.myServer.net"
    #channel="#testing"

        #OPTIONAL - only used for IRC and XMPP protocols at the moment
        #[gateway.out.options]
        #OPTIONAL - your irc / xmpp channel key
        #key="yourkey"

    #[[gateway.inout]] can be used when then channel will be used to receive from 
    #and send messages to
    [[gateway.inout]]
    account="steam.bot"
    # NOTE! I changed the channel number below but its the same format
    channel="103582744430667078"

        #OPTIONAL - only used for IRC and XMPP protocols at the moment
        #[gateway.inout.options]
        #OPTIONAL - your irc / xmpp channel key
        #key="yourkey"

#[[samechannelgateway]]
#   name="samechannel1"
#   enable = false
#   accounts = [ "mattermost.work","slack.hobby" ]
#   channels = [ "testing","testing2","testing3"]

@42wim
Copy link
Owner

42wim commented Aug 9, 2018

If you run with -debug do you see any incoming messages from steam ?

Also see https://github.com/42wim/matterbridge/wiki/FAQ#steam and https://github.com/42wim/matterbridge/wiki/Section-Steam-(basic)

@prg318
Copy link
Author

prg318 commented Aug 9, 2018

Yes - I see incoming messages from steam with the -debug flag enabled, but not messages for the actual chat room I'm trying to relay - I see steam protocol messages (Persona events, etc).

I'm wondering if we're not seeing the actual chat messages because Steam changed how group chats work. Steam has changed their group chat so instead of only having one channel, you can have multiple channels. Since we are linking to a single id on the group page, I'm wondering if the client needs to specify to steam which room should be relayed.

Steam's announcement of the chat update: https://steamcommunity.com/updates/chatupdate

I don't have logs right now but can provide them if they would be helpful.

I'm sort of just curious in general if anyone has gotten the steam relay to work since steam's chat update

@42wim
Copy link
Owner

42wim commented Jan 1, 2021

Closing in favor of #457

@42wim 42wim closed this as completed Jan 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants