forked from DougDougGithub/ChatGodApp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
chat_god_app.py
80 lines (60 loc) · 2.51 KB
/
chat_god_app.py
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
from twitchio.ext import commands
from twitchio import *
import asyncio
import threading
import os
import configparser
from voices_manager import TTSManager
config = configparser.ConfigParser()
config.read('config.ini')
def toggletts(value):
print("TTS: Received the value " + str(value['checked']))
if value['user_number'] == "1":
bot.tts_enabled_1 = value['checked']
def choose_voice_name(value):
if (value['voice_name']) != None:
bot.update_voice_name(value['user_number'], value['voice_name'])
print("Updating voice name to: " + value['voice_name'])
def choose_voice_style(value):
if (value['voice_style']) != None:
bot.update_voice_style(value['user_number'], value['voice_style'])
print("Updating voice style to: " + value['voice_style'])
bot = None
class Bot(commands.Bot):
current_user_1 = None
tts_enabled_1 = False
tts_manager = None
def __init__(self):
self.tts_manager = TTSManager()
#connects to twitch channel
super().__init__(token=os.getenv('TWITCH_ACCESS_TOKEN'), prefix='?', initial_channels=[config.get('SETTINGS', 'CHANNEL_NAME')])
async def event_ready(self):
print(f'Logged in as | {self.nick}')
print(f'User id is | {self.user_id}')
choose_voice_name({'user_number': '1', 'voice_name': config.get('SETTINGS', 'TTS_VOICE')})
choose_voice_style({'user_number': '1', 'voice_style': config.get('SETTINGS', 'TTS_DEFAULT_EMOTION')})
async def event_message(self, message):
await bot.process_message(message)
async def process_message(self, message: Message):
if message.author.name == config.get('SETTINGS', 'USER_NAME'):
if message.content == "!disable":
toggletts({'user_number': '1', 'checked': False})
elif bot.tts_enabled_1:
bot.tts_manager.text_to_audio(message.content, "1")
elif message.content == "!enable":
toggletts({'user_number': '1', 'checked': True})
def update_voice_name(this, user_number, voice_name):
bot.tts_manager.update_voice_name(user_number, voice_name)
def update_voice_style(this, user_number, voice_style):
bot.tts_manager.update_voice_style(user_number, voice_style)
def startBot():
global bot
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
bot = Bot()
bot.run()
if __name__=='__main__':
global bot_thread
bot_thread = threading.Thread(target=startBot)
bot_thread.start()
bot_thread.join()