Crashing Thunder
Crashing Thunder

Reputation: 23

Python - Twitch Bot - Sending/Receiving Whispers

I wrote a simple Python twitch bot following a video tutorial, but the tutorial didn't include whisper functionality. It can currently connect to the chat of the channel I specify, but when I try to have it send a whisper nothing happens. Here's the relevant code bits:

import socket

def openSocket():

    s = socket.socket()
    s.connect((HOST, PORT))

    message = "PASS " + PASS + "\r\n"
    s.send(message.encode('utf-8'))
    message = "NICK " + USER + "\r\n"
    s.send(message.encode('utf-8'))
    message = "JOIN #" + CHAN + "\r\n"
    s.send(message.encode('utf-8'))

    return s

def sendMessage(s, message):

    messageTemp = "PRIVMSG #" + CHAN + " :" + message + "\r\n"
    s.send(messageTemp.encode('utf-8'))
    print("Sent:" + messageTemp)

def sendWhisper(s, user, message):

    messageTemp = "PRIVMSG #jtv :/w " + user + " " + message
    s.send(messageTemp.encode('utf-8'))


import string

from Socket import sendMessage

def joinRoom(s):
    readbuffer = ""
    Loading = True

    while Loading:
        readbuffer = readbuffer + s.recv(1024).decode()
        temp = readbuffer.split('\n')

        readbuffer = temp.pop()

        for line in temp:
            print(line)
            Loading = loadingComplete(line)

def loadingComplete(line):
    if("End of /NAMES list" in line):
        return False;
    else: return True

I've been reading a little bit about connecting to some sort of group chat in order to make this work, but I'm confused and haven't found what I'm looking for. It seems like it should be an easy fix. Any help is appreciated.

Upvotes: 1

Views: 2386

Answers (1)

David Tepper
David Tepper

Reputation: 26

You were very close. Where you messed up is there should not be a # in front of jtv:

def sendWhisper(s, user, message):
    messageTemp = "PRIVMSG jtv :/w " + user + " " + message
    s.send(messageTemp.encode('utf-8'))

Upvotes: 1

Related Questions