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 { request } from "https"; | ||||||
| import { basename, normalize } from "path"; | 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
 | // #region OpenInApp
 | ||||||
| // These links don't support CORS, so this has to be native
 | // These links don't support CORS, so this has to be native
 | ||||||
| const validRedirectUrls = /^https:\/\/(spotify\.link|s\.team)\/.+$/; | 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