GithubHelp home page GithubHelp logo

crowbartools / firebot Goto Github PK

View Code? Open in Web Editor NEW
305.0 26.0 88.0 168.94 MB

A powerful all-in-one bot for Twitch streamers

Home Page: https://firebot.app

License: GNU General Public License v3.0

JavaScript 66.23% HTML 3.90% SCSS 3.37% EJS 0.05% TypeScript 26.44%
streamer streaming firebot bot twitch twitch-bot twitchtv chatbot

firebot's People

Contributors

alfw avatar brumoen avatar cabaleirog avatar cavemobster avatar cky- avatar coderbrad avatar dbkirk4211 avatar deekyjay avatar dennisrijsdijk avatar dependabot[bot] avatar ebiggz avatar ebrayton avatar finewolf avatar firebottle avatar heyaapl avatar iamdadmin avatar joerucodes avatar jstnrp avatar kateract avatar mgway avatar patchtechtwitch avatar pirak avatar raimen-ttv avatar roger avatar samuel38 avatar senepa avatar sreject avatar theperry-2015 avatar zersiax avatar zunderscore 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

firebot's Issues

Tooltips

The app already has some basic tooltip functionality, however we need to make a pass so that these pop up for all options. They also need to be styled better.

Update notifier on beta

I'm only updating the json on firebottle.tv for full releases to notify people. However, this means that people using beta versions get an update notification for older versions. For example 1.1.0-beta gets a notification to upgrade to 1.0.0.

Shared button cooldowns don't always work

I have two buttons set up to share a cooldown, Button 1 triggers the cooldown on both buttons consistently, but Button 0 only triggers its own cooldown most of the time. I also occasionally get a disconnect and error message stating "Error setting up robot events in setupRobotEvents." but I don't know if this is related.

Background image issues

If you have enough content in the main part of the page that you need to scroll down, you end up scrolling past the bottom of the picture. Background needs to be fixed position.

Ctrl + Backspace conflict

Hey, FireBottle! I just wanted to say that I use Ctrl + Backspace every time I type. It actually deleted entire words at once and is a very helpful shortcut, especially when streaming and you need to type fast. Is there any way we can rebind this key to something barely used like Alt + Backspace? or Ctrl + Tilde, Alt + Tilde?? The program is looking super sweet already, and I can't wait to see more progress!

Button Logging

We need to put together a screen somewhere that shows all of the activity currently taking place. We could do a real time section with text spam coming as quick as the buttons are pressed and then a separate list which has a running total for each button.

Options:

  • Local Time
  • button id
  • button name
  • button type
  • number of presses
  • Moderation tools? (click a button to send disabled to beam)

Favicon

We need an icon for the app!

Button: Image Overlay

This would be a new button. When it is clicked it would send a websocket message over to an HTML file the streamer has loaded up in their streaming software. When the message was received an image or gif would be shown for X seconds.

  • Image selector w/ validation
  • Time to show
  • Screen positioning. (X/Y Coords or do we go with "Top Center", "Top Left" etc... dropdown?)

Error Handling

Right now there is very little in the way of error feedback. For example, if someone doesn't toggle press frequency or holding for a key in the dev lab. This should be reported to the user somehow so it can be fixed.

Feature Request: Move sound-files into the directory structure of the bot?

I've not looked into this yet, but I think it should be possible with the fs module to move/copy the selected sounds into the directory structure of the bot inside the user-settings part. This would make it pretty hard to lose a sound file just because you accidentally removed the sound from your download folder when you cleared it all out because it was cluttered with all kinds of stuff.

Ahemm, this totally hasn't happened to me.. xD

Threshhold

Add the option for all buttons to have a threshold number. This would allow a person to say, "only run this button when it has been clicked X number of times." The biggest issue being we'd need to keep track of the number of clicks in the app so that we could display the appropriate progress indicator amount.

OAuth Login Issues

Sometimes trying to log in to the app via OAuth people run into issues. The OAuth window will pop up, but doesn't wait for any user input and closes immediately. After that, it doesn't seem to update the UI.

Cooldown held buttons

You can currently set cooldowns for held buttons, which means you can't hold them anymore. Need to make note of this in the tooltip.

JSON Importer

BeamChatPlays has a JSON importer function which lets you copy JSON from the Beam dev lab and paste it into the app in order to quickly create all of the buttons. We need to incorporate this into Firebot as well. The script should mostly be done, but we need to account for the new html structure and also multiple button types.

White Loading Screen

When the app is first starting up the window is white until the app can load the main html file. We need to keep the window hidden until it finishes loading to avoid that white screen and load smoother.

Cooldown Length

The field validation isn't allowing cooldown length to be blank. Need to remove requirement for that field.

Board Manipulation

We need to add a few additional options for modifying boards.

  • Renaming current boards
  • Duplicate a board

Board disconnects

