All Projects → codigofalado → Twitch Giphy

codigofalado / Twitch Giphy

Licence: mit
Um chatbot para Twitch que integra a API do GIPHY, fazendo com que hashtags no chat da Twitch virem GIFs na Live :)

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Twitch Giphy

Rocket.chat.apps Cli
The CLI for interacting with Rocket.Chat Apps
Stars: ✭ 37 (-5.13%)
Mutual labels:  hacktoberfest
Yii Queue
Queue extension for Yii 3.0
Stars: ✭ 38 (-2.56%)
Mutual labels:  hacktoberfest
Mvp
PowerShell Module to interact with the Microsoft MVP API
Stars: ✭ 38 (-2.56%)
Mutual labels:  hacktoberfest
Dmake
DMake is a tool to manage micro-service based applications
Stars: ✭ 37 (-5.13%)
Mutual labels:  hacktoberfest
Keycloak Admin Ui
Keycloak Admin Console
Stars: ✭ 38 (-2.56%)
Mutual labels:  hacktoberfest
Blaze
⚡ File sharing progressive web app built using WebTorrent and WebSockets
Stars: ✭ 991 (+2441.03%)
Mutual labels:  hacktoberfest
Cbj smart Home
If you are searching for an easy way to deploy a smart home 🏡 by yourself CyBear Jinni 🦾🐻🧞‍♂️ is here for you. Join the community and make your home smarter than yesterday.
Stars: ✭ 37 (-5.13%)
Mutual labels:  hacktoberfest
Pyflakes
A simple program which checks Python source files for errors
Stars: ✭ 991 (+2441.03%)
Mutual labels:  hacktoberfest
Rw.rs
Free shell account and web 1.0 hosting @ http://rw.rs/~you
Stars: ✭ 38 (-2.56%)
Mutual labels:  hacktoberfest
Entity Command
Manage WordPress comments, menus, options, posts, sites, terms, and users.
Stars: ✭ 38 (-2.56%)
Mutual labels:  hacktoberfest
Nsfw Filter
🚀 A Google Chrome / Firefox extension that blocks NSFW images from the web pages that you load using TensorFlow JS.
Stars: ✭ 984 (+2423.08%)
Mutual labels:  hacktoberfest
Puppet Redis
Puppet Module to manage Redis
Stars: ✭ 37 (-5.13%)
Mutual labels:  hacktoberfest
Swamp
Teh AWS profile manager
Stars: ✭ 38 (-2.56%)
Mutual labels:  hacktoberfest
Togglr
an R and Rstudio wrapper for toggl Api
Stars: ✭ 37 (-5.13%)
Mutual labels:  hacktoberfest
Mg
Minimal UI library based on relm (GTK+), written in Rust.
Stars: ✭ 38 (-2.56%)
Mutual labels:  hacktoberfest
Kubernetes Credentials Provider Plugin
Credentials provider that allows storing credentials in Kubernetes
Stars: ✭ 37 (-5.13%)
Mutual labels:  hacktoberfest
Be Pretty
💄 a small CLI utility for every lazy prettier maximalist out there
Stars: ✭ 38 (-2.56%)
Mutual labels:  hacktoberfest
Spreed
📞😀 Nextcloud Talk – chat, video & audio calls for Nextcloud
Stars: ✭ 994 (+2448.72%)
Mutual labels:  hacktoberfest
Dbdpg
Perl Postgres driver DBD::Pg aka dbdpg
Stars: ✭ 38 (-2.56%)
Mutual labels:  hacktoberfest
Newsscraper
Stars: ✭ 38 (-2.56%)
Mutual labels:  hacktoberfest

twitch-giphy

Read this in other languages: Portuguese

A Twitch chatbot that integrates the GIPHY's API to learn Typescript

Must Have

  • [x] - Interact with Twitch's chat
  • [x] - Capture a specific command from the users (everything that starts with !giphy)
  • [x] - Remove !giphy and take the remaining term
  • [x] - Send the remaining term to GIPHY
  • [x] - Return the first GIF from GIPHY'S API
  • [x] - Render the GIF on screen
  • [x] - Remove the GIF from screen 8 seconds later
  • [x] - Create a class in Typescript to deal with the chatbot/server
  • [x] - Allow other shortcuts to insert GIF on livestream (!giphy, !gif, #)
  • [x] - Modify GIF screen (Browser) to show the Username + Ballon HQ style around all GIF
  • [x] - Allow to determine different number of seconds for normal users and subscribers
  • [ ] - Refactor to allow all streamers in the WORLD to make use of this WONDER of nature that REVOLVES Livestreams :)

Nice to have

  • [x] - Do a GIF row to make sure every GIFs will be displayed
  • [ ] - Be able to set who can use the commands (everyone, only followers, only subs, VIPS, Mods etc.)
  • [x] - README in English
  • [ ] - Automate a deploy to AWS (always available)
  • [ ] - Implement X cooldown seconds to avoid FLOOD
  • [ ] - Allow integration with other plataforms besides Twitch
  • [ ] - Allow multiple commands (!gif, !giphy)
  • [ ] - Allow define a PRICE to the command (BITs, Channel Points)

Configuring the Project

Configuring server

Before all, you need to config the API options from Twitch and Giphy.

Create a environment variables file (.env) indentical to file example and modify the informations according to the values below:

  • TWITCH_USERNAME, your username or your bot's
  • TWITCH_TOKEN, you can get from https://twitchapps.com/tmi/
  • TWITCH_CHAT_CHANNEL, normally is the same as your username
  • GIPHY_RATING, accept only the values 'y' | 'g' | 'pg' | 'pg-13' | 'r'
  • GIPHY_TOKEN, you can get from https://developers.giphy.com/

With this config, when the chatbot be implemented on a service like aws, netlify or other plataform, it will be only necessary to define this values on the plataform.

Configuring exhibition

To customize the exhibition, go to file client/index.html and search for:

  • It's not necessary to provide all the options, because they all have a default value
<script>
  window.addEventListener("load", () => {
    const options = {
      duration_default: 4, // Optional: value in seconds (default value is 4)
      duration_sub: 8, // Optional: value in seconds to subs (default value is 8)
      max_queue: 10, // Optional: quantidade máxima de gifs na fila (default value is 10)
      separator: ":", // Optional: separator between the user and the message (default value is :)
    };
    const twitch_giphy = new TwitchGiphy(options);
  });
</script>

Installing the dependencies

Open the terminal at the same directory that contains the file package.json, and execute:

npm i # short form to 'npm install'

Compiling the project

Open the terminal at the same directory that contains the file package.json, and execute:

npm run build

Executing the project

Open the terminal at the same directory that contains the file package.json, and execute:

npm start
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].