new plugin FixSpotifyEmbeds: less loud embeds
This commit is contained in:
		
							parent
							
								
									817f0f7473
								
							
						
					
					
						commit
						0335e1ca59
					
				
					 2 changed files with 48 additions and 0 deletions
				
			
		|  | @ -22,6 +22,28 @@ import { readFile } from "fs/promises"; | |||
| import { request } from "https"; | ||||
| import { basename, normalize } from "path"; | ||||
| 
 | ||||
| import { getSettings } from "./ipcMain"; | ||||
| 
 | ||||
| // FixSpotifyEmbeds
 | ||||
| app.on("browser-window-created", (_, win) => { | ||||
|     win.webContents.on("frame-created", (_, { frame }) => { | ||||
|         frame.once("dom-ready", () => { | ||||
|             if (frame.url.startsWith("https://open.spotify.com/embed/")) { | ||||
|                 const settings = getSettings().plugins?.FixSpotifyEmbeds; | ||||
|                 if (!settings?.enabled) return; | ||||
| 
 | ||||
|                 frame.executeJavaScript(` | ||||
|                     const original = Audio.prototype.play; | ||||
|                     Audio.prototype.play = function() { | ||||
|                         this.volume = ${(settings.volume / 100) || 0.1}; | ||||
|                         return original.apply(this, arguments); | ||||
|                     } | ||||
|                 `);
 | ||||
|             } | ||||
|         }); | ||||
|     }); | ||||
| }); | ||||
| 
 | ||||
| // #region OpenInApp
 | ||||
| // These links don't support CORS, so this has to be native
 | ||||
| const validRedirectUrls = /^https:\/\/(spotify\.link|s\.team)\/.+$/; | ||||
|  |  | |||
							
								
								
									
										26
									
								
								src/plugins/fixSpotifyEmbeds.desktop.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/plugins/fixSpotifyEmbeds.desktop.ts
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | |||
| /* | ||||
|  * Vencord, a Discord client mod | ||||
|  * Copyright (c) 2023 Vendicated and contributors | ||||
|  * SPDX-License-Identifier: GPL-3.0-or-later | ||||
|  */ | ||||
| 
 | ||||
| import { definePluginSettings } from "@api/Settings"; | ||||
| import { makeRange } from "@components/PluginSettings/components"; | ||||
| import { Devs } from "@utils/constants"; | ||||
| import definePlugin, { OptionType } from "@utils/types"; | ||||
| 
 | ||||
| // The entire code of this plugin can be found in ipcPlugins
 | ||||
| export default definePlugin({ | ||||
|     name: "FixSpotifyEmbeds", | ||||
|     description: "Fixes spotify embeds being incredibly loud by letting you customise the volume", | ||||
|     authors: [Devs.Ven], | ||||
|     settings: definePluginSettings({ | ||||
|         volume: { | ||||
|             type: OptionType.SLIDER, | ||||
|             description: "The volume % to set for spotify embeds. Anything above 10% is veeeery loud", | ||||
|             markers: makeRange(0, 100, 10), | ||||
|             stickToMarkers: false, | ||||
|             default: 10 | ||||
|         } | ||||
|     }) | ||||
| }); | ||||
		Loading…
	
		Reference in a new issue