1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-08-08 07:10:54 +00:00
Commit graph

47 commits

Author SHA1 Message Date
lemonslut
a69832e3a3
eslint: run pnpm eslint --fix 2025-06-19 15:09:42 -06:00
SirStendec
1d046fca2b 4.76.0
* Added: Setting to control the priority of third-party emote providers. This lets you, as an example, prioritize emotes from 7TV over BetterTTV. Note that these priorities are still secondary to emote source priorities (personal emotes > channel emotes > global emotes). (Closes #1587)
* Added: Setting to replace the native player 'Clip' button with a custom button that better fits the style of the other buttons. (Closes #1580)
* Fixed: Highlighting messages from users with open viewer cards not working correctly with alternating background colors enabled. (Closes #1581)
* Fixed: Various directory features not working correctly. (Closes #1588)
* Fixed: Emotes unlocked with channel points appearing on FFZ emote cards with the source 'CHANNEL_POINTS'.
* Fixed: The Experiments UI failing to load correctly if an experiment has no name.
* Experiments: Preparing for a new PubSub experiment.
* API Added: `emotes.setProvider(provider: string, data: {name: string, icon: string, description: string})` for registering an emote provider. This is used by the new setting to let users customize emote provider priorities.
* API Added: All modules now have a `addon_manifest` property which will contain the add-on's manifest if the module belongs to an add-on.
2024-12-03 16:15:11 -05:00
SirStendec
0ffc041c0c 4.74.0
* Added: Support for Twitch's new Shared Chat feature. When a Shared Chat is set up, FrankerFaceZ will let you use emotes from any of the channels in the Shared Chat. Additionally, there are minor changes to how chat lines are rendered in line with the native Twitch experience to display which channel a given message originated in.
* Fixed: Issue where FrankerFaceZ was not correctly locating some Twitch web app internals.
* Fixed: Issue where your bits balance would display on the Power-ups and Rewards button despite having the option to hide the bits UI enabled. (Closes #1543)
* Fixed: Avatars still having some rounding when using the setting to disable rounding. (Closes #1540)
* Fixed: Issue where `site.chat`:`addNotice()` could throw an error if calling it before we have extracted the current chat types from the Twitch web app.
2024-09-20 13:30:11 -04:00
SirStendec
675512e811 4.58.0
* Fixed: When unloading an emote set, also unload its CSS block.
* API Added: `badges.removeBadge()` method for removing a badge from the system.
* API Added: `chat.iterateUsers()` method to iterate all User instances.
* API Added: `getUser().removeAllBadges()` method to remove all badges from a provider.
* API Added: `getRoom().iterateUsers()` method to iterate all User instances on a Room instance.
* API Added: `tooltips.define()` method to add a tool-tip handler to the system.
* API Changed: All core modules now use the add-on proxies to track which add-ons are responsible for injecting content, and to make it easier to unload (and reload) add-ons.
* API Changed: Many core module methods now display warning messages in the console when used improperly. For now, this mainly checks that IDs are correct, but there may be more warnings in the future.
* API Fixed: Calling `resolve()` will now properly use add-on proxies.
* Experiment Changed: Improved handling for server disconnects with the MQTT experiment, as well as handling for topic mapping changes.
2023-11-04 19:06:06 -04:00
SirStendec
0460c02994 4.56.1
* Experiment Changed: This release just changes the parameters of the MQTT pubsub experiment, but otherwise has no changes.
2023-10-30 14:01:28 -04:00
SirStendec
98e5373e9a 4.55.0
* Added: Link Cards. As an option, you can open a preview card when clicking on links in chat. These preview cards function similarly to the existing tool-tip or rich embed options but can provide for enhanced interaction (e.g. an embedded video player), with potential for more in the future.
* Changed: When using a custom theme with a dark background, use lighter border colors.
* Changed: Draw the FFZ Control Center and other dialogs with rounded corners.
* Fixed: Issue when clicking certain global Twitch emotes preventing the emote card from appearing correctly.
* Fixed: Issue with URL/safety data not being loaded correctly from the link service when the overall result was an error.
* Fixed: Issue with link tool-tips still appearing, but with no content, when link tool-tips are disabled.
* Fixed: Issue where (re)subscription notices in chat for multiple-month-at-once subscriptions would not be displayed correctly.
* Fixed: Tool-tips not displaying correctly in chat pop-outs in some circumstances.
* Fixed: Incorrect border styles when the chat is in portrait mode.
* Experiment Added: Set up an MQTT-based PubSub system. Let's see how well this scales.
2023-09-26 17:40:25 -04:00
SirStendec
e6ad12c937 4.47.0
* Added: `/ffz reload` command to reload emote and badge data without reloading the page. (Note: Add-ons will need to update to add support for the command.)
* Changed: Improve monitor support for Current Monitor, specifically when a user has multiple monitors with the same name.
* Fixed: Track the loaded status of global FFZ badges when loading chat data.
* Fixed: The page scrolling incorrectly when using the FFZ emote menu in some situations.
2023-04-24 15:09:21 -04:00
SirStendec
daa193aa03 4.43.0
* Added: Automatically reprocess chat messages when loading a channel for the first time. (Closes #1333)
* Fixed: Random emotes being insert into chat when using the emote menu in some situations. (Closes #1337)
* Fixed: When tokenizing messages, ignore fake emotes injected into Twitch's chat handler for the purpose of auto-completion and WYSIWYG support.
* Changed: Switch to a better method for how to get `require` from webpack.
* Changed: Update the logic used to calculate the container size when overlaying emotes.
* API Added: `load_tracker` module for waiting for multiple events to finish. This is used to reprocess chat lines once every data source has finished loading to avoid multiple unnecessary updates.
* API Added: Add-ons can now set a `load_events` array in their manifest to have the add-on loader register them with `load_tracker`, ensuring events don't fire before the add-on is able to execute.
2023-03-10 17:06:12 -05:00
SirStendec
e433aa3340 4.41.0
I'm almost finished implementing a replacement for emote cards, but they aren't quite ready yet. Please wait just a bit longer.

* Added: Support for modifier emote effects, as well as settings to disable them.
* Changed: Update the chat types enum to match changes to Twitch's internals.
* Changed: Implement a new data structure for more efficiently storing bulk user to emote set mappings.
* Changed: Implement support for loading data from staging.

* Experiments: Push the new chat line rendering experiment to 20%. Let's see if it works properly.
2023-03-03 15:24:20 -05:00
SirStendec
c8bb667c53 4.28.3
* Fixed: Issue rendering Twitch badges for some users.
* Fixed: The FFZ Emote Menu icon not replacing the default emote menu icon.
2021-07-27 22:51:04 -04:00
SirStendec
2a57ecb8a7 4.23.1
* Added: Add a `Reset` button to the headers of the badge visibility controls.
* Changed: Move some Twitch badges into a new `Twitch: Other` category.
* Changed: Do not display the badges in a category when the category is hidden to save space.
* Changed: Expose more data on emotes/emoji to tab completion.
* Fixed: Missing localization for certain items in Chat > Actions > Rooms.
* API Fixed: Ensure that emote set and badge IDs are cast to strings for consistent comparisons.
* API Fixed: Fix reference counting issues for emote sets when a set or badge is added from multiple providers.
* API Changed: Newly loaded emote sets are automatically scheduled for garbage collection if they have no users.
* API Changed: Added `removeAllSets(provider)` method to `Room`s and `Users`s.
* API Changed: Standardize `addSet(provider, set_id, data)` to allow passing set data in `Room` and `User`.
* API Changed: `addSet(...)` and `removeSet(...)` now return a boolean of whether or not the set was added or removed.
2021-06-10 18:53:16 -04:00
SirStendec
a80728a10d 4.20.90
* Added: Support for custom VIP Badge images.
* Fixed: Certain emotes breaking when `Large Emotes` is combined with `Fix bad Twitch emotes`. (Closes #1020)
* Fixed: Remember the Compressor state, if it was toggled, when resetting the player. (Closes #1024)
* API Added: The `chat` module has two methods for maintaining a list of possible message highlight reasons, for use populating UI. Accessible via methods `addHighlightReason(key, data)` and `getHighlightReasons()`.
* API Added: `basic_array_merge` setting type.
* API Added: Logs now include the initial URL that the script was loaded into.
* API Changed: `<select>` settings can now support multiple selected values.
2021-04-14 16:53:15 -04:00
SirStendec
1cdff0ec67 4.20.84
* Fixed: Case-sensitive blocked terms not functioning correctly.
* Fixed: Settings in the FFZ Control Center not reverting to a default appearance when reset.
* Fixed: Current Channel and Channel Color not being properly detected in the mod view, channel pages, and dashboard.
* Fixed: The channel points reward queue not functioning correctly.
* Changed: Allow highlighting and blocking by add-on badge, not just Twitch badge.
* Changed: Don't allocate `user.badges` and `user.emote_sets` until they're actually used to save on memory.
* Changed: Don't default the `Chat > Bits and Cheering >> Display animated cheers.` setting to the `Animated Emotes` setting.
* API Added: `badges.setBulk`, `badges.deleteBulk`, and `badges.extendBulk` for setting badges on users in bulk using an optimized data structure.
* API Added: Tokenizers can set `msg.ffz_halt_tokens = true` to prevent further tokenizers running. Useful when just discarding a message.
2021-03-22 18:19:09 -04:00
SirStendec
9086230686 4.20.72
* Added: Setting to change the height of chat actions.
* Added: Profiles can now be toggled via hotkey.
* Added: Profiles can now be imported from URL as well as File.
* Added: Profiles with update URLs can have automatic updates disabled.
* Fixed: Support for the `clips.twitch.tv` domain.
* Fixed: Badges that make use of foreground text are no longer white in light themes.
* Fixed: Mod Icons appearing smaller than normal.
* Changed: Allow several types of actions, unrelated to moderation, to be used on a person's own chat messages.
* Changed: Better warn users in the Control Center when the current profile is set to automatically update.
* Changed: Make the FFZ Control Center remember which profile is selected when re-opening / refreshing.
* API Added: Add-ons can now target specific supported flavors. Choices thus far are `main` and `clips`.
* API Added: The `site.menu_button` now has `addToast(...)` and can display multiple toasts. Toasts can also time out.
* API Fixed: `openFile(...)` never resolving if the user closes the dialog without selecting a file.
2021-03-02 16:55:25 -05:00
SirStendec
ef4ff0c13a 4.20.54
* Added: New UI for clearing FrankerFaceZ settings (Data Management > Storage).
* Fixed: Do not display duplicate bot badges in tool-tips when a bot has both a global bot badge and a channel-specific bot badge.
* Fixed: Do not add click URLs for FFZ badges to add-on badges.
* Fixed: Remove `debugger;` from automatic error reporting method.
* Fixed: IndexedDBProvider not synchronizing settings correctly.
* Fixed: Change a CSS class name used when changing emote visibility to avoid bad UX due to misbehaving third-party extensions.
* Fixed: Color calculations for chat messages, including highlight colors. (Closes #947)
* Changed: Use rounded images from the CDN for FFZ badges in tool-tips.
* Changed: Use Twitch IDs rather than usernames for assigning channel-specific badges to users.
* API Added: `settings.addClearable(key, definition)` for adding new UI to `Data Management > Storage >> Clear`.
2020-12-01 18:19:17 -05:00
SirStendec
b098e59f4c 4.20.52
* Fixed: Bug with room API handling that prevented the application of channel-specific user badges.
* Fixed: Issue applying username color adjustments with certain background colors. (Closes #945)
* Fixed: Automatic Theater Mode applying incorrectly on user sub-pages. (Closes #942)
2020-11-25 19:27:25 -05:00
SirStendec
129f350a80 4.20.33
* Added: Setting to filter out chat messages by type. Can be used to remove hosting and raid notices, among other things.
* Added: Support for clicking badges. It's a native feature that's been missing for ages.
* Changed: Make headers slightly bigger in settings so that they stand out more.
* Fixed: Certain settings inheriting default values when they should not.
* Fixed: Bug in the FFZ Emote Menu when garbage subscription data is returned from Twitch.
* Fixed: Do not suppress error messages in the console when an error happens in an event handler.
2020-08-17 13:33:30 -04:00
SirStendec
ed0577f09e 4.20.1
* Added: Option to hide Twitch's native stream uptime. Enabled by default when using FFZ's own stream uptime.
* Fixed: Implement stream metadata for the new Twitch layout.
* Fixed: Display the subscription tier in badge tool-tips for Tier 2 and Tier 3 subscriber badges.

This release involves significant changes under the hood. Due to Twitch's heavy use of functional React components and effects in recent updates to their site, we need to start listening for DOM nodes rather than components in many cases. To that end, I've implemented the Elemental module to grab elements using MutationObservers. I didn't want to, but this is where we're at. In a future release I'll be using Elemental to add support back to the directory for certain features.
2020-06-30 19:48:46 -04:00
SirStendec
0c1e9c5204 4.19.4
* Fixed: Error loading bits configuration after a Twitch update changed the format, causing an exception that prevents the add-on from initializing fully.
2020-03-25 19:05:38 -04:00
SirStendec
5f8ebc9085 4.17.3
* Added: High-DPI badge support for Firefox using `@media` queries since they still don't support `image-set()` after 5+ years.
* Added: Display the date videos were uploaded in a tool-tip when hovering over the human readable duration (such as '3 months ago').
* Added: Setting to hide all the Community Highlight pop-ups at the top of chat. They are the latest pop-up style Twitch is trying. As usual, they fail to include a way to dismiss them and they obscure chat. Unfortunately, this also hides polls which have some value.
* Fixed: Inverted Portrait Mode.
2019-12-10 20:46:33 -05:00
SirStendec
bd11a6f2aa 4.0.0-rc21
* Added: In-Line Chat Actions can now be set to display with specific modifier keys being held. This feature currently requires that Freeze Chat Scrolling is enabled. (Though, why you'd want to use this without that feature is beyond me.)
* Fixed: Bug with custom chat width in theater mode.
* Fixed: The `Get Bits` button appearing when disabled.
* Fixed: Issue with highlighting chat usernames when using Firefox.
* Fixed: Misc minor bugs.
2019-05-16 14:46:26 -04:00
SirStendec
ba49d6b49c 4.0.0-rc20.4
* Fixed: Infinite loop bug with badges. Sorry about that.
* Fixed: Bug with the Room Actions editor's preview check-boxes.
2019-05-08 22:47:38 -04:00
SirStendec
35316b8827 4.0.0-rc19
* Added: Option to hide Squad Streaming banners on channel pages.
* Changed: Rewrite the entire i18n system to use the standard ICU message format.
* Changed: Render the context menu for chat messages in Chat on Videos.
* Fixed: Badges not appearing correctly in chat.
* Fixed: Messages in Chat on Videos with embeds appearing too wide.
2019-05-03 19:30:46 -04:00
SirStendec
23816fafc9 4.0.0-rc18
* Added: Reason context menus for in-line timeout and ban actions.
* Fixed: Certain FFZ tool-tips using the wrong input handlers.
* Fixed: Do not update CSS whenever bits configuration changes, only when necessary. (Performance fix for the bleed purple campaign.)
* Changed: Mark certain page elements with a flag to avoid crawling them with MutationObservers. (More performance~~)
2019-04-29 18:14:04 -04:00
SirStendec
1649294bde 4.0.0-rc17
* Added: Highlight messages based on usernames and badges.
* Added: Block messages based on usernames and badges.

* Fixed: Display the number of months a subscriber has subscribed in badge tool-tips.
* Fixed: Rendering of chat messages sent from Twitch Extensions.
2019-04-28 17:28:16 -04:00
SirStendec
8c0b4b8bad 4.0.0-rc12.21
* Fixed: Merge User and Room objects when ID and login are both known at once.
* Fixed: Spacing and sorting of metadata beneath the player. (Closes %520)
* Fixed: Update the settings menu when new settings are added while the menu is open. (Closes #523)
* Fixed: Do not maximize or minimize the settings window when double-clicking in the search box. (Closes #521)
2018-09-24 14:33:06 -04:00
SirStendec
1c19fe2282 4.0.0-rc12.10
* Fixed: Chat Width not applying correctly on pages like Videos on the old channel layout.
* Changed: Implement an IntersectionObserver into the emote menu in an attempt to get the menu rendering faster when there are an incredible number of emote sets.

* Changed: Roll out the new API experiment to 25%. (This is still pulling data from the old server, and merely serves to test the performance of the new server stack.)
2018-08-16 23:33:27 -04:00
SirStendec
17fb41f083 4.0.0-rc4.5
* Added: Whisper Support
* Fixed: UI missing hover state for a few elements added by FrankerFaceZ.
* Fixed: Handle missing badge definition when rendering FFZ badges.
* Fixed: Update static chat message type mappings.
* Fixed: Error in metadata when unable to get the proper player.
* Fixed: Incorrectly applying dark theme to products page.

A bit more work on getting enhanced viewer cards ready.
2018-07-13 14:32:12 -04:00
SirStendec
9dc8252df0 4.0.0-rc1.5
Add an option to hide the mouse over the player. This doesn't work well in Chrome. Oh well, we tried.
Add an option to not automatically join raids for that comfy falling asleep experience.
Fix in-line actions not rendering when they should.
Fix detokenizeMessage for changes to Twitch's message format.
Don't try to preview the `create` clip URL.
Start using functional components where possible for performance.
Stop logging GraphQL errors to save our Sentry quota.

Begin implementing chat rendering on top of Vue. For now, we've got functional components for every type of chat token. We've got a lot of work ahead of us. This will eventually be used for mod card history, chat panes, and maybe even pinned rooms.

Add an event to clean orphan tooltips. Useful for when we click something we know will change DOM elements with active tooltips, like a Close button for example.
2018-05-10 19:56:39 -04:00
SirStendec
e581b50b08 Fix bug tokenizing cheers in messages. Try to fix any bugs getting a user for a room. Strip apollo 404 messages from Sentry. Don't show the expansion arrows in the emote menu when using a filter. Fix emoji tab completion a bit. 🐝 should not match 🍺. Start using crossorigin for script serving. Add a debug transformation for localization. 2018-04-15 17:19:22 -04:00
SirStendec
1b2ff27530 More bugfixes. Actually implement the API test experiment. 2018-04-12 02:29:43 -04:00
SirStendec
92917453a7 Add settings for controlling the error reporting system.
Fix issues with destroying rooms and users.
Fix the control center not being available on certain pages.
Fix the host menu appearing when you aren't logged in.
Clean up some old CSS.
2018-04-11 20:48:02 -04:00
SirStendec
d7a07a5612 The Report Your Errors Update
* Add automatic error reporting with Sentry.io
* Filter a bunch of bad errors from showing up on Sentry
* Add module.hasModule method.
* Fix deep_copy
* Fix disallow mouse interaction with extensions
* Add some new icons to the icon font for mod cards
* Allow Ctrl-Shift-Clicking emotes.
* Rarity sorting for experiments and unset display for unused experiments.
2018-04-11 17:05:31 -04:00
SirStendec
802d19bc00 Fix potential issues trying to operate on destroyed users / rooms. 2018-04-07 19:08:20 -04:00
SirStendec
e6e11fe562 Emote Menu? Emote Menu.
* Add the emote menu.
* Add an option to replace the emote menu icon with the FFZ icon.
* Add icons to the icon font.
* Add a basic human duration formatting method to i18n.
* Add methods to the emotes module to get sets including the providers.
* Add a method to the emotes module to load an arbitrary set.
* Add a map to the emotes module for identifying providers.
* Add new events for when emote sets change.
* Add support for loading featured channel emotes.
* Add an option to suppress source sets in emote tooltips.
* Add an option to display a sellout line in emote tooltips.
* Remove emote menu from the WIP section of the home page of the menu.
* Fix a typo in rich content.
* Remove a bit of logging from fine.
* Add helper methods for set comparison and basic debouncing to utilities/object.
* Add constants for the emote menu.
* Add methods to show/hide a tooltip to the tooltip data object.
2018-04-06 21:12:12 -04:00
SirStendec
41e80fd94c Add support for custom moderator badge images. 2018-03-15 03:31:30 -04:00
SirStendec
254d297f79 Use ref-counting with socket topic subscriptions to make it easy to tell when we should and shouldn't actually unsubscribe. Add route awareness to FineWrapper so that we can unregister the MutationObserver when we know we won't be suddenly finding an instance that we're looking for. Have the channel bar register for the channel pubsub topic. Fix minimize navigation showing the navigation bar over top of theater mode. 2018-03-14 13:58:04 -04:00
SirStendec
4c9e67a22e Fix Twitch chat badges not rendering. They removed badgeSets from the chat container, so for now access the raw data and parse it ourselves. It's actually about the same difficulty, so it should work fine. 2018-01-19 17:17:16 -05:00
SirStendec
0754144c36 Render badges. Fix badges with weird font sizes. Add an option to show metadata in theatre mode. Fixes #364. Fixes #363. 2018-01-16 17:36:56 -05:00
SirStendec
cbbe6f3e20 Basic badge stuff. Rendering of extension badges is still disabled for now, but SOON(tm). Fix emotes in locally echoed messages when emoji are present. Cache tokens in chat lines. Include the intl-login element within the username link in chat so it all underlines together. 2017-11-28 02:03:59 -05:00
SirStendec
6c4966166a Add reference counting for emote sets so that we know when to unload them. Create a class for Users so that we can use ref counting with them. 2017-11-22 20:21:01 -05:00
SirStendec
b04cd8a61a Add getEmotes method to chat.emotes. Remove emoji mentions from chat.emotes because that'll have its own module as chat.emoji. Fix bug with Room objects changing their login if FFZ's server has outdated name info. Use getEmotes in emote tokenization. Move channel bar Apollo modifiers into the channel bar module. Rename CHAT_TYPES variable to use proper casing. Add touchmove handler to scroller for people with touchscreens. Fix spacing under the player in theatre mode with whispers disabled. Add navigate method to FineRouter. 2017-11-22 15:39:38 -05:00
SirStendec
7708caebb5 Clean up some code with eslint. Add eslintrc. Fix the FFZ:AP fix for jQuery only existing on some pages. Start renaming functions toCamelCase. Add old style RGB Loop color processing. Clean up Chat Freeze a bit. 2017-11-16 15:54:58 -05:00
SirStendec
c86895797c Add a limited legacy API to support at least basic channel and global emotes from FFZ:AP. 2017-11-16 00:25:51 -05:00
SirStendec
3607159929 Start using SourcedSet for emoticon sets so that, in the future, special events, featured channels, etc. can add and remove emote sets without worrying about reference counting or anything like that. Also implement the method to get your Twitch Inventory emote sets. 2017-11-15 21:59:13 -05:00
SirStendec
a081247fdc Improve support for interactive tooltips. Allow chat tokenizers to supply custom delays and interactive flags for their tooltips. Wrap text in <span> elements. Fix bug with stream uptime metadata. Fix bug with fine-router. Add method to EventEmitter that wraps emit in a try/catch. Add lilz to the socket server lineup. 2017-11-14 04:11:43 -05:00
SirStendec
262757a20d 4.0.0 Beta 1 2017-11-13 01:23:39 -05:00