Untitled
unknown
python
3 years ago
2.9 kB
22
Indexable
import socket
import ssl
from typing_extensions import Self
from PIL import ImageTk, Image
from mttkinter import *
from twitchAPI import CustomRewardRedemptionStatus
from twitchAPI.twitch import Twitch, AuthScope
from twitchAPI.pubsub import PubSub
from uuid import UUID
import coverpy
import time
import config
coverpy = coverpy.CoverPy()
limit = 1
twitch = Twitch(config.CLIENTID,
config.CLIENTSECRET,
target_app_auth_scope=[AuthScope.USER_EDIT])
scope = [AuthScope.CHANNEL_READ_REDEMPTIONS]
scope1 = [AuthScope.CHANNEL_MANAGE_REDEMPTIONS]
twitch.set_user_authentication(
config.PASS,
scope + scope1,
'refresh_token')
def callback_whisper(uuid: UUID, data: dict) -> None:
print('Foi resgatado um reward ' + str(RedempPubsub))
print(data['data']['redemption']['reward']['id'])
print(data['data']['redemption']['reward']['title'])
print(data['data']['redemption']['user_input'])
redemid = data['data']['redemption']['reward']['id']
redemprionid = data['data']['redemption']['id']
redemtitle = data['data']['redemption']['reward']['title']
redemuserimput = data['data']['redemption']['user_input']
Bot.send_command(Bot,f'PRIVMSG #gg_tec :teste11')
twitch.update_redemption_status(
broadcaster_id="779823875",
reward_id=redemid,
redemption_ids=redemprionid,
status=CustomRewardRedemptionStatus("FULFILLED"),
)
pubsub = PubSub(twitch)
pubsub.start()
RedempPubsub = pubsub.listen_channel_points('779823875', callback_whisper)
class Bot:
def __init__(self):
self.irc = None
self.state_schema = None
self.irc_server = 'irc.chat.twitch.tv'
self.irc_port = 6697
self.oauth_token = 'oauth:' + config.PASS
self.username = config.USER
self.channels = [config.CHAN]
self.command_prefix = '!'
self.state = {}
self.app = mtTkinter.Tk()
self.app.title('Album Art')
self.app.geometry("700x255")
self.app.resizable(True, False)
self.app.resizable(True, False)
def init(self):
self.connect()
# you can either start listening before or after you started pubsub.
def send_command(self, command):
if 'PASS' not in command:
print(f'< {command}')
self.irc.send((command + '\r\n').encode())
def connect(self):
self.irc = ssl.wrap_socket(socket.socket())
self.irc.connect((self.irc_server, self.irc_port))
self.send_command(f'PASS {self.oauth_token}')
self.send_command(f'NICK {self.username}')
for channel in self.channels:
self.send_command(f'JOIN #{channel}')
self.app.configure(background="#202020")
self.app.mainloop()
def main():
bot = Bot()
bot.init()
main()
Editor is loading...