/asynctwitch

asynchronous twitch chat lib

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

AsyncTwitch

This library is used to asynchronously interact with twitch chat.


Requirements:

  • Create a twitch.tv account
  • Get an Oauth token

How to use:

import asynctwitch

# Use the pre-made CommandBot, to handle messages yourself, use asynctwitch.Bot and handle event_message.
bot = asynctwitch.CommandBot(
    user = "Your_bot_twitch_username",
    oauth = "Your_twitch_oauth_token",  # oauth:1234567890abcdefghijklmnopqrst
    channel = "channel_name",           # Defaults to Twitch
    prefix = "your_prefix_here",            # Defaults to '!'
)



# Example command:
@bot.command('example', alias=['moreexample','anothaone'], desc='example command')
async def example(message, word1:str, number1:int, rest:str):
    bot.say(message.channel.name, 'wow')

    
    
# Example subcommand:
@bot.command('say')
async def say(m, subcommand:str):
    pass
    
@say.subcommand('this')
async def this(m):
    bot.say(m.channel.name, "that")

bot.start() 

To use a config file instead, use

asynctwitch.Bot(config="your_settings.ini")
# or
asynctwitch.CommandBot(config="your_settings.ini")

see config.ini for an example file

It's also possible to handle messages your own way, just use

@bot.override
async def event_message(message):
    # your handling here

The same applies to all bot.event_X functions.

To use await bot.play_file('file.mp3'), ffprobe, ffmpeg and ffplay have to be installed. They can be found on the ffmpeg website.

To use await bot.play_ytdl('song'), youtube_dl has to be installed. Use pip install youtube_dl to install it. You will also need the requirements for bot.play_file

These examples use the async/await syntax added in python 3.5, to use this code in 3.4 use @asyncio.coroutine and yield from instead. THIS DOES NOT WORK WITH PYTHON VERSIONS BELOW 3.4!