Git Product home page Git Product logo

supibot's Introduction

Supibot

Main repository for the multi-platform, novelty and utility chat bot Supibot.

Platforms

Supibot can and is currently run on four distinct platforms:

I want to use Supibot!

Pick your platform, and follow these steps:

Platform Directions
Twitch channel Fill out this form.
Discord server The administrator of given server should PM me on Discord - simply join my server and you can PM me immediately. Keep the Discord-specific rules in mind too!
Cytube room Fill out this form.
IRC channel Currently only active on Libera. Contact me for more info.

To contact me, see Contact on my website.

Running own instance

It's possible to host your own instance of supibot. You can either set it up as a node app manually, or use the docker image.

Follow the guide if you are interested, and contact me if you have any questions or notes.

Also check out the modules configuration file for a brief guide on how to enable/disable a specific set of commands or other modules.

DankChat integration

The DankChat mobile application for Twitch chat uses Supibot's API in order to hint its commands in any channel Supibot is actively in! It's a wonderful app to use on the go, and I endorse it.

Further reading

supibot's People

Contributors

33kk avatar 5e7en avatar alazymeme avatar boring-nick avatar brian6932 avatar bun avatar caglapickaxe avatar danielrx avatar defman21 avatar dependabot[bot] avatar douglascdev avatar etztrefis avatar eulehaken avatar heryin avatar ilya-zlobintsev avatar jprochazk avatar kararty avatar leppunen avatar mm2pl avatar mrauro avatar nerixyz avatar notnotquinn avatar randers00 avatar supinic avatar talkashie avatar tetyys avatar thcxd avatar tintinmaster avatar zneix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

supibot's Issues

bot cannot connect to redis

hello,

the docker-compose file which is in the documentation seems to not work correctly. mysql and redis starting up, but the bot cannot connect to redis. It seems the config for redis isn't written correctly to the DB.

$reload fails

Initial command $reload fails:
TypeError: sb.Runtime.incrementScriptHotloaded is not a function

[Request] Option to set custom cooldowns on commands

More or less title. If a general option is made for this, I am specifically looking for something to change cooldown on $fill.

