Skip to content

Commit d2bdbaf

Browse files
authored
Merge pull request #81 from PulseSync-LLC/dev
Merge dev into main
2 parents bcc9ef5 + 139cfb0 commit d2bdbaf

File tree

115 files changed

+2510
-1451
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+2510
-1451
lines changed

.gitignore

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ out/
9595
.idea
9696
yarn.lock
9797

98-
appConfig.ts
9998
release
10099

101100

@@ -110,10 +109,7 @@ src/main/modules/YMusic-DRPC.code-workspace
110109
uploadToS3.ts
111110
pnpm-lock.yaml
112111

113-
# Sentry Config File
114-
.env.sentry-build-plugin
115-
116112
Release
117113
Debug
118114
build
119-
*.node
115+
*.node

PATCHNOTES.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
### Добавлено
2+
- Модальное окно на случай, если у пользователя на MacOS/Linux будет недостаточно прав для установки мода
3+
Модальное окно, уведомляющее о том, что у пользователя теперь есть подписка
14
### Изменено
2-
- Изменен дизайн у модального окна установки/обновления мода
3-
- Изменен дизайн страницы авторизации
4-
- Улучшены сообщения в некоторых тостаx.
5-
- Теперь баннеры и аватары загружаются на фоне, а также под занимаемый размер на экране. (Раньше ваш ултра 4к баннер мог загружаться в картинку 200x300px)
5+
- Изменен дизайн у модальных окон. Теперь они более соответствуют дизайну приложения
66
### Исправлено
7-
- Теперь автозапуск яндекс музыки работает корректно
8-
- Из прогресс бара уровней убраны лишние элементы. Теперь он выглядит не перегружено
7+
- Локализация в Discord RPC
8+
- Баг, из-за которого обложка трека не менялась на заглушку, если у трека ее нет
9+
- Установка и удаление мода на Linux

