1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-06-27 12:55:55 +00:00
Commit graph

1312 commits

Author SHA1 Message Date
SirStendec
f79f1ba21d 4.72.2
**Note**: This update does not add proper support for the 'Message Effects' power-up. I still need to investigate how to best implement that, since Twitch's implementation uses a canvas and custom rendering logic.

* Added: Support for the "Gigantify an Emote" power-up.
* Added: Support for "Gigantifing" an emote using a community points reward. Just set up a custom reward that lets a user enter a message, and have the exact string `FFZ:GE` somewhere in the reward's title or description. Only appears as giant for users with FrankerFaceZ. This was added because the native power-up does not support emotes from add-ons.
* Added: Option to disable "Gigantifying" emotes.
* Fixed: Use the correct currency when displaying a community redemption that cost bits rather than points.
* Fixed: The emote menu not appearing correctly when choosing an emote for the "Gigantify an Emote" and "On-Screen Celebration" power-ups.
2024-06-14 14:27:26 -04:00
SirStendec
340551dc83 4.72.1
* Fixed: Catch the error when we are unable to obtain a video ID for the current broadcast, and show a proper error message instead of what we're doing now. The feature is still not working due to Twitch server issues. (Closes #1505)
* Fixed: The appearance of checkboxes and text boxes in the FFZ Control Center was incorrect due to Twitch CSS changes.
* Fixed: Update the URL for collections for profile rules.
2024-06-13 14:51:42 -04:00
SirStendec
38e557e809 4.72.0
* Fixed: The button to expand chat not appearing when using theater mode along with Swap Sidebars.
* Fixed: Emote / link cards not appearing correctly when using moderator view.

