diff --git a/README.md b/README.md index bba8507..b7830d2 100644 --- a/README.md +++ b/README.md @@ -11,24 +11,25 @@ The web version of [listen.tidal.com](https://listen.tidal.com) running in elect +- [Table of contents](#table-of-contents) - [Installation](#installation) - * [Using releases](#using-releases) - * [Snap](#snap) - * [Arch Linux](#arch-linux) - * [Flatpak](#flatpak) - * [Nix](#nix) - * [Using source](#using-source) + - [Using releases](#using-releases) + - [Snap](#snap) + - [Arch Linux](#arch-linux) + - [Flatpak](#flatpak) + - [Nix](#nix) + - [Using source](#using-source) - [Features](#features) - [Integrations](#integrations) - * [Known bugs](#known-bugs) - + [last.fm doesn't work out of the box. Use rescrobbler as a workaround](#lastfm-doesnt-work-out-of-the-box-use-rescrobbler-as-a-workaround) + - [Known bugs](#known-bugs) + - [last.fm doesn't work out of the box. Use rescrobbler as a workaround](#lastfm-doesnt-work-out-of-the-box-use-rescrobbler-as-a-workaround) - [Why](#why) - [Why not extend existing projects?](#why-not-extend-existing-projects) - [Special thanks to...](#special-thanks-to) - [Buy me a coffee? Please don't](#buy-me-a-coffee-please-dont) - [Images](#images) - * [Settings window](#settings-window) - * [User setups](#user-setups) + - [Settings window](#settings-window) + - [User setups](#user-setups) @@ -93,7 +94,7 @@ To install and work with the code on this project follow these steps: - Notifications - Custom hotkeys ([source](https://defkey.com/tidal-desktop-shortcuts)) - API for status and playback -- [Mute artists automatically (defaults to "Tidal")]("./docs/muting-artists.md") +- Block ads and enable video playback thanks to uBlock Origin custom filters (breakage is possible) - Custom [integrations](#integrations) - [Settings feature](./docs/settings.png) to disable certain functionality. (`ctrl+=` or `ctrl+0`) - AlbumArt in integrations ([best-effort](https://github.com/Mastermindzh/tidal-hifi/pull/88#pullrequestreview-840814847)) diff --git a/docs/muting-artists.md b/docs/muting-artists.md deleted file mode 100644 index b39c1ce..0000000 --- a/docs/muting-artists.md +++ /dev/null @@ -1,11 +0,0 @@ -# Muting artists - -If you feel that some of your music is embarrassing for others you can mute specific artists in the settings window. -This functionality is inspired by the [adblock ticket](https://github.com/Mastermindzh/tidal-hifi/issues/112), and whilst I personally feel you should simply buy Tidal, I also believe in muting sound that you don't want to hear. - -Anyway, to block an artist, open the settings window (see image below) and enter a list of artists in the textarea as seen below. -Don't forget to turn the feature on and Tidal-hifi will automatically mute the player whenever that artist is playing. - -This will allow you to skip the song without anyone noticing. (you can always say "no idea, it seems to have no audio"). - -![muted artists settings window](./settings-muted-artists.png) diff --git a/docs/settings-muted-artists.png b/docs/settings-muted-artists.png deleted file mode 100644 index 17a5e71..0000000 Binary files a/docs/settings-muted-artists.png and /dev/null differ diff --git a/src/constants/settings.js b/src/constants/settings.js index 1a4e7ff..85cdb77 100644 --- a/src/constants/settings.js +++ b/src/constants/settings.js @@ -13,10 +13,9 @@ const settings = { api: "api", menuBar: "menuBar", playBackControl: "playBackControl", - muteArtists: "muteArtists", - mutedArtists: "mutedArtists", skipArtists: "skipArtists", skippedArtists: "skippedArtists", + adBlock: "adBlock", disableBackgroundThrottle: "disableBackgroundThrottle", apiSettings: { root: "apiSettings", diff --git a/src/main.js b/src/main.js index c09e380..98d6b09 100644 --- a/src/main.js +++ b/src/main.js @@ -1,5 +1,5 @@ require("@electron/remote/main").initialize(); -const { app, BrowserWindow, components, globalShortcut, ipcMain, protocol } = require("electron"); +const { app, BrowserWindow, components, globalShortcut, ipcMain, protocol, session } = require("electron"); const { settings, store, @@ -146,6 +146,16 @@ function addGlobalShortcuts() { app.on("ready", async () => { if (isMainInstanceOrMultipleInstancesAllowed()) { await components.whenReady(); + + // Adblock + if (store.get(settings.adBlock)) { + const filter = { urls: ["https://listen.tidal.com/*"] }; + session.defaultSession.webRequest.onBeforeRequest(filter, (details, callback) => { + if (details.url.match(/\d\?country/)) callback({ cancel: true }); + else callback({ cancel: false }); + }); + } + createWindow(); addMenu(mainWindow); createSettingsWindow(); diff --git a/src/pages/settings/preload.js b/src/pages/settings/preload.js index 49c23a8..93ff4d9 100644 --- a/src/pages/settings/preload.js +++ b/src/pages/settings/preload.js @@ -3,15 +3,14 @@ let trayIcon, mpris, enableCustomHotkeys, enableDiscord, - muteArtists, skipArtists, notifications, playBackControl, api, port, menuBar, - mutedArtists, skippedArtists, + adBlock, disableBackgroundThrottle, singleInstance, disableHardwareMediaKeys, @@ -36,10 +35,9 @@ function refreshSettings() { enableCustomHotkeys.checked = store.get(settings.enableCustomHotkeys); enableDiscord.checked = store.get(settings.enableDiscord); minimizeOnClose.checked = store.get(settings.minimizeOnClose); - muteArtists.checked = store.get(settings.muteArtists); - mutedArtists.value = store.get(settings.mutedArtists).join("\n"); skipArtists.checked = store.get(settings.skipArtists); skippedArtists.value = store.get(settings.skippedArtists).join("\n"); + adBlock.checked = store.get(settings.adBlock); singleInstance.checked = store.get(settings.singleInstance); disableHardwareMediaKeys.checked = store.get(settings.flags.disableHardwareMediaKeys); gpuRasterization.checked = store.get(settings.flags.gpuRasterization); @@ -121,10 +119,9 @@ window.addEventListener("DOMContentLoaded", () => { mpris = get("mprisCheckbox"); enableCustomHotkeys = get("enableCustomHotkeys"); enableDiscord = get("enableDiscord"); - muteArtists = get("muteArtists"); - mutedArtists = get("mutedArtists"); skipArtists = get("skipArtists"); skippedArtists = get("skippedArtists"); + adBlock = get("adBlock"); disableBackgroundThrottle = get("disableBackgroundThrottle"); singleInstance = get("singleInstance"); disableHardwareMediaKeys = get("disableHardwareMediaKeys"); @@ -142,10 +139,9 @@ window.addEventListener("DOMContentLoaded", () => { addInputListener(enableCustomHotkeys, settings.enableCustomHotkeys); addInputListener(enableDiscord, settings.enableDiscord); addInputListener(minimizeOnClose, settings.minimizeOnClose); - addInputListener(muteArtists, settings.muteArtists); - addTextAreaListener(mutedArtists, settings.mutedArtists); addInputListener(skipArtists, settings.skipArtists); addTextAreaListener(skippedArtists, settings.skippedArtists); + addInputListener(adBlock, settings.adBlock); addInputListener(disableBackgroundThrottle, settings.disableBackgroundThrottle); addInputListener(singleInstance, settings.singleInstance); addInputListener(disableHardwareMediaKeys, settings.flags.disableHardwareMediaKeys); diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 85bf67f..09d0ee1 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -54,26 +54,25 @@
The following list of artists (1 per line) will be muted automatically.
+The following list of artists (1 per line) will be skipped automatically.
The following list of artists (1 per line) will be skipped automatically.
+Enjoys ad-free playback with video feature enabled for free accounts.