Whenever a button is pressed on my board that is successful and not tied to a spark cost(in dev lab) Firebot disconnects and I get error message: "Error setting up robot events in setupRobotEvents." However, when I leave error message open, Firebot stays connected and board works fine.

Version Checking

We need a way to check on app launch for new versions of the app.

Button Field Validation

We need to validate all fields before the user is able to submit them. This will help us dodge app breaking errors when the emulator tries to parse cooldowns and key presses. Most likely this can be done using the jquery validation plugin.

Button: State Change

This button would allow people to change between the different interactive board states. This means someone could have sounds on one board, and if you click a button it could go to game controls.

Options:

  • Interactive State Name

Disconnect Errors

The disconnect function in beam-connect.js will try to kill the robot even if the robot has not been created yet. It probably needs an undefined check.

Right now it throws a console error if you try to disconnect somewhere before the robot is made.

Version Checker Errors

The version checker is supposed to match the apps version in the package file to a json file on firebottle.tv and if they are different it should display a new version message with a link to the github releases page. Right now this works perfectly in dev, but upon building the app it breaks.

Button configuration save

The last change to the button form validation made some weird animations when saving button settings. Sometimes it animates it just nicely away and other times it just pushes you back to the "Start" page of the application with a white flash.

Button: Custom Scripts / Custom Web API calls

Add in a new button that, when clicked, will load up a JS file and run a function. This would allow people to run custom scripts. This would be a very dangerous option for most people, so we'd need to have people specifically enable it in the settings area with some type of warning.

No cooldown button issue

If a button has no cooldown it's still being sent the "disabled" state which causes it to have around a one second cooldown. It should not have this at all.

Save Confirmations

We need some sort of visual save confirmation when users save any info.

Credits Page

We need a credits page so any contributors and testers can be listed!

Sound Attachment

Recommendation from people to allow attaching a sound to any type of button instead of only sound buttons.

Build Errors

When trying to build the app there are a few different errors.

  • Settings menu doesn't save or cancel.
  • Add button, delete board, and launch interactive buttons show on interactive page despite there being no board in the list.
  • Version does not get added to title bar.
  • Version checking does not display alert despite the versions not matching.

API Buttons -> Talk as bot or Streamer

The last beta(which btw has the wrong version # in package.json so it still says there is a new update) adds the option to post things to chat as the bot or the streamer based on settings, but at the current version it seems to chose bot/streamer on random instead of based on setting. I have setup one button with API Buttons -> Advice and set it up with Bot as chatter. When button is pushed it chats as bot or streamer, next time I connect it can be the other one. So it seems like somewhere in the code it mixes up pr connection.

Sometime the log outputs
Logged into chat as Bot
Logged into chat as Streamer

And other times vice versa:
Logged into chat as Streamer
Logged into chat as Bot

Not sure if the order it connects has something to do with this, since it seems that even if it says bot last it still post as either one of them even if the button is set to Bot. Just thought I should mention it.

Added a log line into apiProcessor.js at line 32:
if(apiType == "Advice"){
randomAdvice(chatter);
console.log("Talking as: "+chatter);
}

To see who the app itself thinks he is posting as, and as the board setting is set to Bot the variable chatter = bot according to the log
Talking as: Bot
But still it posts to chat as the Streamer so something isn't obeying the chatter setting later on in the code.

And I still have some issues with #30 now and then, specially if I add more than 2 cooldownButtons in the button settings. Just to mention that.

Celebration Effects

We need to put together a button that can send a message via websocket to an overlay in the streamers software. This button would trigger celebration effects.

  • Fireworks
  • Confetti

Killswitch Info

Ctrl + Backspace is the toggle to go interactive or kill interactive. It works inside games and lets you take control of everything until you're ready to accept interactive inputs again.

However, there is no place in the app that mentions this shortcut exists. It needs to be pretty up front.

Connected Count

Progress reports pass over the number of connected users and the number of people using the controls. We should take this information and show it somewhere in the app so people get a good idea of how many people are still using the controls.

Button Menu Field Validation

The validation for the button menu fires at a weird time after saving. It fires after the fields clear, but before the menu closes. This causes the user to see a flash of red on everything for a second.

Tooltip covered up

Button menu tooltips are actually slightly covered up. Z-index needs to be set higher on these.

Login Flow

Right now both the streamer and bot login works by grabbing oauth info for whoever is logged in on Beam at the time. This means the login flow is somewhat confusing.

Current:
Login to beam as streamer -> login to app as streamer -> go to beam and log out -> log into beam as bot -> log in to app as bot

Can we fix this by opening the auth window in the app as "incognito" and force a sign in for both?

KBM-Robot Integration

Need to add in a second emulation method using KBM-Robot which is different from robotjs because it uses java. This means it works in a few games that robotjs doesn't work in.

Game Controls w/ RobotJS

Adding in game controls with the ability to emulate keyboard and mouse movements using robotjs.

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.