Git Product home page Git Product logo

beastiebot's People

Contributors

scryptonite avatar shipofgenius avatar talimavale avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

beastiebot's Issues

Interval for Hydration Reminder

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)

[Todo/Idea] Stream Overlay

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.

Create a Test Suite

You may want to create a test suite to ensure that code contributions don't accidentally break the bot.

Jasmine is a good testing framework, and you can use ajax.js to test Discord API calls.

This is a good article and video on Jasmine testing.

Fill in the README.md

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)

[TO DO] Beastie Treats

BeastieBot currency, beastie treats will be redeemable through Revlo and can be used to unlock special commands, perks and surprise

Project: Beastie Treats

Raid bonus is dispensed 2 minutes after every autohost "hosting" event.

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.

  • ✔️ When the raid bonus is handed out, Beastie is no longer in raid mode.
  • ⚠️ Refactored all of the raid logic into /commands/raid.js; I think this is more tidy and easier to parse, but I want to get your thoughts on whether you approve before submitting a PR. @teamTALIMA

Raid system should be off by default | Check for autohost vs manual

[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

[Todo] /events/followers.js should handle bonus awesomeness and should vet that new followers are actually new

/events/followers.js & /events/events.js:94-97

  • New followers should be verified as being new. This could be achieved by keeping a record of every new & existing follower in a database or simple .json file.
    • Bonus awesomeness should be handed out when there is a new follower — It was this way before, but since it is possible to abuse the system by unfollowing and refollowing it was removed.

👍

[BUG] Bot sends messages too quickly when not modded

Messages 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.

[Todo] Loyalty system because Revlo is shutting down

😢 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

[Todo/Idea] CLI Setup for /config/secrets.js

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.

  • "Hello! It appears that your /config/secrets.json has not been setup yet. I'm going to ask you a couple of questions in order to generate this file for you."
  • "What is your broadcaster's username?"
  • "What is your broadcaster's OAuth password? If you want to know where to get this you can get one at https://twitchapps.com/tmi/"
  • (Beastie could test the credentials and see if everything is OK before proceeding)
  • "What is your twitch bot's username?"
  • "What is your twitch bot's OAuth password? If you want to know where to get this you can get one at https://twitchapps.com/tmi/"
  • (Beastie could test the credentials and see if everything is OK before proceeding)

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.

[Idea] Twitter Integration

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

[ISSUE] Error Handling when checking for follows

 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.

[Todo] Discord Integration

  • Beastie should assign the appropriate roles in the Discord server when it can verify that they are following the broadcaster's channel.
  • Beastie should announce when the stream goes live.
    • Idea) Beastie should also edit stream announcements with a link to the VOD once stream has ended.
  • Some commands supported in the Twitch chatroom should also be supported in the Discord (possibly whitelisted per text channel to minimize chat clutter)

EDIT:

npm library choices

/events/followers.js references /beastie-functions.js but does not `require` 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. 👍

[Issue] Twitch sub bug

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.

[IDEA] Common bot feautres

  • custom commands
  • command for broadcaster to force bot to join #channel
  • spam protection
  • link permissions
  • set/message current game
  • set/message title
  • create/link strawpoll
  • loyalty/regulars system
  • song requests/player
  • random winner
  • Variables
  • countdown
  • Count
  • Games - bit boss, carnival games, magic 8 ball , fortune teller, bank heist
  • wikipedia query
  • url fetch

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.