Bonjour,

Je viens vers vous car j'ai un problème avec mon petit bot twitch que je n'arrive pas à comprendre.
il y a quelque temps j'ai réussi à réaliser ce petit programme qui marche très bien et dont je suis très content.
Afin de pousser un peux plus la chose j'ai voulu intégrer quelques commandes liées avec des boutons pour envoyer du texte grâce à mon petit Raspberry.
j'ai donc ajouté les ligne de codes (celle en jaune) mais malheureusement elle ne répondent pas à mes actions sur mon bouton poussoir.
Bien sûre je me suis creusé la tête mais le mystère reste complet pour moi et je ne comprend absolument pas pourquoi elle ne fonctionnent pas.
Biensure je ne recherche pas une ""simple"" correction mais bien à comprendre le pourquoi du comment.
Je vous remercie d'avance pour votre aide.


Voici le programme en question :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import socket 
import RPi.GPIO as GPIO                 
import time                             

GPIO.setmode(GPIO.BOARD)
GPIO.setup(40, GPIO.IN, pull_up_down=GPIO.PUD_UP)                     
[/COLOR]
### Options 
SERVER = "irc.twitch.tv"  # server
PORT = 6667  # port
### Options (Edit this)
PASS = "oauth:yc2fz4upxwi6k7tzrv58y1rj7h3s3k"  # bot password can be found on https://twitchapps.com/tmi/
BOT = "BOT"  # Bot's name [NO CAPITALS]
CHANNEL = "pixelle_123"  # Channal name [NO CAPITALS]
OWNER = "your_name"  # Owner's name [NO CAPITALS]

### Functions

def sendMessage(s, message):
    messageTemp = "PRIVMSG #" + CHANNEL + " :" + message
    s.send((messageTemp + "\r\n").encode())

def getUser(line):
    separate = line.split(":", 2)
    user = separate[1].split("!", 1)[0]
    return user
def getMessage(line):
    global message
    try:
        message = (line.split(":", 2))[2]
    except:
        message = ""
    return message
def joinchat():
    readbuffer_join = "".encode()
    Loading = True
    while Loading:
        readbuffer_join = s.recv(1024)
        readbuffer_join = readbuffer_join.decode()
        temp = readbuffer_join.split("\n")
        readbuffer_join = readbuffer_join.encode()
        readbuffer_join = temp.pop()
        for line in temp:
            Loading = loadingCompleted(line)
    sendMessage(s, "Chat room joined!")
    print("Bot has joined " + CHANNEL + " Channel!")

def loadingCompleted(line):
    if ("End of /NAMES list" in line):
        return False
    else:
        return True
### Code runs
s_prep = socket.socket()
s_prep.connect((SERVER, PORT))
s_prep.send(("PASS " + PASS + "\r\n").encode())
s_prep.send(("NICK " + BOT + "\r\n").encode())
s_prep.send(("JOIN #" + CHANNEL + "\r\n").encode())
s = s_prep
joinchat()
readbuffer = ""

def Console(line):
    # gets if it is a user or twitch server
    if "PRIVMSG" in line:
        return False
    else:
        return True


while True:
    try:
        readbuffer = s.recv(1024)
        readbuffer = readbuffer.decode()
        temp = readbuffer.split("\n")
        readbuffer = readbuffer.encode()
        readbuffer = temp.pop()
    except:
        temp = ""
    for line in temp:
        if line == "":
            break
        # So twitch doesn't timeout the bot.
        if "PING" in line and Console(line):
            msgg = "PONG tmi.twitch.tv\r\n".encode()
            s.send(msgg)
            print(msgg)
            break
        # get user
        user = getUser(line)
        # get message send by user
        message = getMessage(line)
        # for you to see the chat from CMD
        print(user + " > " + message)
        # sends private msg to the user (start line)
        PMSG = "/w " + user + " "

################################# Command ##################################
############ Here you can add as meny commands as you wish of ! ############
############################################################################

        if user == OWNER and "!command" in message:
            sendMessage(s, "This can only be used by the owner")
            break
        if "!private" in message:
            sendMessage(s, PMSG + "This is a private message send to the user")
            break
        if "!global" in message:
            sendMessage(s, "This is a global message send to the chat")
            break 
        if GPIO.input(40) == 0:
            sendMessage(s, "Bonjour")                     # j’envoie le message "Bonjour" sur le tchat
            print("Message bonjour envoyé")             # je signal que ma commande est envoyé
            break 
############################################################################