package.json

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"author": "PulseSync <contact@pulsesync.dev>",
55
"description": "PulseSync app for desktops",
66
"homepage": "https://pulsesync.dev",
7-
"version": "2.10.2-beta",
7+
"version": "2.10.3-beta",
88
"main": ".vite/main/index.js",
99
"scripts": {
1010
"start": "electron-forge start",
@@ -24,23 +24,22 @@
2424
"keywords": [],
2525
"license": "GPL-3.0+",
2626
"devDependencies": {
27-
"@aws-sdk/client-s3": "^3.986.0",
27+
"@aws-sdk/client-s3": "^3.990.0",
2828
"@electron-forge/cli": "^7.11.1",
2929
"@electron-forge/maker-deb": "^7.11.1",
3030
"@electron-forge/maker-dmg": "^7.11.1",
3131
"@electron-forge/maker-rpm": "^7.11.1",
3232
"@electron-forge/maker-squirrel": "^7.11.1",
3333
"@electron-forge/maker-zip": "^7.11.1",
3434
"@electron-forge/plugin-vite": "^7.11.1",
35-
"@sentry/vite-plugin": "^4.9.1",
3635
"@types/adm-zip": "^0.5.7",
3736
"@types/electron": "^1.6.12",
3837
"@types/fs-extra": "^11.0.4",
3938
"@types/glob": "^9.0.0",
4039
"@types/lodash.debounce": "^4.0.9",
4140
"@types/node": "^25.2.3",
4241
"@types/plist": "^3.0.5",
43-
"@types/react": "^19.2.13",
42+
"@types/react": "^19.2.14",
4443
"@types/react-dom": "^19.2.3",
4544
"@types/react-modal": "^3.16.3",
4645
"@types/react-transition-group": "^4.4.12",
@@ -54,10 +53,10 @@
5453
"@types/unzipper": "^0.10.11",
5554
"@types/uuid": "^11.0.0",
5655
"@types/yazl": "^3.3.0",
57-
"@typescript-eslint/eslint-plugin": "^8.55.0",
58-
"@typescript-eslint/parser": "^8.55.0",
56+
"@typescript-eslint/eslint-plugin": "^8.56.0",
57+
"@typescript-eslint/parser": "^8.56.0",
5958
"@vitejs/plugin-react-swc": "^4.2.3",
60-
"electron": "40.2.1",
59+
"electron": "40.4.1",
6160
"electron-builder": "^26.7.0",
6261
"eslint": "^10.0.0",
6362
"eslint-plugin-import": "^2.32.0",
@@ -80,8 +79,6 @@
8079
"@emotion/styled": "^11.14.1",
8180
"@mui/joy": "^5.0.0-beta.52",
8281
"@radix-ui/react-tooltip": "^1.2.8",
83-
"@reduxjs/toolkit": "^2.11.2",
84-
"@sentry/electron": "^7.7.1",
8582
"@xhayper/discord-rpc": "^1.3.0",
8683
"acorn": "^8.15.0",
8784
"acorn-walk": "^8.3.4",
@@ -98,10 +95,10 @@
9895
"formik": "^2.4.9",
9996
"framer-motion": "^12.34.0",
10097
"fs-extra": "^11.3.3",
101-
"glob": "^13.0.1",
98+
"glob": "^13.0.3",
10299
"graphql": "^16.12.0",
103100
"graphql-ws": "^6.0.7",
104-
"i18next": "^25.8.4",
101+
"i18next": "^25.8.10",
105102
"lodash.debounce": "^4.0.8",
106103
"log4js": "^6.9.1",
107104
"net": "^1.0.2",
@@ -115,7 +112,6 @@
115112
"react-loading-skeleton": "^3.5.0",
116113
"react-markdown": "^10.1.0",
117114
"react-modal": "^3.16.3",
118-
"react-redux": "^9.2.0",
119115
"react-router-dom": "^7.13.0",
120116
"react-transition-group": "^4.4.5",
121117
"rehype-raw": "^7.0.0",
@@ -129,8 +125,8 @@
129125
"source-map-support": "^0.5.21",
130126
"stream-browserify": "^3.0.0",
131127
"string-similarity": "^4.0.4",
132-
"systeminformation": "^5.30.7",
133-
"tar": "^7.5.7",
128+
"systeminformation": "^5.31.0",
129+
"tar": "^7.5.9",
134130
"url": "^0.11.4",
135131
"uuid": "^13.0.0",
136132
"yaml": "^2.8.2",
@@ -146,9 +142,9 @@
146142
"forge": "./forge.config.ts"
147143
},
148144
"buildInfo": {
149-
"VERSION": "2.10.2-beta",
150-
"BRANCH": "897313a",
151-
"BUILD_TIME": "10.02.2026, 18:09:31"
145+
"VERSION": "2.10.3-beta",
146+
"BRANCH": "1247fa6",
147+
"BUILD_TIME": "16.02.2026, 21:24:59"
152148
},
153149
"optionalDependencies": {
154150
"bufferutil": "^4.1.0",

src/common/appConfig.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
export const isDev = false
2+
export const isDevmark = true
3+
export const branch = "beta"
4+
5+
const PORT = '2007'
6+
const MAIN_PORT = 2007
7+
8+
const config = {
9+
PORT,
10+
CLIENT_ID: '1270726237605855395',
11+
ENG_CLIENT_ID: '1270726237605855395',
12+
RU_CLIENT_ID: '1290778445370097674',
13+
RESERVE_CLIENT_ID: '1256145977056821248',
14+
UPDATE_URL: 'https://s3.pulsesync.dev',
15+
SERVER_URL: isDev ? 'http://localhost:4000' : 'https://ru-node-1.pulsesync.dev',
16+
WEBSITE_URL: isDev ? 'http://localhost:3100' : 'https://pulsesync.dev',
17+
S3_URL: 'https://s3.pulsesync.dev',
18+
SOCKET_URL: isDev ? 'http://localhost:1337/' : 'https://ru-node-1.pulsesync.dev/',
19+
RETRY_INTERVAL_MS: 15000,
20+
MAX_RETRY_COUNT: 15,
21+
MAIN_PORT,
22+
}
23+
24+
export default config

src/common/types/mainEvents.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ const Events = {
152152
PULSESYNC_DISMISS: 'PULSESYNC_DISMISS',
153153

154154
CLEAR_MOD_CACHE: 'CLEAR_MOD_CACHE',
155+
FIX_LINUX_MUSIC_PERMISSIONS: 'FIX_LINUX_MUSIC_PERMISSIONS',
155156
} as const
156157

157158
export default Events

src/common/types/rendererEvents.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ const Events = {
3232
DOWNLOAD_UPDATE_FAILED: 'DOWNLOAD_UPDATE_FAILED',
3333
UPDATE_AVAILABLE: 'UPDATE_AVAILABLE',
3434
MAC_UPDATE_READY: 'MAC_UPDATE_READY',
35+
REQUEST_MAC_PERMISSIONS: 'REQUEST_MAC_PERMISSIONS',
3536

3637
DOWNLOAD_MUSIC_PROGRESS: 'DOWNLOAD_MUSIC_PROGRESS',
3738
DOWNLOAD_MUSIC_FAILURE: 'DOWNLOAD_MUSIC_FAILURE',
@@ -52,6 +53,7 @@ const Events = {
5253

5354
CLEAR_MOD_CACHE_SUCCESS: 'CLEAR_MOD_CACHE_SUCCESS',
5455
CLEAR_MOD_CACHE_FAILURE: 'CLEAR_MOD_CACHE_FAILURE',
56+
OPEN_MODAL: 'OPEN_MODAL',
5557
} as const
5658

5759
export default Events

src/index.ts

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ import process from 'process'
33
import path from 'path'
44
import * as fs from 'original-fs'
55
import createTray from './main/modules/tray'
6-
import config from './common/appConfig'
76
import { checkForSingleInstance } from './main/modules/singleInstance'
8-
import * as Sentry from '@sentry/electron/main'
97
import { setAddon } from './main/modules/httpServer'
108
import { checkAsar, findAppByName, getPathToYandexMusic, isLinux, isMac, isWindows } from './main/utils/appUtils'
119
import logger from './main/modules/logger'
@@ -80,28 +78,7 @@ const initializeMusicPath = async () => {
8078
}
8179
initializeMusicPath()
8280

83-
const sentryPrefix = 'app:///'
84-
const sentryRoot = app.isPackaged ? path.join(process.resourcesPath, 'app.asar') : path.resolve(__dirname, '..', '..')
85-
86-
if (!isAppDev) {
87-
logger.main.info('Sentry enabled')
88-
Sentry.init({
89-
dsn: config.SENTRY_DSN,
90-
debug: isAppDev,
91-
release: `pulsesync@${app.getVersion()}`,
92-
environment: isAppDev ? 'development' : 'production',
93-
attachStacktrace: true,
94-
enableRendererProfiling: true,
95-
attachScreenshot: true,
96-
integrations: [
97-
Sentry.rewriteFramesIntegration({
98-
root: sentryRoot,
99-
prefix: sentryPrefix,
100-
}),
101-
],
102-
})
103-
Sentry.setTag('process', 'main')
104-
} else if (isWindows() || isMac()) {
81+
if (isAppDev && (isWindows() || isMac())) {
10582
const openAtLogin = app.getLoginItemSettings().openAtLogin
10683
if (openAtLogin) {
10784
app.setLoginItemSettings({

src/locales/en/main.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
"states": {
5959
"administrator": "Discord appears to be running as administrator. Please run PulseSync as administrator.",
6060
"closed": "Could not detect a running Discord instance!",
61-
"flatpak": "Discord appears to be running from the Flatpak package. This likely prevents RPC connection.",
6261
"snap": "Discord appears to be running from the Snap package. This likely prevents RPC connection.",
6362
"success": ""
6463
},
@@ -134,6 +133,7 @@
134133
"closingMusic": "Closing Yandex Music...",
135134
"fullDiskAccessRequired": "Please grant full disk access to the app.",
136135
"incompatibleMod": "The mod is not compatible with the current Yandex Music version.",
136+
"linuxPermissionsRequired": "Not enough permissions to modify Yandex Music files. Grant access and retry.",
137137
"modAlreadyInstalled": "Mod is already installed.",
138138
"modAsarNotFound": "{{name}} not found. Please reinstall Yandex Music.",
139139
"usingCache": "Using mod cache..."

0 commit comments

Comments
 (0)