O Twitch4K é uma biblioteca escrita na linguagem de programação Kotlin que permite a criação de bots
voltados ao chat da Twitch. O intuito de escrever esta biblioteca é de compreender melhor como a infraestrutura de char da Twitch funcionaa, praticar a construção de um cliente IRC com Kotlin e possibilitar a criação de ferramentas visando melhorar a experiência das pessoas que assistem lives na Twitch através de chatbots
Para utilizar a biblioteca será necessário executar os seguintes passos:
- Realizar o clone projeto com o seguinte comando:
git clone [email protected]:Kotlinautas/twitch4k.git
- Entrar no diretório do projeto:
cd twitch4k
- Construir e publicar para o repositório Maven local com o comando:
Para Linux e MacOS
./gradlew publishToMavenLocal
Para Windows:
./gradlew.bat publishToMavenLocal
- Após terminar o processo de construção e compilação, declare a biblioteca no
build.gradle
do seu projeto realizando as seguintes alterações:
// ...
// ...
// ...
repositories {
mavenLocal()
// mavenCentral()
}
// ...
// ...
// ...
dependencies {
implementation("dev.kotlinautas:twitch4k:1.0")
// ...
// ...
// ...
}
É necessário obtero o token OAuth
. O mesmo pode ser obtido AQUI. Realize o login com as credenciais da conta do bot e, em seguida, será apresentado o token
de acesso da conta do bot. O tokem
possui o seguinte formato oauth:xxyyzz112233, copie a string e utilize-a para realizar a autenticação do bot.
O trecho de código abaixo exemplifica como utilizar a biblioteca. Lembre-se de realizar os devidos imports
no código abaixo (os mesmos foram retirados para deixar o exemplo enxuto).
// Classe que implementa as interfaces do Bot
class Bot : OnReceivedChatMessageListener, OnConnectedListener {
// Método executado quando o bot estiver conectado no IRC da Twitch
override fun onConnected(channels: List<String>, chat: Chat) {
channels.forEach { channel ->
chat.send(channel, "<3 A mãe ta on! <3")
}
}
// Método executado toda vez que o bot recebe uma mensagem do chat dos canais registrados
override fun onReceived(message: ChatMessage, chat: Chat) {
// Se a mensagem inicar com "!teste" o bot responderá com "Teste"
if(message.text.startsWith("!teste")){
chat.send(message.channel, "Teste")
}
}
}
fun main() {
// Variável de ambiente com a conta da Twitch do bot
val username = System.getenv("TWITCH_BOT_USERNAME")
// Variável de ambiente com o token OAuth de acesso à Twitch
val token = System.getenv("TWITCH_BOT_TOKEN")
val bot = Bot()
// Criação da instância da biblioteca
val t4k = Twitch4K(
// Nome de usuário da conta do bot
username = username,
// Token oauth da conta do bot
// (vide texto acima para maiores informações)
token = token,
// Lista de canais da Twitch
channels = listOf("canal_01", "canal_02","canal_03")
)
// Registra o evento de conexão com o IRC da Twitch
t4k.setOnConnectedListener(bot)
// Registra o evento de mensagem recebida de algum chat registrado
t4k.setOnReceivedChatMessageListener(bot)
// Inicia o Bot
t4k.start()
}
start()
- Bruno Lopes - [email protected]
- Felipe Nathan Campigoto - [email protected]