talimavale / beastiebot Goto Github PK
View Code? Open in Web Editor NEW(OLD PROJECT REPOSITORY) A bot for Twitch (IRC) chatrooms and Discord servers
(OLD PROJECT REPOSITORY) A bot for Twitch (IRC) chatrooms and Discord servers
When the broadcaster channel automatically hosts another channel after a raid was started during the prior stream, Beastie will erroneously dispense bonus awesomeness as though each hosting event was a sign of a intentional raid on that channel.
Here's a screenshot of Beastie running the !bonusall
command after every autohost that occurred after last night's legitimate raid on SoMuchMonsters:
In the above screenshot we can see that Beastie decided to emit two raid bonuses. This is probably because the "hosting" event was fired multiple times.
As to why he didn't say "Time to raid! :D rawr" twice, I think this is because Twitch silenced the same message from being duplicate posted in such a short timeframe.
The next autohost did not fire multiple "hosting" events though, so it must be somewhat rare:
I have created a branch called scryptonite-patch-raids
to address fixing the raid logic.
Hosted control panel for beastie settings.
Seems to ignore people who've successfully attended a previous raid on the next !raidready
I started the Wiki. Wikis are just repos , so once I have the basics filled out I can submit it as a PR. Feel free to send your own PR to my wiki branch in the meantime.
😢 https://blog.revlo.co/the-adventure-comes-to-an-end-fa03f7fab84e
/cc @teamTALIMA
The Adventure Comes to an End.
Hello Revlonians!
2 years ago, we launched Revlo. During this time, more than 100,000 Twitch broadcasters chose us as their loyalty and chat games system. After powering interactions for millions of viewers, it’s been a truly delightful experience to work with everyone.
At the same time, we have been racing against the clock trying to find a sustainable business model. Unfortunately, we explored dozens of monetization options, and none of them were viable for a long-term business. As a result, we are deeply saddened to say that we are planning to shut down Revlo.
Starting from today, broadcasters will be able to export their viewers’ loyalty points in an CSV file. To do this, click on the banner at the top of the user dashboard. Once the export is complete, we will automatically deliver the CSV file to the broadcaster’s email.
In the mean time, RevloBot will continue to function for 3 weeks until June 16th. At the end of June, the site will officially shut down and exporting will no longer be available.
From the bottom of our hearts, thank you so much to all the broadcasters, viewers and everyone else who supported Revlo in this rollercoaster of a ride. It’s been a lot of fun.
James Sun
Co-Founder & CEO
The comments in the code in index.js at line 175 say that the hydration timer is supposed to be set for 28 minutes, but the code will actually repeat the function every 1 minute.
Either the timer needs to change, or the comment is wrong
(This issue was originally posted accidentally on the teamTALIMA_theGAME repo)
Just earlier today it appears Beastie exited the chatroom and never returned — I suspect this is because he wasn't updated with the latest fixes to how the follows endpoint is handled when it fails.
A command line program like forever
would do an excellent job at restarting him when he unexpectedly falls over and ought to rejoin the chat room.
As the title says, the rules go here: /timers/timers.js:60 😄
Currently a subscription is sent via PRIVMSG in IRC twice. Once when the viewer immediately subscribes and a second time when they click the share on the twitch site. This is currently breaking bots who are not tracking their subs locally. Beastiebot should correct for this.
EDIT:
npm library choices
npm i --save discord.js
— source codenpm i --save discord.io
— source codeMessages should be throttled or not sent at all if bot is not a mod
[02:20] info: Connected to server.
[02:20] info: Connected to server.
[02:20] info: Joined #trugamer_maniac
[02:20] info: [#trugamer_maniac] <tttestbeastie>: Hello everybody! :D I have awoken! Welcome back to trugamer_maniac's channel!
[02:20] info: [#trugamer_maniac] Your message was not sent because it is identical to the previous one you sent, less than 30 seconds ago.
BeastieBot currency, beastie treats will be redeemable through Revlo and can be used to unlock special commands, perks and surprise
Project: Beastie Treats
The wheel of awesomeness, new followers, donations and make it rain are just some of the things that Beastie could present in its own stream overlay.
A stream overlay would be exactly like how the Revlo and Streamlabs overlays work, a BrowserSource layer pointed to a simple page on a webserver that Beastie is hosting. On that page, it would poll or listen for stream events and then move HTML around accordingly — exactly like how others do it.
/events/followers.js references beastieFunctions
(/beastie-functions.js), but it is not require
it. Additionally it seems the .queryTwitchAPI(queryUrl)
export in beastie-functions.js is not syntactically correct JavaScript; pretty sure it was meant to be something along these lines:
module.exports.queryTwitchAPI = function (queryUrl){
return {
url: "https://api.twitch.tv/kraken/" + queryUrl,
headers: {
"Accept": "application/vnd.twitchtv.v5+json",
"Authorization": "OAuth " + secrets.broadcaster.password,
"Client-ID": secrets.clientId
}
};
}
I'll submit a PR for both asap 👌
Fixed in PR #3, commit 3353f4e. 👍
Basically the idea is to have Beastie ask the user questions via the command line interface when he is started for the first time and no /config/secrets.js
has been setup.
Technically since the clientId is not a secret, yours or another could be included in the default configuration. If not, he should probably ask them to give him one and tell them where to get it if they've never done it before.
Additionally, asking for the broadcaster and bot usernames are unnecessary steps, since the Twitch API is perfectly capable of taking an OAuth token and returning the username of who it belongs to (thereby reducing the number of steps to setup the secret.json).
Oh yeah, and since would be generated if this is completed, it would probably be best to change the secrets from being stored in a secrets.js
file to a secrets.json
, since the file only holds data.
There was a problem querying the Twitch API for follows:
{ Error: connect EACCES 54.148.125.194:443
at Object.exports._errnoException (util.js:1050:11)
at exports._exceptionWithHostPort (util.js:1073:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1093:14)
code: 'EACCES',
errno: 'EACCES',
syscall: 'connect',
address: '54.148.125.194',
port: 443 }
Its not happening every call, so its probably just a periodic connection issue and bad timing. What about:
if it cant connect, pause X seconds and try again. Go back to regular timer upon success.
Revlo API Documentation
It would be great if you could let team members know how to set up and run their own version of BeastieBot. A good place to do this is in the README.md file in the root of your repository. The contents of the file will be displayed right on the repository's page on Github.
You can find out more about how to format your Readme here.
(While you're at it, you might want to add a set of contributing guidelines, as well as a file that lets users know what license you're releasing your file under)
System to record/log all twitch chat from the broadcaster's chatroom
[08:59] info: Joined #trugamer_maniac
[08:59] info: [#trugamer_maniac] <matrix_agent>: Hello everybody! :D I have awoken! Welcome back to trugamer_maniac's channel!
Beastie's broadcasterID is: #
This is our channel id: 143283241
[09:00] info: [#trugamer_maniac] Now hosting chefjohnreed for 0 viewer(s).
We are hosting another channel :O
[09:00] info: [#trugamer_maniac] <matrix_agent>: Time to raid! :D rawr
[09:00] info: Executing command: JOIN #chefjohnreed
BEASTIE has joined another channel: undefined
BEASTIE is waiting 2 minutes for the raid.
[09:00] info: Joined #chefjohnreed
/events/followers.js & /events/events.js:94-97
Add moderator functionality so Beastie can handle infractions in the Twitch chatroom.
Project: Twitch Moderation
Kind of a low priority, but in the spirit of Beastie handling stream announcements on Discord, he could also handle automatically tweeting that the stream has gone live (and that stream has ended).
He could have his own twitter account for this purpose, since the announcements wouldn't be super personal per se.
EDIT:
npm library choices
npm i --save twitter
— source codenpm i --save twitter-node-client
— source codeA declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.