I suspect there might already be something like this, but I looked through docs and code (I'm not great at JS though) and can't find a command to change it.

Discord mention parsing is greedy

Context:
Within a discord server that has a member with username 13#XXXX

If I do $remind discordUser in 30s Hello and their discord id is: 13XXXXXXXXXXXXXXXX, when the command resolves, it will ping the 13#XXXX user, not the user I targeted with $remind (the discordUser)

Can't start supibot

Hello, I have tried to setup using docker and the manual way and it didn't work.

With docker I got connection refused from redis: https://prnt.sc/rS015BtFlITy and with manual way: ```Initialization of twitch controller module failed CustomError [sb.Error]: Ambiguous platform name - use host as second parameter

  • arguments: {"identifier":"twitch"}

The `data.Origin` setup script fails because of foreign key contraints

When I tried to get $origin to work (which I still didn't get to work because I think I first need to run a few INSERTs I think) I found that the SQL-Command does not work because of the foreign key constraints. I fixed that by changing Raffle_Winner, Author and User_Alias from INT(11) to INT(10) UNSIGNED on my instance because chat_data.User_Alias.ID does have that type.

To debug that I ran that command without the constraints and added those later with ALTER TABLE data.Origin ADD CONSTRAINT [...].

The Select on data.Timezone for $time fails

I have just created the table listed under https://github.com/Supinic/supibot/tree/master/commands/time and got the following as an error in chat_data.Error then I ran the $time command:

SqlError: (conn=4064, no: 1064, SQLState: 42000) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Offset, Name
FROM `data`.`Timezone`
WHERE (Abbreviation = 'australia')
LIMIT 1' at line 1
sql: SELECT Abbreviation, Offset, Name
FROM `data`.`Timezone`
WHERE (Abbreviation = 'australia')
LIMIT 1 - parameters:[]
    at module.exports.createError (/root/supibot/node_modules/mariadb/lib/misc/errors.js:61:10)
    at PacketNodeEncoded.readError (/root/supibot/node_modules/mariadb/lib/io/packet.js:572:19)
    at Query.readResponsePacket (/root/supibot/node_modules/mariadb/lib/cmd/parser.js:55:28)
    at PacketInputStream.receivePacketBasic (/root/supibot/node_modules/mariadb/lib/io/packet-input-stream.js:82:9)
    at PacketInputStream.onData (/root/supibot/node_modules/mariadb/lib/io/packet-input-stream.js:132:20)
    at Socket.emit (node:events:514:28)
    at addChunk (node:internal/streams/readable:343:12)
    at readableAddChunk (node:internal/streams/readable:316:9)
    at Readable.push (node:internal/streams/readable:253:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)

After little playing around with the SQL-Statement in MariaDB I found out that it seems to be the problem, that the Offset column name is not quoted.
When I did SELECT Abbreviation, `Offset`, `Name` FROM `data`.`Timezone` WHERE (`Abbreviation` = 'australia') LIMIT 1; it succeeded with an empty set (as expected), but when I did SELECT Abbreviation, Offset, `Name` FROM `data`.`Timezone` WHERE (`Abbreviation` = 'australia') LIMIT 1; it failed with the above-mentioned error.

Not sure if that issue is for supibot tho, because I think supi-core handles the whole SQL stuff...

Add support for chat connectors as separate microservices

It would be very useful for certain scenarios to implement chat connectors as separate services, rather than being part of supibot. For example, supibot could be restarted without connecting all of the channels.

It could also potentially simplify the inevitable forced migration to eventsub for twitch chat connections.

Current infrastructure choice is to use Redis streams.
More information about planned connector design here: https://github.com/Supinic/supibot/tree/platform-connectors-manifest/connector-docs

Example connector for IRC: https://github.com/boring-nick/supibot-connector-poc

Add raw data to commands' outputs

Long term functionality proposal

It would be quite nice to have "raw data" as a result from commands. Right now, the only way to extract any data from a command being used is to parse it out of the reply string with regular expressions and such.

If each command would return a wrapper of data all related to the execution, creating custom command chains and pipes would be a lot easier.

This discussion follows from since-archived SPM repository. For more info or context, check here: Supinic/supibot-package-manager#90

Discussed with @2547techno and @NotNotQuinn

Update documentation to respect missing `user:manage:whispers` scope of twitchapps.com

I was able to set up my own Supibot instance, but whispers didn't work (I was able to solve it, more below).

The first problem I had was that Self_ID was not set in the DB, which caused an error that from_user_id was not set for whispers.
Then I had the problem of a missing scope user:manage:whispers because the linked token generator did only have the scopes chat:read+chat:edit+channel:moderate+whispers:read+whispers:edit+channel_editor which did not contain user:manage:whispers (which I than added through Inspect Element).
After that, I made the mistake that I generated the token for the wrong account (my main instead of the bot)
After that, whispers worked.

So I see 2 ways to solve this:

  • Update the Markdown files that link to the page (I currently only see it needing to be adjusted in the Setup page) to e.g. https://twitchtokengenerator.com/
  • Contact the owners of twitchapps.com to update their scopes

Since I fixed it myself, I don't really care about it being documented, but I think it might help others that might have the same issue because I needed quite some time to find out what the problem was because I didn't know about the chat_data.Log table (I used the interactive guide) and only found it by looking through the code (of supi-core iirc).

The `$remind` table has an enum of `ENUM('Pingme', 'Reminder')`

I currently do not have access to my running Supibot instance, so I try to write this from my head. $remind has worked until I used the after: parameter. To use that parameter I had to change the column type from ENUM('Pingme', 'Reminder') to ENUM('Pingme', 'Reminder', 'Deferred')

Sir, will you be able to help me add bots to the channels ? https://3reo.com ?

Hello Sir. My name is George Anton, I currently work as a security guuard in Culver City, California. I'm a regular guy, paycheck to paycjheck. I paypal-ed to Xaetai, his real name Donald, a cytube contributor $100 to install cytube on my AWS account with few modifications like in the attached pics below. After a basic install, the dude got corona, or something happened I don't know, he dissapeared with the money and everything. Left me with the unfinished website https://3reo.com :) Sir, will you be able to help me add bots to the channels they are listed on the main page and to add the screen on the main page so a regular user can just change the channels like regular tv? https://3reo.com interface to look like below?
main page: https://i.imgur.com/q8cQy7g.jpg
admin page: https://i.imgur.com/hbQFtn7.jpg
feel free to call me anytime.
thanks a million,

George Anton
Los Angeles
310-927-9552

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.