From 26c8a38350ddb1673797ff81fc29274b9ac4bdad Mon Sep 17 00:00:00 2001 From: Thanasis Trispiotis Date: Thu, 20 Apr 2023 20:07:44 +0300 Subject: [PATCH 1/5] adblocking thanks to custom ad filters derived from uBlock Origin: https://github.com/uBlockOrigin/uAssets/issues/17495 --- README.md | 23 ++++++++++++----------- docs/muting-artists.md | 11 ----------- docs/settings-muted-artists.png | Bin 105470 -> 0 bytes src/constants/settings.js | 3 +-- src/main.js | 12 +++++++++++- src/pages/settings/preload.js | 12 ++++-------- src/pages/settings/settings.html | 21 ++++++++++----------- src/preload.js | 20 -------------------- src/scripts/settings.js | 3 +-- 9 files changed, 39 insertions(+), 66 deletions(-) delete mode 100644 docs/muting-artists.md delete mode 100644 docs/settings-muted-artists.png 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 17a5e718139f4cc8c31e267e2b62f194c07529b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105470 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 iwdr>z^M8F_{C@xhCXowcxrYk?0000 { 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 @@ -52,17 +52,6 @@ -
-
-

Mute Artists automatically

-

The following list of artists (1 per line) will be muted automatically.

-
- -
-

Skip Artists automatically

@@ -74,6 +63,16 @@
+
+
+

Block ads

+

Enjoys ad-free playback with video feature enabled for free accounts.