* API Added: `searchParentNode(input: InputNode, criteria: (node: ReactNode) => boolean)` method to `site.fine` for finding React internal nodes, useful for locating stateless components for extracting props.
* API Added: `getRenderers()`, `getActions()` methods for `chat.actions` to get bulk data.
* API Added: `getBadge(id: string | number)` method for `chat.badges` to get a badge.
* API Added: `getUser(...).getBadges()` method for `chat` to get a user's badges.
* API Added: The `action-editor` component for `chat.actions` has an additional `extra_appearance_editor` field for adding additional inputs.
* API Changed: The `removeAction(...keys: string[])` and `removeRenderer(...keys: string[])` methods for `chat.actions` now support multiple keys to allow for more efficient removal.
2024-03-29 13:33:14 -04:00
SirStendec
a02c14d84c 4.71.0
* Added: Chat action to toggle a settings profile, for convenience.
* Fixed: Missing message data in rich notices causing messages to not appear correctly when certain add-ons were enabled. Closes #1475
* API Changed: SettingsProfiles now have UUIDs that are stable and not reused, allowing things like chat actions to uniquely identify profiles.
2024-03-21 15:44:11 -04:00
SirStendec
10d35468a9 4.70.0
* Added: Option to prevent Pinned Messages from being displayed. Closes #1470
* Removed: Setting to allow the Golden Kappa Train to appear. This wasn't working correctly, so nothing of value has been lost.
* Fixed: Blocking chat users by username worked inconsistently.
* Fixed: Hiding channels in the directory by title worked inconsistently. Closes #1473
* API Changed: The `chat:get-tab-commands` event now has a `channel` object with the ID and login of the current channel, as well as a reference to the relevant input component.
* API Added: The `chat` module now has `addTabCommandPrefix(prefix: string | string[])` and `removeTabCommandPrefix(prefix: string | string[])` methods. By default, tab-completion for chat commands only triggers with the `/` and `!` prefix for performance reasons. This can be used to add additional prefix characters.
2024-03-19 16:36:44 -04:00
SirStendec
8807e09ea3 4.69.0
* API Added: When adding a command to tab-completion with the `chat:get-tab-commands` event, you can now specify a `prefix` for your command. Valid options: `!` and `/`. Defaults to `/` if not specified.
* API Added: New `chat:update-line` event. Signature: `(messageId: string, clearTokens: boolean = true, clearBadges?: boolean)`. To re-render a chatline without re-tokenizing it, pass `false` as the second argument.
* API Changed: Whisper / video chat messages now have their message IDs correctly added to their standardized message objects.
2024-03-16 20:34:27 -04:00
SirStendec
3aeb70f0fb 4.68.2
* Fixed: The icon not being hidden when hiding the native Twitch viewer count on channel pages.
* Fixed: Certain Twitch native code modules failing to load in the new React 18 build, causing issues with minor features failing to work.
* Fixed: The React button overlapping when using the setting to hide the unfollow button.
* Changed: Disable word wrapping within names when displaying a condensed list of users for a mass subscription.
* Experiments Changed: Added another experiment on how to host PubSub things.
2024-03-01 01:48:50 -05:00
SirStendec
909fdc25f2 4.68.1
* Fixed: Add support for React 18.
2024-02-16 13:19:36 -05:00
SirStendec
659ce1c430 4.68.0
* API Added: New interface for filtering emotes, allowing add-ons to, for example, remove any emotes with names that are common words. This filtering completely removes all traces of an emote, leaving normal words behind in chat.
2024-01-24 14:59:30 -05:00
SirStendec
f89938ba5a 4.67.2
* Fixed: FFZ not correctly loading on dashboard pages.
2024-01-24 12:12:08 -05:00
SirStendec
e8bb25f982 4.67.1
* API Fixed: The new changes to `addNotice()` were not correctly displaying add-on emotes from the current channel.
2024-01-17 14:46:48 -05:00
SirStendec
8688d1a41b 4.67.0
* Fixed: Bug displaying rich content errors when no data is returned from the link information service.
* API Changed: The `site.chat.addNotice()` method now supports rich content and localization.
2024-01-17 14:28:21 -05:00
SirStendec
44e30e985d 4.66.0
* Added: Option to hide emote tool-tips from the FFZ Emote Menu, which can improve performance.
* Changed: Re-add support for older browsers that do not support `crypto.randomUUID()`. I do not consider this a bug, since users should realistically not be on browsers that old for their own safety, but it is a small enough change that I'll allow it.
* Fixed: The option to report emotes not appearing on emote cards for Twitch emotes. (Closes #1450)
* Fixed: Make rich embeds in Chat on Videos slightly narrower so they don't get cut off.
* API Added: Chat message objects now have `ffz_first_msg` and `ffz_returning` flags for use by add-ons.
* API Fixed: Cut down on unnecessary warning logging from `createElement`
2024-01-16 13:59:39 -05:00
SirStendec
786275e7d7 4.65.1
* Fixed: Issue with the IndexedDB storage provider sometimes failing to save values for Chromium users, notably when restoring a backup. This is due to a browser bug, where Chromium would fail to properly handle multiple simultaneous read/write transactions to an IndexedDB database. To prevent issues going forward, we now use a ticket lock to prevent more than one concurrent write transaction. TL;DR: You can restore your backups properly again.
* Changed: Add Bluesky's new brand icon for use displaying embedded Bluesky content.
2023-12-30 14:36:59 -05:00
SirStendec
5bafc824b1 4.65.0
* Added: Two settings to improve the FFZ experience for users using their operating system's High Contrast mode. One setting allows you to opt Twitch out of high contrast mode, and the other (which is selectively enabled by default) loads a few more styles to make page elements appear more correctly.
* Added: When using link cards to view a link to a Twitch clip, allow the clip to be played with an embedded player.
* Changed: When displaying a tool-tip for a link, use the link's accent color along the side of the tool-tip for slightly more branding.
* Changed: Make the prompt to accept the YouTube Terms of Service more subtle, and add an option to decline to the settings so it'll stop showing the link to settings altogether.
* Changed: Update the icon for Discord in the icon font, and add an icon for TikTok.
2023-12-21 17:28:39 -05:00
SirStendec
6e78fd7cab 4.64.0
This update adds a check that forces users to agree to YouTube's Terms of Service before they are able to view rich embeds for YouTube links. I personally do not agree with this, but we were required to implement this in order to maintain access to YouTube's API. Actually, they said "API Clients must state in their own terms of use that, by using those API Clients, users are agreeing to be bound by the YouTube Terms of Service." but that's obviously ridiculous for this use case. This is my compromise. Sorry for the inconvenience, everyone. This also comes with aesthetic tweaks to make YouTube's compliance team happy. Woo...

* Added: Setting to display labels on highlighted chat messages giving the reason why the message was highlighted.
* Added: System to force users to agree to a service's Terms of Service before displaying rich content from specific providers. So far this is only used by YouTube.
* Changed: Made the background of highlighted words in chat messages slightly smaller.
* Fixed: A few page elements in mod view not being themed correctly.
* Fixed: Timestamps displaying with an hour when they obviously do not need to.
* API Added: `main_menu:open` event for a general way to open the main menu.
* API Added: Settings UI elements using components using the `provider-mixin` can now override the provider key they use by setting an `override_setting` value on their definition.
* API Changed: The `chat.addHighlightReason(key, data, label)` method now takes an optional `label` parameter to set the text that appears on chat messages when the setting to display labels is enabled.
2023-12-19 16:24:33 -05:00
SirStendec
80931479c1 4.63.0
* Added: Setting to display Content Flags on directory pages.
* Fixed: The setting to make the player larger on `clips.twitch.tv` pages incorrectly defaulting to true. Closes #1440.
* Fixed: Exception thrown when pressing Escape in chat with a tray open.
* Fixed: Chat not correctly displaying messages until the mouse is moved when using an option to pause chat using mouse movement.
* Fixed: Misspelled entry in the Content Flags list.
* Fixed: Some directory cards not being correctly detected by FFZ.
* Fixed: Color processing throwing an exception if the input value is empty.
* Fixed: Some page elements failing to appear correctly, instead showing an error. Notably this affects the PrattleNot add-on as well as some emote tool-tips. Closes https://github.com/FrankerFaceZ/Add-Ons/issues/193
* Changed: Add a note to the setting to hide extensions that recommends CommanderRoot's Disable Twitch Extensions browser extension.
* Changed: Log a warning when users use external scripts to mess with experiments.
* API Changed: `deep_copy` now correctly handles RegExp, Date, Set, and Map objects.
2023-12-18 17:11:44 -05:00
SirStendec
429553f5d4 4.62.2
* Fixed: Issue with colors not being calculated correctly when colors are being processed. Hopefully this is the last bug in the colors rewrite.
* Fixed: Incorrect PubSub event handling causing some events, notably point redemptions, to not appear correctly. Closes #1438.
* Fixed: Issue where certain pop-up elements would not close correctly when clicking outside them.
2023-12-14 21:17:14 -05:00
SirStendec
d503243be1 4.62.1
* Fixed: Incorrect handling of colors with alpha transparency when processing colors.
2023-12-14 18:53:05 -05:00
SirStendec
de09ec502d 4.62.0
* Added: New settings for hiding content from the directory based on tag, content flag, or title.
* Fixed: Certain page elements not being hidden correctly.
2023-12-14 18:33:08 -05:00
Mike
40865adba7
Merge pull request #1430 from FrankerFaceZ/types
The Grand TypeScript Update
2023-12-14 17:53:19 -05:00
SirStendec
18491b0873 4.61.0
* Changed: Replace the old Twitter widget on the FFZ Control Center's Home page with a custom Bluesky widget.
* Fixed: Settings profile rules for the current channel and current category not functioning correctly.

* Developer Changed: We TypeScript (a work-in-progress conversion)
* Developer Fixed: The GraphQL inspector not properly displaying data.
2023-12-14 17:52:35 -05:00
SirStendec
31e7ce4ac5 * Convert AddonManager to TypeScript.
* Convert PubSub (not PubSubClient) to TypeScript.
* Convert StagingSelector to TypeScript.
* Make sure to add ExperimentManager's events to the global interface.
2023-11-16 22:36:10 -05:00
SirStendec
6c6d4ceb98 Finish the initial conversion of the settings module to TypeScript. 2023-11-16 21:39:08 -05:00
SirStendec
136a2491c8 More type progress. 2023-11-16 18:41:50 -05:00
SirStendec
fed7d3e103 Merge branch 'master' into types 2023-11-14 13:41:22 -05:00
SirStendec
14bc111ec0 4.60.1
* Fixed: The Delete Message action not working correctly for users within a specific Twitch experiment.
2023-11-14 13:33:29 -05:00
SirStendec
9de3b92019 Bit more work. 2023-11-14 12:51:30 -05:00
SirStendec
b9d23accf0 Initial commit for converting FrankerFaceZ to TypeScript. 2023-11-13 20:47:45 -05:00
SirStendec
ba72969c51 4.60.0
* Added: When searching in the FFZ Control Center, you can now use the tag `@modified` to filter by settings that have been changed in the current profile.
* Added: Add-ons now have Changelog buttons that navigate to a changelog showing only entries for that add-on.
* Changed: The Changelog pages now has nicer formatting for each commit, including add-on icons and clickable links to add-on sub-pages when viewing the Add-on Changelog.
* API Added: To prevent FrankerFaceZ from loading into a page, include `disable_frankerfacez` in the URL query parameters.
* Experiment Changed: Fix incorrect roll-out percentage for API-Based Link Lookups. This should be fully enabled.
* Experiment Changed: Lower the percentage of users in the MQTT-Based PubSub experiment.
2023-11-06 20:47:19 -05:00
SirStendec
5046088bf7 4.59.1
* Fixed: Remove debug logging.
* Experiment Changed: Tweak the MQTT pub/sub client to handle subscription failures better.
2023-11-05 19:48:38 -05:00
SirStendec
a7e131070e 4.59.0
* Fixed: Appearance of the page when viewing a Watch Party.
* Fixed: During the initial load, some CSS blocks could be incorrectly injected into the page due to a race condition.
* Fixed: The sample embed in Chat > Appearance >> Rich Content not appearing correctly.
* API Added: New event class `FFZWaitableEvent`, a subclass of `FFZEvent` providing a framework for asynchronous event handlers.
* API Added: `site.channel:update-bar` event, fired whenever the channel info bar is updated.
* API Fixed: `chat.removeTokenizer()`, `chat.removeLinkProvider()`, and `chat.removeRichProvider()` failing to fully remove their respective items.
* API Removed: The `emitAsync` method has been removed from modules. Nothing was using it, and it was problematic due to the concurrent access protection on events. Instead, `FFZWaitableEvent` should be used if asynchronous waiting is necessary.
2023-11-05 14:49:39 -05: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
c4da7fa9d9 4.57.4
* Fixed: Stupid typo making badge tool-tips not work correctly in some cases.
2023-11-03 16:21:52 -04:00
SirStendec
a5e5082d63 4.57.3
* Changed: Make the badge visibility settings page a bit nicer.
* Changed: Display add-on's maintainers field in the add-ons list.
* API Fixed: When iterating chat messages, include tokenized messages that have not been pushed out of the buffer yet.
2023-11-03 16:04:35 -04:00
SirStendec
71f347ab70 4.57.2
* API Added: Certain methods will now log warnings when in developer mode if being called incorrectly. For example, if an add-on registers new badge data without including its add-on ID as the data source. Expect these to be expanded over time.
* API Added: Add-on modules and sub-modules will all have an `addon_id` property containing their source add-on's ID, as well as an `addon_root` property with a reference to the add-on's root module.
* API Changed: The `ffz_user_class` property of chat messages should now be a `Set`, if it is defined.
* API Changed: Add-on module proxies are now cached.
2023-11-03 14:40:58 -04:00
SirStendec
04969cc57e 4.57.1
* Fixed: Certain player features breaking for Firefox users after the most recent update.
2023-11-02 23:57:56 -04:00
SirStendec
21ae0059a5 4.57.0
* Added: The FFZ Subwoofer badge now displays a user's number of subscribed months in its tool-tip.
* Added: Setting to set the default sorting mode of the directory. (Have you tried the Deck add-on?)
* Fixed: The location of certain player action buttons was incorrect after Twitch made changes to the player.
* Changed: Badges added by add-on are now grouped by add-on in badge visibility settings. This allows users to disable all badges from a given add-on at once, and is just generally nicer to look at.
* API Added: `iterateMessages()` method on the `chat` module as an easy way to iterate over all live chat messages, in case existing messages need to be modified without the overhead of tokenization.
* API Added: Badges can now be stacked together for visibility purposes, similar to Twitch's native badge versions, by setting a `base_id` on each badge.
* API Added: Badges can now display dynamic data on their tool-tip by using a `tooltipExtra` method. This was used to display Subwoofer subscription lengths.
* API Added: New setting UI type `setting-text` that can be used to insert arbitrary markdown into settings pages.
* API Changed: The `ffz_user_class` special property on messages can be an array instead of a string.
* API Fixed: Add-on proxy modules are now correctly used for an add-on's sub-modules.
2023-11-02 21:39:52 -04:00
SirStendec
0eaf1a55be 4.56.3
* Experiment Updated: Yet another update for the MQTT PubSub experiment.
2023-11-01 16:25:02 -04:00
SirStendec
4d2b65e7c2 4.56.2
* Experiment Update: This contains further work on the MQTT-based PubSub experiment.
2023-11-01 14:17:11 -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
f1be0ea60c 4.56.0
* Changed: When rendering link previews for tweets with multiple images, arrange them the same way that they're arranged on Twitter itself.
* Fixed: Certain emotes not appearing correctly when using Firefox.
* Experiments Changed: Update to a new PubSub provider, for seeing if this can scale acceptably.
2023-10-29 14:30:34 -04:00
SirStendec
60e4edf7c2 4.55.3
* Fixed: Bug causing link previews to fail to load correctly.
2023-10-12 14:06:40 -04:00
SirStendec
5b65f6b735 4.55.2
* Fixed: Do not set `src` for images on Firefox, since that causes animations to reset when a new image is added to the DOM with the same `src`. For some reason. Thanks, Firefox.
* Fixed: The FFZ Control Center, Emote Cards, and Link Cards are now all aware of each other in a limited sense. The most recently interacted-with window will appear on top of the others.
* Fixed: Channel page links not having enhanced tool-tip preview support. (Still no link cards when you click them, but it's a start.)
* Developer: Made it so the Link Tester in Debugging > Data Sources will properly open link cards, as long as you have link cards enabled.
* API Added: Update to the latest FFZ rich tokens format, which has a new `i18n_select` token. This allows, for example, the link preview service to return multiple languages of titles and descriptions for a YouTube video so that your client can pick the best one to display.
* Experiment Changed: The "API-Based Link Lookups" experiment now has a third option that uses Cloudflare Workers. It's set very low while I try to gauge how much traffic it would see, and if this is a viable option.
2023-10-09 19:25:29 -04:00
SirStendec
29419eee22 4.55.1
* Fixed: Link Cards always opening regardless of the setting. Sorry about that, some code got deleted in a refactor and I didn't notice.
2023-09-26 19:39:39 -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
d01f66c6f3 4.54.0
* Added: Setting to hide the Turbo button in the Twitch navigation bar. (Closes #1410, #1389)
* Added: Setting to automatically expand chat when entering full-screen. (Closes #1377)
* Changed: The "Change Name & Color" chat action now has buttons to automatically fill in a user's existing name and color. (Closes #1397)
* Fixed: Integration issue with a Twitch chat experiment causing certain features to not work correctly.
* Removed: Old setting to hide a "Discover" link in the navigation bar, as that seems to be long since removed.
2023-09-14 16:48:11 -04:00
SirStendec
92fcc853a6 4.53.0
* Added: Setting to hide streams in the directory based upon tags.
* Added: Setting to not automatically join raids to specific channels.
* Added: Setting to attempt to display Golden Kappa Trains when Hype Trains are otherwise hidden.
* Added: Settings profile filter rule for when the window is in fullscreen.
* Fixed: Do not activate theater mode settings when in fullscreen.
* API Added: The `site.player` module now has a `getUptime` method for getting the uptime of the current stream, if one is available.
* API Removed: The tag-related methods of `site.twitch_data`, aside from `getMatchingTags` which now has a different signature. The methods were non-functional due to Twitch removing the relevant endpoints.
* Developer: Added a debugging tool for viewing GraphQL queries in Apollo's cache.
* Maintenance: Tweak the webpack build to hopefully get Mozilla to stop complaining that their build environment is weird while accusing me of having the weird build environment.
2023-09-13 16:08:10 -04:00
SirStendec
8ac95f3a52 4.52.0
* Added: Setting for customizing how tab-completion matches emote names.
* Added: Clips pages now have support for opening emote cards when clicking an emote in the chat replay.
* Fixed: Issue where chat was not rendering as intended on clips pages.
* Fixed: Issue where the FFZ Control Center link was not added to clips pages.
* Fixed: The chat actions module being instantiated in memory twice.
* Fixed: Blank badges appearing in chat, most notably in historic messages, when a chat message has invalid badge data associated with it.
* Fixed: Use a mutation observer for detecting the drops Claim button, rather than a simple timeout, for better consistency.
* Fixed: Issue when using the webpack public path variable that may lead to URL generation with extra `/` characters, breaking some behavior in Firefox when packaged as a local extension.
* API Added: Support for displaying an emote's original name, if an emote has been given a collection-specific name, using an `original_name` field.
2023-09-09 17:43:51 -04:00
Mike
fc009a84e7
Merge pull request #1402 from Lordmau5/feat/tab-completion-setting
Add setting for tab-completion matching
2023-09-09 17:27:30 -04:00