mirror of
https://github.com/Mastermindzh/tidal-hifi.git
synced 2025-09-10 05:45:04 +02:00
Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
662ef6ad7b | |||
5313ab13d3 | |||
f43f227191 | |||
|
ae25d88e94 | ||
5ef6074015 |
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
|||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
- uses: actions/setup-node@master
|
- uses: actions/setup-node@master
|
||||||
with:
|
with:
|
||||||
node-version: 12
|
node-version: 16
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ jobs:
|
|||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
- uses: actions/setup-node@master
|
- uses: actions/setup-node@master
|
||||||
with:
|
with:
|
||||||
node-version: 12
|
node-version: 16
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
|
|
||||||
@@ -32,6 +32,6 @@ jobs:
|
|||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
- uses: actions/setup-node@master
|
- uses: actions/setup-node@master
|
||||||
with:
|
with:
|
||||||
node-version: 12
|
node-version: 16
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
|
6
.github/workflows/release.yml
vendored
6
.github/workflows/release.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
|||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
- uses: actions/setup-node@master
|
- uses: actions/setup-node@master
|
||||||
with:
|
with:
|
||||||
node-version: 12
|
node-version: 16
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
- uses: actions/upload-artifact@master
|
- uses: actions/upload-artifact@master
|
||||||
@@ -26,7 +26,7 @@ jobs:
|
|||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
- uses: actions/setup-node@master
|
- uses: actions/setup-node@master
|
||||||
with:
|
with:
|
||||||
node-version: 12
|
node-version: 16
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
- uses: actions/upload-artifact@master
|
- uses: actions/upload-artifact@master
|
||||||
@@ -40,7 +40,7 @@ jobs:
|
|||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
- uses: actions/setup-node@master
|
- uses: actions/setup-node@master
|
||||||
with:
|
with:
|
||||||
node-version: 12
|
node-version: 16
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
- uses: actions/upload-artifact@master
|
- uses: actions/upload-artifact@master
|
||||||
|
21
CHANGELOG.md
21
CHANGELOG.md
@@ -4,6 +4,25 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## 2.5.0
|
||||||
|
|
||||||
|
- Notify-send now correctly shows "Tidal Hifi" as the program name
|
||||||
|
|
||||||
|
- Updated dependencies (including electron itself)
|
||||||
|
|
||||||
|
### known issues
|
||||||
|
|
||||||
|
- Requires older version of nodejs due to electron-builder (use lts/gallium)
|
||||||
|
|
||||||
|
### builds
|
||||||
|
|
||||||
|
updated to nodejs 16 in actions
|
||||||
|
|
||||||
|
## 2.4.0
|
||||||
|
|
||||||
|
- Added more mpris settings
|
||||||
|
- Added instruction for rescrobbler to get last.fm working without sandbox mode
|
||||||
|
|
||||||
## 2.3.0
|
## 2.3.0
|
||||||
|
|
||||||
- Added a setting to minimize to tray on app close (off by default)
|
- Added a setting to minimize to tray on app close (off by default)
|
||||||
@@ -21,7 +40,7 @@ moved to: [https://github.com/Mastermindzh/tidal-hifi-aur](https://github.com/Ma
|
|||||||
## 2.2.0
|
## 2.2.0
|
||||||
|
|
||||||
- The discord integration now adds a time remaining field based on the song duration
|
- The discord integration now adds a time remaining field based on the song duration
|
||||||
- All fields (current, remaining, and url are also available in the API*)
|
- All fields (current, remaining, and url are also available in the API\*)
|
||||||
- the artist field is now correctly identified
|
- the artist field is now correctly identified
|
||||||
|
|
||||||
* current time only updates on play/pause.
|
* current time only updates on play/pause.
|
||||||
|
@@ -20,6 +20,7 @@ The web version of [listen.tidal.com](https://listen.tidal.com) running in elect
|
|||||||
- [Integrations](#integrations)
|
- [Integrations](#integrations)
|
||||||
- [not included](#not-included)
|
- [not included](#not-included)
|
||||||
- [Known bugs](#known-bugs)
|
- [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](#why)
|
||||||
- [Why not extend existing projects?](#why-not-extend-existing-projects)
|
- [Why not extend existing projects?](#why-not-extend-existing-projects)
|
||||||
- [Special thanks to...](#special-thanks-to)
|
- [Special thanks to...](#special-thanks-to)
|
||||||
@@ -96,7 +97,11 @@ It currently includes:
|
|||||||
|
|
||||||
### Known bugs
|
### Known bugs
|
||||||
|
|
||||||
- [Last.fm login doesn't work](https://github.com/Mastermindzh/tidal-hifi/issues/4).
|
#### last.fm doesn't work out of the box. Use rescrobbler as a workaround
|
||||||
|
|
||||||
|
The last.fm login doesn't work, as is evident from the following issue: [Last.fm login doesn't work](https://github.com/Mastermindzh/tidal-hifi/issues/4).
|
||||||
|
However, in that same issue you can read about a workaround using [rescrobbler](https://github.com/InputUsername/rescrobbled).
|
||||||
|
For now that will be the default workaround.
|
||||||
|
|
||||||
## Why
|
## Why
|
||||||
|
|
||||||
|
@@ -34,3 +34,7 @@ mac:
|
|||||||
category: public.app-category.entertainment
|
category: public.app-category.entertainment
|
||||||
win:
|
win:
|
||||||
target: msi
|
target: msi
|
||||||
|
icon: build/icon.png
|
||||||
|
artifactName: "tidalhifi"
|
||||||
|
appId: com.rickvanlieshout.tidalhifi
|
||||||
|
executableName: tidalhifi
|
||||||
|
5215
package-lock.json
generated
5215
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
19
package.json
19
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "tidal-hifi",
|
"name": "tidal-hifi",
|
||||||
"version": "2.3.0",
|
"version": "2.5.0",
|
||||||
"description": "Tidal on Electron with widevine(hifi) support",
|
"description": "Tidal on Electron with widevine(hifi) support",
|
||||||
"main": "src/main.js",
|
"main": "src/main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -23,21 +23,20 @@
|
|||||||
"homepage": "https://github.com/Mastermindzh/tidal-hifi",
|
"homepage": "https://github.com/Mastermindzh/tidal-hifi",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"discord-rpc": "^3.2.0",
|
"discord-rpc": "^4.0.1",
|
||||||
"electron-store": "^5.1.1",
|
"electron-store": "^8.0.1",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"hotkeys-js": "^3.7.6",
|
"hotkeys-js": "^3.8.7",
|
||||||
"mpris-service": "^2.1.0",
|
"mpris-service": "^2.1.2",
|
||||||
"node-notifier": "^9.0.1",
|
"node-notifier": "^10.0.0",
|
||||||
"request": "^2.88.2"
|
"request": "^2.88.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@mastermindzh/prettier-config": "^1.0.0",
|
"@mastermindzh/prettier-config": "^1.0.0",
|
||||||
"dot-prop": ">=4.2.1",
|
"electron": "git+https://github.com/castlabs/electron-releases.git#v16.0.4+wvcus",
|
||||||
"electron": "git+https://github.com/castlabs/electron-releases.git#v10.4.3-wvvmp",
|
"electron-builder": "^22.14.5",
|
||||||
"electron-builder": "^21.2.0",
|
|
||||||
"electron-reload": "^1.5.0",
|
"electron-reload": "^1.5.0",
|
||||||
"prettier": "^2.0.4"
|
"prettier": "^2.5.0"
|
||||||
},
|
},
|
||||||
"prettier": "@mastermindzh/prettier-config"
|
"prettier": "@mastermindzh/prettier-config"
|
||||||
}
|
}
|
||||||
|
@@ -234,6 +234,15 @@ function getCurrentlyPlayingStatus() {
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the duration from MM:SS to seconds
|
||||||
|
* @param {*} duration
|
||||||
|
*/
|
||||||
|
function convertDuration(duration) {
|
||||||
|
const parts = duration.split(":");
|
||||||
|
return parseInt(parts[1]) + 60 * parseInt(parts[0]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update Tidal-hifi's media info
|
* Update Tidal-hifi's media info
|
||||||
*
|
*
|
||||||
@@ -243,14 +252,14 @@ function updateMediaInfo(options, notify) {
|
|||||||
if (options) {
|
if (options) {
|
||||||
ipcRenderer.send(globalEvents.updateInfo, options);
|
ipcRenderer.send(globalEvents.updateInfo, options);
|
||||||
store.get(settings.notifications) && notify && notifier.notify(options);
|
store.get(settings.notifications) && notify && notifier.notify(options);
|
||||||
|
|
||||||
if (player) {
|
if (player) {
|
||||||
player.metadata = {
|
player.metadata = {
|
||||||
...player.metadata,
|
...player.metadata,
|
||||||
...{
|
...{
|
||||||
"xesam:title": options.title,
|
"xesam:title": options.title,
|
||||||
"xesam:artist": [options.artists],
|
"xesam:artist": [options.message],
|
||||||
"mpris:artUrl": options.image,
|
"mpris:artUrl": options.image,
|
||||||
|
"mpris:length": convertDuration(options.duration) * 1000 * 1000,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
player.playbackStatus = options.status == statuses.paused ? "Paused" : "Playing";
|
player.playbackStatus = options.status == statuses.paused ? "Paused" : "Playing";
|
||||||
@@ -283,6 +292,7 @@ setInterval(function () {
|
|||||||
const artists = elements.getArtists();
|
const artists = elements.getArtists();
|
||||||
const current = elements.getText("current");
|
const current = elements.getText("current");
|
||||||
const duration = elements.getText("duration");
|
const duration = elements.getText("duration");
|
||||||
|
const appName = "Tidal Hifi";
|
||||||
const progressBarcurrentTime = elements.get("bar").getAttribute("aria-valuenow");
|
const progressBarcurrentTime = elements.get("bar").getAttribute("aria-valuenow");
|
||||||
const songDashArtistTitle = `${title} - ${artists}`;
|
const songDashArtistTitle = `${title} - ${artists}`;
|
||||||
const currentStatus = getCurrentlyPlayingStatus();
|
const currentStatus = getCurrentlyPlayingStatus();
|
||||||
@@ -293,6 +303,7 @@ setInterval(function () {
|
|||||||
url: currentURL,
|
url: currentURL,
|
||||||
current: current,
|
current: current,
|
||||||
duration: duration,
|
duration: duration,
|
||||||
|
'app-name': appName,
|
||||||
};
|
};
|
||||||
|
|
||||||
const playStatusChanged = currentStatus !== currentPlayStatus;
|
const playStatusChanged = currentStatus !== currentPlayStatus;
|
||||||
@@ -331,6 +342,7 @@ setInterval(function () {
|
|||||||
|
|
||||||
new Promise((resolve) => {
|
new Promise((resolve) => {
|
||||||
if (image.startsWith("http")) {
|
if (image.startsWith("http")) {
|
||||||
|
options.image = image;
|
||||||
downloadFile(image, notificationPath).then(
|
downloadFile(image, notificationPath).then(
|
||||||
() => {
|
() => {
|
||||||
options.icon = notificationPath;
|
options.icon = notificationPath;
|
||||||
@@ -397,6 +409,10 @@ if (process.platform === "linux" && store.get(settings.mpris)) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
// Override get position function
|
||||||
|
player.getPosition = function () {
|
||||||
|
return convertDuration(elements.getText("current")) * 1000 * 1000;
|
||||||
|
};
|
||||||
|
|
||||||
player.on("quit", function () {
|
player.on("quit", function () {
|
||||||
app.quit();
|
app.quit();
|
||||||
|
Reference in New Issue
Block a user