+
+ +
diff --git a/src/preload.js b/src/preload.js index e23d6ed..72fe193 100644 --- a/src/preload.js +++ b/src/preload.js @@ -13,7 +13,6 @@ const appName = "Tidal Hifi"; let currentSong = ""; let player; let currentPlayStatus = statuses.paused; -let isMutedArtist = true; const elements = { play: '*[data-test="play"]', @@ -329,7 +328,6 @@ setInterval(function () { const title = elements.getText("title"); const artists = elements.getArtists(); skipArtistsIfFoundInSkippedArtistsList(artists); - muteArtistIfFoundInMutedArtistsList(artists); // doing this here so that nothing can possibly fail before we call this function const album = elements.getAlbumName(); const current = elements.getText("current"); @@ -381,24 +379,6 @@ setInterval(function () { () => {} ); - /** - * Checks whether the current artist is included in the "muted artists" list and if so it will automatically mute the player - */ - function muteArtistIfFoundInMutedArtistsList(artists) { - if (store.get(settings.muteArtists)) { - const mutedArtists = store.get(settings.mutedArtists); - if (mutedArtists.find((artist) => artist === artists) !== undefined) { - if (!elements.isMuted()) { - isMutedArtist = true; - elements.click("volume"); - } - } else if (isMutedArtist && elements.isMuted()) { - elements.click("volume"); - isMutedArtist = false; - } - } - } - /** * automatically skip a song if the artists are found in the list of artists to skip * @param {*} artists list of artists to skip diff --git a/src/scripts/settings.js b/src/scripts/settings.js index fe79179..bd30cd0 100644 --- a/src/scripts/settings.js +++ b/src/scripts/settings.js @@ -10,10 +10,9 @@ const store = new Store({ notifications: true, api: true, playBackControl: true, - muteArtists: false, - mutedArtists: ["TIDAL"], skipArtists: false, skippedArtists: [""], + adBlock: false, disableBackgroundThrottle: true, menuBar: true, apiSettings: { From a2a20238535d5bd2e85af94d06e425c69aaae67d Mon Sep 17 00:00:00 2001 From: Thanasis Trispiotis Date: Thu, 20 Apr 2023 20:09:40 +0300 Subject: [PATCH 2/5] exit when restart - if tray minimize is enabled quit hides the app to tray --- src/pages/settings/preload.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/settings/preload.js b/src/pages/settings/preload.js index 93ff4d9..905128d 100644 --- a/src/pages/settings/preload.js +++ b/src/pages/settings/preload.js @@ -64,7 +64,7 @@ function hide() { */ function restart() { app.relaunch(); - app.quit(); + app.exit(); } /** From b2e68f5a8f081ae1509393372739c234a411bd36 Mon Sep 17 00:00:00 2001 From: Thanasis Trispiotis Date: Thu, 20 Apr 2023 20:11:22 +0300 Subject: [PATCH 3/5] add trackid - mpris important property (maybe needed sometime) --- src/preload.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/preload.js b/src/preload.js index 72fe193..7816e8b 100644 --- a/src/preload.js +++ b/src/preload.js @@ -300,6 +300,7 @@ function updateMediaInfo(options, notify) { "xesam:album": options.album, "mpris:artUrl": options.image, "mpris:length": convertDuration(options.duration) * 1000 * 1000, + "mpris:trackid": "/org/mpris/MediaPlayer2/track/" + getTrackID(), }, }; player.playbackStatus = options.status == statuses.paused ? "Paused" : "Playing"; @@ -321,6 +322,16 @@ function getTrackURL() { return window.location; } +function getTrackID() { + const URLelement = elements.get("title").querySelector("a"); + if (URLelement !== null) { + const id = URLelement.href.replace(/[^0-9]/g, ""); + return id; + } + + return window.location; +} + /** * Watch for song changes and update title + notify */ From 1de71aa82b9a3bf4f5a904e916c2ac9038eb0b7c Mon Sep 17 00:00:00 2001 From: Thanasis Trispiotis Date: Fri, 21 Apr 2023 01:38:20 +0300 Subject: [PATCH 4/5] update docs --- README.md | 50 ++++++++++++++++---------------- src/pages/settings/settings.html | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index b7830d2..4213de3 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,35 @@ -

-Tidal-hifi - -

+# Tidal-hifi + +![GitHub release](https://img.shields.io/github/release/Mastermindzh/tidal-hifi.svg) The web version of [listen.tidal.com](https://listen.tidal.com) running in electron with hifi support thanks to widevine. ![tidal-hifi preview](./docs/preview.png) -## Table of contents +## Table of Contents -- [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) -- [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) -- [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) +- [Tidal-hifi](#tidal-hifi) + - [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) + - [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) + - [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) @@ -94,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 -- Block ads and enable video playback thanks to uBlock Origin custom filters (breakage is possible) +- Disabled audio & visual ads, unlocked lyrics, suggested track, track info, unlimited skips thanks to uBlockOrigin custom filters ([source](https://github.com/uBlockOrigin/uAssets/issues/17495)) - 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/src/pages/settings/settings.html b/src/pages/settings/settings.html index 09d0ee1..db85cf0 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -66,7 +66,7 @@

Block ads

-

Enjoys ad-free playback with video feature enabled for free accounts.

+

Disabled audio & visual ads, unlocked lyrics, suggested track, track info, unlimited skips

@@ -58,7 +58,7 @@

The following list of artists (1 per line) will be skipped automatically.

@@ -66,14 +66,16 @@

Block ads

-

Disabled audio & visual ads, unlocked lyrics, suggested track, track info, unlimited skips

+

+ Disabled audio & visual ads, unlocked lyrics, suggested track, track info, + unlimited skips +

-

UI

@@ -83,7 +85,7 @@

Always show TIDAL Hi-Fi's menu bar.

@@ -96,7 +98,7 @@

Show TIDAL Hi-Fi's tray icon.

@@ -106,7 +108,7 @@

Minimize window on close instead.

@@ -119,7 +121,7 @@

@@ -129,7 +131,7 @@

Prevent opening multiple TIDAL Hi-Fi's instances.

@@ -141,8 +143,8 @@

API

- TIDAL Hi-Fi has a built-in web API to allow users to get current song information. You can optionally - enable playback control as well. + TIDAL Hi-Fi has a built-in web API to allow users to get current song information. + You can optionally enable playback control as well.

@@ -151,14 +153,14 @@

Enable the TIDAL Hi-Fi web API.

- +
@@ -167,7 +169,7 @@

Enable playback control from the web API.

@@ -179,18 +181,20 @@

Integrations

- TIDAL Hi-Fi is extensible through the use of integrations. - You can enable or disable them here. + TIDAL Hi-Fi is extensible through the use of integrations. You can enable or + disable them here.

MPRIS

-

Enable MPRIS interface which provides a mechanism for discovery, querying and basic playback control - on Linux systems.

+

+ Enable MPRIS interface which provides a mechanism for discovery, querying and + basic playback control on Linux systems. +

@@ -200,7 +204,7 @@

Show what you're listening to on Discord.

@@ -214,12 +218,12 @@

Disable hardware built-in media keys

- Also prevents certain desktop environments from recognizing the chrome - MPRIS client separately from the custom MPRIS client. + Also prevents certain desktop environments from recognizing the chrome MPRIS + client separately from the custom MPRIS client.

@@ -229,17 +233,19 @@

Move a part of the rendering to the GPU for increased performance.

Disable Background Throttling

-

Makes app more responsive while in the background, at the cost of performance.

+

+ Makes app more responsive while in the background, at the cost of performance. +

@@ -247,17 +253,20 @@
-
@@ -266,4 +275,4 @@ - + \ No newline at end of file diff --git a/src/preload.js b/src/preload.js index 7816e8b..f58a7b1 100644 --- a/src/preload.js +++ b/src/preload.js @@ -313,19 +313,14 @@ function updateMediaInfo(options, notify) { * If it's a song it returns the track URL, if not it will return undefined */ function getTrackURL() { - const URLelement = elements.get("title").querySelector("a"); - if (URLelement !== null) { - const id = URLelement.href.replace(/[^0-9]/g, ""); - return `https://tidal.com/browse/track/${id}`; - } - - return window.location; + const id = getTrackID(); + return `https://tidal.com/browse/track/${id}`; } function getTrackID() { const URLelement = elements.get("title").querySelector("a"); if (URLelement !== null) { - const id = URLelement.href.replace(/[^0-9]/g, ""); + const id = URLelement.href.replace(/\D/g, ""); return id; } @@ -402,7 +397,7 @@ setInterval(function () { } } } -}, 1000); +}, 100); if (process.platform === "linux" && store.get(settings.mpris)) { try {
- tidal icon + tidal icon

TIDAL Hi-Fi - is made by - Rick van Lieshout.
It uses Castlabs' + is made by + + Rick van Lieshout.
It uses + Castlabs' version of Electron for widevine support.