Giter Club home page Giter Club logo

better-mixer's People

Contributors

cfultz avatar gevmixer avatar keenjus avatar smashdamn avatar sunbrokuu avatar teaiogejaiogeja avatar theunlocked avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

better-mixer's Issues

onload in content.js often isn't called in Firefox unless developer window is open

This is an insane bug, and I have no idea what's causing it. I thought it had to do with a race condition and the onload property being overwritten, but when I switched it to window.addEventListener('load', ..., false), the same behavior occurred. document.body.addEventListener failed every time. The behavior occurs on both development and release packages.

Thank You

Thank you for working to make Mixer better. RIP Mixer, long live Facebook Gaming.

Perhaps you can start working on improving Bitwave next Kappa

Sometimes messages already in chat will not undergo emote replacement.

All future messages will however. This is an interesting one. It might have to do with selectors being a bit too conservative regarding which messages they'll replace, and maybe there's a sort of intermediate state without replaceable text that the observer sees (and does nothing with) when the chat first loads...

This also doesn't happen every time and there's no know reproduction. Refreshing fixes it.

⚙️Feature-Request: Autoselect Filter-Option (language)

Heyho what do you think about an "auto choose selected language"-Feature?

What I mean by that is if you click, for example, on the "popular streams" page, you have to choose your desired language (for example, German, Spanish, English, etc.) again and again. It would be great to have some sort of autoselect my "default" language on the filter with the "?languageId="-Tag in the URL.

Example:
https://mixer.com/browse/all?languageId=en
https://mixer.com/browse/all?languageId=de
https://mixer.com/browse/all?languageId=es
etc.

I know this could be a bigger "thing" todo but I guess this would be extrem helpful to find first what you're looking for (in your choosed language) and a cool addition to make mixer a bit better (again) ^^'

Let me know what you think. :D

Switch to `browser` WebExtension API namespace

Followup to #21

Firefox supports the chrome namespace, but Chrome does not. That said, the browser namespace is more likely to be supported in general (e.g. Edge uses browser) so I might want to switch over to that using the polyfill at some point. This is not urgent at all and hopefully I'll never have to do this because Chrome will start supporting the browser namespace, but we'll see.

Using web-ext for easier development on Firefox

Since you've added node to the project I thought it would be a good idea to use web-ext.

It has a "run" command for quickly launching Firefox with the extension installed + hot-reload that reacts to code changes.

You can close&ignore this if you feel that web-ext is too "bloaty" :)

Support channels with multiple chat tabs

There are three things that could cause multiple chats:

  1. Watching a VOD. This is quite trivial to fix, as both chats are loaded at the same time and one is marked with the tag b-channel-chat-replay instead of b-channel-chat. There may be some complications with when elements are loaded, but that shouldn't be too hard to resolve.
  2. Hosting a user. Here, the two chats are completely separate, and only one can be loaded at a time. This is tricky because everything will need to be hotswapped without a reload (or at least not a channel reload. A reorganization of chats and channels could make this trivial, though that reorganization would not be). Fortunately, Mixer is kind enough to provide b-channel-chat-tabs>bui-tab-label>bui-tab-label for accessing the users' names via innerText, and it also helpfully marks the host and hostee in the value attribute of the bui-tab-label elements.
    2.1. HypeZone. This is the exact same mechanism as a normal host except it has some fancy graphics attached. For the purposes of Better Mixer however, they don't need to be differentiated.

Fortunately, detecting these types of multiple chats is fairly easy.

Better Mixer emotes won't render in new messages with Elixr installed

There are two parts to this issue:

  1. Elixr gives plain text spans the class me-custom-emote, which conflicts with Better Mixer's [class*="emote"] blacklist on patching emotes.
  2. Even if that part is fixed, the emotes are placed inside of the plain text spans rather than at the top level of message contents. This also conflicts with Better Mixer's rendering in complicated ways.

Any fix to this issue will need to be on the Elixr's side.

Quality Selection

It would be nice to have an option to select a pre-defined quality when loading a stream. As it stands now Mixer serves up the highest quality available, which is pretty wasteful. I don't need 1440p video in a like 900p sized player. As a matter of fact most of the time I prefer a pretty low resolution.

Feature-Idea - Toggle "resizing" of Chat

image
Would be great if it's possible to add a switch to enable/disable resizing of chat. Sometimes I accidentally moving the chat in size and this would simply fix this if resizing is toggleable. :D

And ofc as always thanks for your hard work on this <3

Allow channel customization through 1x1 image in description exploit

In source mode for editing a channel description, someone can copy and paste this at the end:

<img alt="anything goes here" src="https://upload.wikimedia.org/wikipedia/commons/c/ca/1x1.png" />

Better Mixer could be able to read the alt tag, thus allowing streamers (and channel editors?) to add custom channel settings without needing to host anything on my end or have any visible impact to the end-user (the 1x1 pixel image is not visible in the description).

A user-friendly channel settings editor could be easily created by creating a simple static page on my GitHub Pages site which would let people configure their channel and then spit out the image string (with instructions on how to properly add it to your description).

This could also be used to replace twitchsync.json and the sync form, though it would need to be kept in the repo for backwards compatibility, at least for a while.

Other channel features which this feature could allow include:

  • Permitting Twitch/FFZ/BTTV global emotes
  • Allowing Mixer subs to use Twitch subscriber emotes
  • Allowing streamers to designate "VIPs" (though I wouldn't be surprised if this feature came to Mixer natively)
  • And more!

Expand bot color feature

Make there be three modes:

  1. None (disables bot colors)
  2. Simple (current functionality)
  3. Advanced (allows users to specify their own regex strings for bot color matching)

Switching between these without requiring the user to refresh would be an interesting challenge. There's also the issue of settings UX. Re-implementing the dropdown box would probably be possible, but tricky.

Sometimes, badges will mysteriously duplicate

There is no know way to reliably reproduce this, but it likely involves moving between channels without reloading the page. The cause is Patcher's ON_MESSAGE event listener being called multiple times, but it's unclear what causes that to occur.

Mixer classes are being obfuscated

I need a smarter solution to find what the classes are called. Unfortunately, this makes css a lot harder, as I can't update that at runtime as easily.

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.