Coder Social home page Coder Social logo

ppshow's Introduction

ppShow

show most used emotes of twitch chat

Special credits to twitch.tv/omeiaum for the idea, i just coded it
'dvd mode' may NOT work properly in Firefox, please prefer chromium based browsers (like Chrome)
TY <3

BASIC USAGE:

If don't want to download just reach at homepage and start using!

  1. Dowload both tmi.js, manifest.json and ppShow.html
    • OR clone the repo (click on code -> download zip)
    • OR go to Releases and download the latest

manifest is not required, but if you want to host it somewhere it will enable some PWA features

  1. Open the ppShow.html with your browser
  2. type the channel name in the input and click "connect"
  • You may wanto to click on settings to change:
    • theme (dark/light)
    • minimal amount of mentions to show an emote
    • zero the emote count after a certain amount of messages
    • enable 'dvd mode' to make image bounce on your screen sides
      • change speed, speed random multiplier and leave or not the trace
    • enable debug to print messages on devTools console (inspect/ctrl+shift+i/F12 key -> console)
    • change emote size

these options are available to change directly in the code, look at the object data: { options: {...}}

  • Emotes not changing/appearing or it's too slow/fast?

    • Click on options and change 'minimal aount os mentions' and 'Zero the count...' to lower/higher numbers
  • 'DVD Mode'?

    • Bounce the image on screen sides, just like the dvd logo, but with emotes
    • Click on options and mark the "DVD Stant-by bouncing" to enable
    • Mark "Don't clear canvas" to keep the path as the image moves
  • Hotkeys:

    • 'Esc' to close popups (options and news)
    • 'o' to show/hide options
    • 'c' to connect/disconnect
    • 'h' to show/hide connection info
    • 'n' to show/hide news announcement card

can be disabled in options

auto disabled if an input (text fields, checkbox...) is focused

  • Other
    • add a #hash with channel in URL, it will be setted as channel

      • if 'autoconnect' is enabled will get priority over options
      • Usage: add #<channel> in URL
      • Example: https://pp-show.vercel.app/#gnitoon
    • add ?hide=news,info to hide changelog popup

    • add ?autoConnect=true to toggle autoConnect when page is loaded

      • requires reload to take effect, you can remove it then
    • to use both hide and autoConnect do it like this:

      • https://pp-show.vercel.app?hide=news&autoConnect=true#channel
    • code is a bit 'beginner' friendly, major part of JavaScript code commented/roughly explained

    • If you need a older version go to /archive/ppShow[version].html

DEMO video

https://user-images.githubusercontent.com/80431627/110715426-fbfaa980-81e3-11eb-951f-cb03c3c89904.mp4

IMPORTANT NOTICE:

Both options 'zero after messages' and 'min. mentions' affect how often they will appear on screen keeping low values (ex: -1 and 5) in both will make it change faster. This will depend on chat speed and the ammount of messages.

For most cases 5~ and 20~ will be good for 'emote bursts'
That is, zero the count every 20 messages and if have more than 5 mentions show it

Known issues

  • Image not being redrawn sometimes - Emote not change in canvas on Firefox
  • No support to Edge legacy

Why everything in one file (HTML, Js, CSS)?

Easier to distribute, better just download one file and open it. And i could just copy and paste the entire code to update without starting a local git repo.

now, really, don't do that for larger projects. cases like this, a small application is 'fine' i guess, but don't do that if is not needed.

i do not code like that always.


tags isn't that great for spacing too i know, but is less tedious than mess with CSS for a simple thing

Credits:

LICENSE: MIT

ppshow's People

Stargazers

 avatar  avatar

Watchers

 avatar

ppshow's Issues

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.