GithubHelp home page GithubHelp logo

anikolop / gifbot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fiercekittenz/gifbot

0.0 1.0 0.0 1.88 MB

GIFBot is an interactive Twitch bot free to download and use to bring fun to your streams!

License: GNU General Public License v2.0

Shell 0.06% JavaScript 0.81% C# 25.92% PowerShell 0.11% CSS 48.78% HTML 24.19% Inno Setup 0.07% Batchfile 0.01% SCSS 0.06%

gifbot's Introduction

GIFBot

GIFBot is an interactive Twitch bot written by https://twitch.tv/fiercekittenz and has been in development since early-2016. It is an ASP.NET application with a Blazor WASM front-end. As a caveat, this is a personal project developed in my fleeting spare time. This means you may see a lot of "TODO" commentary for things I absolutely intend to do, but have yet to find the time or a stable method of cloning myself.

High Level Architecture

Server

The GIFBot.Server project is the backbone. It's using SignalR to allow for bi-directional communication with the Client. The server is made up of "Features" that have their own data, threads, and core functionality. These features are added to the GIFBot instance, which is the core class managing the Twitch connection and feature access. The GIFBotHub is your SignalR hub for receiving messaging from the client.

Client

The Blazor client provides several browser source pages. In order to avoid "chicken vs egg" problems on startup order, the browser source that users have for broadcaster software is an HTML page that periodically pings the server to see if it is running or not. Once it successfully gets a response, it navigates to the Blazor page that will handle the various feature. Only a handful of features have front-end components to them (animations, stickers, countdown, goalbar, etc.). This is done so that if you open OBS before GIFBot, your browser sources do not report errors, requiring a refresh from cache.

Utility and Shared Code

Anything that needs to be used by both the client and server projects is in the Shared project. This includes data models and utility classes.

Planning and Future Releases

Typically I alternate my release planning to allow for one iteration of feature additions and community requests, with a second iteration where I perform architectural improvements. I publicly track tasks for each release as well as the backlog on Trello: https://trello.com/b/KMmvrIgA/gifbot-r Do not hesitate to start a conversation or issue here on Github if there's something you'd like to suggest!

Contributing

If you wish to help with GIFBot, you will need a license for the Progress Telerik Blazor UI Components. They are very powerful components provided courtesy of Progress Telerik and make up the bulk of the client-side. You can obtain a 30-day license to trial it, but you'll have to qualify the namespace to the trial version - make sure not to include that namespace change in your pull requests.

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.