Browse Source

docs: changelog

Sv443 8 months ago
parent
commit
43e4c74a2c
1 changed files with 36 additions and 25 deletions
  1. 36 25
      changelog.md

+ 36 - 25
changelog.md

@@ -3,71 +3,82 @@
 
 <!-- #region 2.1.0 -->
 ## 2.1.0
-- **Features:**
-  - Show the amount of likes and dislikes on the currently playing song
-  - Show the like and dislike ratio as a colored bar on the currently playing song
-  - Added preview auto-like feature to like songs and videos of certain channels automatically  
-    This feature is still in beta. To enable it, first enable advanced mode in the settings.  
-    The toggle button will only show up on channel pages until the next update. Please report any issues you encounter.
-- **Changes / Fixes:**
-  - Now the welcome menu is shown on YT too
-  - Changed default settings for these features:
-    - Remember song time sites: from `YTM only` to `both sites`
-    - Volume slider scroll sensitivity: from `10%` to `4%`
+- **Added features:**
+  - Auto-like songs/videos of certain channels (YTM and YT)
+  - Show amount of likes and dislikes for the currently playing song
+- **Changes:**
+  - Made song/video time remembering enabled by default on YT too
+  - Made reset button in config menu a feature of type `button`
+  - Welcome menu is now shown on YT too
+  - Added Ctrl modifier key to every lyrics button to open a lyrics search prompt
+  - Added Shift and Ctrl modifier keys to the above-queue buttons that can skip prompts or customize the behavior
+  - Arrow key and number key skipping works more reliably and now also in the config menu
+  - Changed default settings for some features.  
+    After updating, if the values were unchanged from their previous default, they will automatically have the new default value:
+    - Remember Song Time Sites: if set to `YTM only`, it changes to `both sites`
+    - Volume Slider Scroll Sensitivity: if set to `10%`, it changes to `4%`
   - Made some settings require advanced mode that didn't before:
     - Fix spacing/layout issues
     - Fix HDR issues
     - Disable Dark Reader sites
     - Remove share tracking parameter sites
     - Placement of list/queue buttons
-  - Added Ctrl modifier key to every lyrics button to open a lyrics search prompt
-  - Added Shift and Ctrl modifier keys to the above-queue buttons that can skip prompts or customize the behavior
-  - Arrow key and number key skipping works more reliably and now also in the config menu
   - Removed broken feature "remove upgrade tab"
   - Removed unnecessary experimental feature "advancedLyricsFilter" as the API's native search improved a lot
+- **Fixes:**
+  - Adjusted script to UI redesign of playlists
+  - Fixed song list buttons disappearing when dragging the row around
+  - Fixed song list buttons not always appearing immediately
+  - Fixed escape closing all open dialogs instead of one at a time
+  - Fixed "added to liked songs" toast not being consistently closed
+  - Fixed messed up time restoration feature on YT because of the `&t` param
+  - Fixed broken autoplay queue delete button after a redesign
+  - Fixed transparent player bar background in fullscreen being barely readable with thumbnail overlay active
+  - Fixed thumbnail overlay not updating in fullscreen mode
 
 <details><summary>Click to expand internal and plugin changes</summary>
 
 - **Internal Changes:**
   - Removed `compareVersions()` and `compareVersionArrays()` in favor of including the [`compare-versions`](https://npmjs.com/package/compare-versions) library
-  - Added advanced feature to change the startup timeout
-  - A blue logo is shown instead of the red BetterYTM logo when the script was compiled in development / preview mode
-  - In dev/preview mode, missing configuration keys will now be set to their default value instead of potentially breaking the script
+  - Now using a single query parameter for lyrics lookup
+  - Added license for plugin-related source code, see [license-for-plugins.txt](https://github.com/Sv443/BetterYTM/blob/develop/license-for-plugins.txt)
+  - Added advanced feature to change the startup timeout (only impacts plugin initialization for now)
+  - Now using a blue logo is instead of the red BetterYTM logo when the script was compiled in development (preview) mode
   - SelectorObserver changes:
     - Added `ytMasthead` instance for the title bar on YT
     - Renamed all YT-specific instances to have the `yt` prefix
       - `watchFlexy` renamed to `ytWatchFlexy`
       - `watchMetadata` renamed to `ytWatchMetadata`
+  - Fixed missing configuration keys in development/preview mode instead of potentially breaking the script
   - Added Storybook for easier and faster development of components
   - Removed the `@updateURL` and `@downloadURL` directives because their use is controversial and the script has a built-in update check now
-  - Migrated to pnpm for faster compilation and development scripts
-- **Plugin Interface Changes:**
+  - Migrated to pnpm for faster compilation times
+- **Plugin Changes:**
   - Added new components:
     -  `createLongBtn()` to create a button with an icon and text (works either as normal or as a toggle button)  
       The design follows that of the subscribe button on YTM's channel pages, but the consistent class names make it easy to style it differently.
     - `showToast()` to show a custom toast notification with a message string or element and duration
     - `showIconToast()` to show a custom toast notification with a message string or element, icon and duration
-    - `createRipple()` to create a click ripple animation effect on any given element or create a new element with the effect
+    - `createRipple()` to create a click ripple animation effect on a given element (experimental)
     - `ExImDialog` class for creating a BytmDialog instance that is designed for exporting and importing generic data as a string
   - Changed components:
     - BytmDialog now has the option `removeListenersOnDestroy` (true by default) to configure removing all event listeners when the dialog is destroyed
     - BytmDialog's private members and methods have been changed to protected for easier extension (when using TypeScript)
-  - Added functions:
+  - Added interface functions:
     - `getAutoLikeData()` to return the current auto-like data (authenticated function)
     - `saveAutoLikeData()` to overwrite the auto-like data (authenticated function)
     - `fetchVideoVotes()` to fetch the approximate like and dislike count of a video from [Return Youtube Dislike](https://returnyoutubedislike.com/)
   - Added new SelectorObserver instance `browseResponse` for pages like `/channel/{id}`
-  - Added library `compare-versions` to the plugin interface at `unsafeWindow.BYTM.compareVersions` for easier plugin version comparison
+  - Renamed event `bytm:initPlugins` to `bytm:registerPlugins` to be more consistent
   - Added events
     - `bytm:featureInitStarted` - emitted when the feature initialization process starts
     - `bytm:featureInitialized` - emitted every time a feature has been initialized and is passed the feature's identifier string
     - `bytm:dialogClosed` - emitted when a BytmDialog is closed and gets passed the instance
     - `bytm:dialogClosed:id` - emitted only when the dialog with the given ID is closed and gets passed the instance
     - `bytm:siteEvent:pathChanged` - emitted whenever the URL path (`location.pathname`) changes
-  - Event `bytm:siteEvent:fullscreenToggled` will now only emit once per fullscreen change
-  - Renamed event `bytm:initPlugins` to `bytm:registerPlugins` to be more consistent
+  - Now the event `bytm:siteEvent:fullscreenToggled` is only emitted once per fullscreen change
   - Changed `event` property returned by `registerPlugin()` from nanoevents Emitter to NanoEmitter instance (see [`src/utils/NanoEmitter.ts`](https://github.com/Sv443/BetterYTM/blob/develop/src/utils/NanoEmitter.ts))  
-    In practice this changes nothing, but it benefits from having the additional methods `once()` for immediately unsubscribing from an event after it was emitted once and `unsubscribeAll()` to remove all event listeners.
+    In practice this changes nothing, but it benefits from plugins having access to the additional methods `once()` for immediately unsubscribing from an event after it was emitted once and `unsubscribeAll()` to remove all event listeners.
 
 </details>