Skip to content
This repository was archived by the owner on Mar 11, 2025. It is now read-only.

Commit 48a9354

Browse files
authored
Merge pull request #271 from Moosync/dev
10.1.0
2 parents 9b2780b + 6600710 commit 48a9354

57 files changed

Lines changed: 1728 additions & 2260 deletions

Some content is hidden

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

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ko_fi: ovenoboyo
1+
custom: ["https://github.com/Moosync/Moosync#Donations", "Cryptocurrency"]

README.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
- Available on Windows and Linux and MacOS
2626

2727
## Links
28+
2829
[Official website](https://moosync.app) |
2930
[Downloads](#releases) |
3031
[Discord](https://discord.gg/HsbqbRune3)
@@ -36,7 +37,8 @@ You may download the latest release from [Official website](https://moosync.app)
3637

3738
### Windows (Chocolatey)
3839

39-
If you use [Chocolatey](https://community.chocolatey.org/packages/moosync), Moosync can be installed using
40+
If you use [Chocolatey](https://community.chocolatey.org/packages/moosync), Moosync can be installed using
41+
4042
```bash
4143
choco install moosync
4244
```
@@ -46,13 +48,15 @@ Otherwise you may download the latest installer from [Releases](https://github.c
4648
### Ubuntu / Debian (3rd party repo)
4749

4850
You can install Moosync through our hosted [APT repo]([/Moosync/ppa](https://github.com/Moosync/ppa))
51+
4952
```bash
5053
bash <(wget -O- https://raw.githubusercontent.com/Moosync/Moosync/main/setup_ppa.sh)
5154
```
5255

5356
### Fedora
5457

5558
Moosync can be found on [Fedora COPR](https://copr.fedorainfracloud.org/coprs/ovenoboyo/Moosync/). You can install it using [dnf](https://docs.fedoraproject.org/en-US/quick-docs/dnf/)
59+
5660
```bash
5761
dnf copr enable ovenoboyo/Moosync
5862
dnf install moosync
@@ -70,13 +74,15 @@ yay -S moosync
7074

7175
Moosync can be found on [FlatHub](https://flathub.org/apps/details/app.moosync.moosync) as ```app.moosync.moosync```.
7276
You may install it by
77+
7378
```bash
7479
flatpak install flathub app.moosync.moosync
7580
```
7681

7782
### Snap Store
7883

7984
You can get Moosync from [Snap store](https://snapcraft.io/moosync).
85+
8086
```
8187
sudo snap install moosync
8288
```
@@ -87,7 +93,6 @@ Checkout the [Official Wiki](https://moosync.app/wiki/) on [moosync.app](https:/
8793

8894
For any further questions you may join us on [Discord](https://discord.gg/HsbqbRune3)
8995

90-
9196
## Screenshots
9297

9398
![Song view](./extras/screenshot_song_view.png)
@@ -125,3 +130,15 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
125130
<!-- ALL-CONTRIBUTORS-LIST:END -->
126131

127132
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
133+
134+
## Donations
135+
136+
| Cryptocurrency | Address |
137+
| --- | --- |
138+
| Bitcoin (BTC) | bc1qhcywctcy4exkcdd726d2lxkwaluqwgym0ynf9j |
139+
| Ethereum (ETH)| 0x0AFaCe6031e2fBe54D2fBF493310C0f5C3Cef677 |
140+
| Dogecoin (DOGE) | bc1qhcywctcy4exkcdd726d2lxkwaluqwgym0ynf9j |
141+
| Litecoin (LTC) | LLkim24N5yduBbXiFaLMbUeUwmyZ9VUQt7 |
142+
| Polygon (MATIC) | 0x0AFaCe6031e2fBe54D2fBF493310C0f5C3Cef677 |
143+
| Tether USD (USDT) | 0x0AFaCe6031e2fBe54D2fBF493310C0f5C3Cef677 |
144+
| USD coin (USDC) | 0x0AFaCe6031e2fBe54D2fBF493310C0f5C3Cef677 |

aur/moosync-git

Submodule moosync-git updated from 4419eaa to c19235f

moosync.code-workspace

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
}
66
],
77
"settings": {
8-
"eslint.validate": ["vue"],
8+
"eslint.validate": [
9+
"vue"
10+
],
911
"editor.tabSize": 2,
1012
"cSpell.words": [
1113
"Adwaita",
@@ -120,7 +122,7 @@
120122
"editor.formatOnPaste": true,
121123
"typescript.tsdk": "node_modules/typescript/lib",
122124
"[vue]": {
123-
"editor.defaultFormatter": "esbenp.prettier-vscode"
125+
"editor.defaultFormatter": "Vue.volar"
124126
},
125127
"[typescript]": {
126128
"editor.defaultFormatter": "rome.rome"
@@ -233,6 +235,8 @@
233235
}
234236
},
235237
"extensions": {
236-
"recommendations": ["rome.rome"]
238+
"recommendations": [
239+
"rome.rome"
240+
]
237241
}
238-
}
242+
}

package.json

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "moosync",
3-
"version": "10.0.0",
3+
"version": "10.1.0",
44
"private": true,
55
"author": "Ovenoboyo <ovenoboyo@gmail.com>",
66
"description": "Moosync is a customizable desktop music player with a clean interface",
@@ -17,36 +17,34 @@
1717
"postuninstall": "patch-package && electron-builder install-app-deps"
1818
},
1919
"dependencies": {
20-
"@babel/core": "^7.22.10",
21-
"@babel/eslint-parser": "^7.22.10",
20+
"@babel/core": "^7.22.11",
21+
"@babel/eslint-parser": "^7.22.11",
2222
"@babel/plugin-proposal-class-properties": "^7.18.6",
2323
"@babel/plugin-syntax-bigint": "^7.8.3",
2424
"@babel/plugin-transform-runtime": "^7.22.10",
2525
"@babel/preset-env": "^7.22.10",
26-
"@babel/preset-typescript": "^7.22.5",
27-
"@babel/types": "^7.22.10",
28-
"@caohenghu/vue-colorpicker": "^1.2.4",
29-
"@googleapis/oauth2": "^1.0.1",
26+
"@babel/preset-typescript": "^7.22.11",
27+
"@babel/types": "^7.22.11",
28+
"@googleapis/oauth2": "^1.0.4",
3029
"@imengyu/vue3-context-menu": "^1.3.3",
31-
"@napi-rs/cli": "^2.16.2",
30+
"@napi-rs/cli": "^2.16.3",
3231
"@openid/appauth": "^1.3.1",
33-
"@playwright/test": "^1.35.1",
3432
"@types/adm-zip": "^0.5.0",
3533
"@types/better-sqlite3": "^7.6.4",
3634
"@types/electron-devtools-installer": "^2.2.2",
3735
"@types/ini": "^1.3.31",
38-
"@types/jest": "^29.5.3",
36+
"@types/jest": "^29.5.4",
3937
"@types/js-yaml": "^4.0.5",
40-
"@types/markdown-it": "^13.0.0",
41-
"@types/node": "^20.4.10",
38+
"@types/markdown-it": "^13.0.1",
39+
"@types/node": "^20.5.7",
4240
"@types/tail": "^2.2.1",
4341
"@types/usetube": "^2.1.0",
4442
"@types/uuid": "^9.0.2",
4543
"@types/webpack-env": "^1.18.1",
4644
"@types/webrtc": "0.0.36",
4745
"@types/yt-player": "^3.5.1",
48-
"@typescript-eslint/eslint-plugin": "^6.3.0",
49-
"@typescript-eslint/parser": "^6.3.0",
46+
"@typescript-eslint/eslint-plugin": "^6.5.0",
47+
"@typescript-eslint/parser": "^6.5.0",
5048
"@voerro/vue-tagsinput": "^2.7.1",
5149
"@vue/cli-plugin-babel": "^5.0.8",
5250
"@vue/cli-plugin-typescript": "^5.0.8",
@@ -56,18 +54,18 @@
5654
"@vue/eslint-config-typescript": "^11.0.3",
5755
"adm-zip": "^0.5.10",
5856
"animate.css": "^4.1.1",
59-
"axios": "^1.4.0",
57+
"axios": "^1.5.0",
6058
"axios-rate-limit": "^1.3.0",
61-
"axios-retry": "^3.6.0",
59+
"axios-retry": "^3.7.0",
6260
"babel-loader": "^9.1.3",
63-
"better-sqlite3": "^8.5.0",
61+
"better-sqlite3": "^8.5.2",
6462
"better-sqlite3-helper": "^3.1.6",
6563
"bootstrap-vue": "^2.23.1",
6664
"buffer": "^6.0.3",
6765
"bufferutil": "4.0.7",
6866
"copy-webpack-plugin": "^11.0.0",
69-
"core-js": "^3.32.0",
70-
"croner": "^6.0.7",
67+
"core-js": "^3.32.1",
68+
"croner": "^7.0.1",
7169
"cross-env": "^7.0.3",
7270
"dashjs": "^4.7.1",
7371
"deepmerge": "^4.3.1",
@@ -76,8 +74,8 @@
7674
"electron-devtools-installer": "^3.2.0",
7775
"electron-store": "^8.1.0",
7876
"electron-updater": "^6.1.1",
79-
"eslint": "^8.47.0",
80-
"eslint-config-prettier": "^8.8.0",
77+
"eslint": "^8.48.0",
78+
"eslint-config-prettier": "^9.0.0",
8179
"eslint-plugin-prettier": "^5.0.0",
8280
"eslint-plugin-unused-imports": "^3.0.0",
8381
"eslint-plugin-vue": "^9.17.0",
@@ -87,8 +85,8 @@
8785
"hash-wasm": "^4.9.0",
8886
"hls.js": "^1.4.10",
8987
"ini": "^4.1.1",
90-
"jest": "^29.6.2",
91-
"jest-environment-node": "^29.6.2",
88+
"jest": "^29.6.4",
89+
"jest-environment-node": "^29.6.4",
9290
"js-yaml": "^4.1.0",
9391
"librespot-node": "git+https://github.com/Moosync/librespot-node.git",
9492
"localforage": "^1.10.0",
@@ -100,14 +98,11 @@
10098
"node-stream-zip": "^1.15.0",
10199
"node-youtube-music": "^0.10.3",
102100
"patch-package": "^8.0.0",
103-
"playwright": "^1.36.2",
104-
"prettier": "3.0.1",
105-
"puppeteer-core": "19.2.0",
106-
"puppeteer-in-electron": "^3.0.5",
101+
"prettier": "3.0.3",
107102
"qs": "^6.11.2",
108103
"reflect-metadata": "^0.1.13",
109104
"replace": "^1.2.2",
110-
"sass": "~1.65.1",
105+
"sass": "~1.66.1",
111106
"sass-loader": "13.3.2",
112107
"scanner-native": "git+https://github.com/Moosync/file-scanner.git",
113108
"semver": "^7.5.4",
@@ -121,17 +116,18 @@
121116
"ts-jest": "^29.1.1",
122117
"ts-loader": "^9.4.4",
123118
"ts-node": "^10.9.1",
124-
"tslib": "^2.6.1",
125-
"typescript": "5.1.6",
119+
"tslib": "^2.6.2",
120+
"typescript": "5.2.2",
126121
"uuid": "^9.0.0",
127122
"vm2": "git+https://github.com/patriksimek/vm2.git",
128123
"vue": "^3.3.4",
124+
"vue-accessible-color-picker": "^4.1.4",
129125
"vue-auto-routing": "^1.0.1",
130126
"vue-class-component": "^7.2.6",
131127
"vue-cli": "^2.9.6",
132128
"vue-cli-plugin-auto-routing": "~1.3.0",
133129
"vue-cli-plugin-electron-builder": "^3.0.0-alpha.4",
134-
"vue-facing-decorator": "^3.0.1",
130+
"vue-facing-decorator": "^3.0.2",
135131
"vue-i18n": "9.2.2",
136132
"vue-inline-svg": "^2.1.3",
137133
"vue-property-decorator": "^9.1.2",
@@ -140,6 +136,7 @@
140136
"vue-toasted": "^1.1.28",
141137
"vue-typeahead-bootstrap": "^2.12.0",
142138
"vue-virtual-scroller": "2.0.0-beta.8",
139+
"vue3-colorpicker": "^2.2.2",
143140
"vue3-toastify": "^0.1.12",
144141
"vuedraggable": "^2.24.3",
145142
"vuex": "~4.1.0",
@@ -165,9 +162,7 @@
165162
"electron-builder": "24.6.3",
166163
"node-abi": "^3.45.0",
167164
"webpack": "^5.88.2",
168-
"better-sqlite3": "^8.5.0",
169-
"playwright": "^1.25.1",
170-
"playwright-core": "^1.25.1",
165+
"better-sqlite3": "^8.5.2",
171166
"nan": "^2.17.0",
172167
"@vue/cli-service": "^5.0.8",
173168
"@achrinza/node-ipc": "^10.1.9"
@@ -182,4 +177,4 @@
182177
"./src/mainWindow/plugins/*",
183178
"./src/preferenceWindow/plugins/*"
184179
]
185-
}
180+
}

src/background.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,21 @@
1111

1212
import 'threads/register'
1313

14-
import { WindowHandler, _windowHandler, setIsQuitting } from './utils/main/windowManager'
1514
import { BrowserWindow, app, protocol, session } from 'electron'
16-
import { resolve } from 'path'
15+
import { WindowHandler, _windowHandler, setIsQuitting } from './utils/main/windowManager'
16+
import { getExtensionHostChannel, registerIpcChannels } from '@/utils/main/ipc'
17+
import { loadPreferences, setInitialPreferences, shouldWatchFileChanges } from './utils/main/db/preferences'
18+
import { migrateThemes, setupDefaultThemes, setupSystemThemes } from './utils/main/themes/preferences'
19+
import { setupScanTask, setupScrapeTask } from '@/utils/main/scheduler/index'
1720

1821
import { createFavoritesPlaylist } from './utils/main/db'
19-
import { loadPreferences, setInitialPreferences, shouldWatchFileChanges } from './utils/main/db/preferences'
22+
import { createProtocol } from 'vue-cli-plugin-electron-builder/lib'
23+
import { exit } from 'process'
2024
import { loadSelectiveArrayPreference } from './utils/main/db/preferences'
2125
import { logger } from './utils/main/logger/index'
22-
import { migrateThemes, setupDefaultThemes, setupSystemThemes } from './utils/main/themes/preferences'
23-
import { getExtensionHostChannel, registerIpcChannels } from '@/utils/main/ipc'
2426
import { oauthHandler } from '@/utils/main/oauth/handler'
25-
import { setupScanTask, setupScrapeTask } from '@/utils/main/scheduler/index'
27+
import { resolve } from 'path'
2628
import { setupUpdateCheckTask } from '@/utils/main/scheduler/index'
27-
import { exit } from 'process'
28-
import pie from 'puppeteer-in-electron'
29-
import { createProtocol } from 'vue-cli-plugin-electron-builder/lib'
3029

3130
if (process.defaultApp) {
3231
if (process.argv.length >= 2) {
@@ -58,7 +57,6 @@ if (isDevelopment) {
5857

5958
overrideConsole()
6059
_windowHandler.setHardwareAcceleration()
61-
pie.initialize(app)
6260

6361
process.on('uncaughtException', (err) => {
6462
console.error(err)

src/commonComponents/Tooltip.vue

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,12 @@
88
-->
99

1010
<template>
11-
<svg
12-
v-b-tooltip.hover.right
13-
:title="text"
14-
:id="tooltipId"
15-
width="19"
16-
height="19"
17-
viewBox="0 0 19 19"
18-
fill="none"
19-
xmlns="http://www.w3.org/2000/svg"
20-
>
11+
<svg v-b-tooltip.hover.right :title="text" :id="tooltipId" width="19" height="19" viewBox="0 0 19 19" fill="none"
12+
xmlns="http://www.w3.org/2000/svg">
2113
<circle cx="9.5" cy="9.5" r="9.5" fill="var(--textSecondary)" />
2214
<path
2315
d="M8.912 12.056V11.592C8.912 11.048 9.01333 10.5413 9.216 10.072C9.41867 9.592 9.776 9.05333 10.288 8.456C10.6933 7.98667 10.976 7.58667 11.136 7.256C11.296 6.92533 11.376 6.57333 11.376 6.2C11.376 5.752 11.216 5.4 10.896 5.144C10.576 4.87733 10.1333 4.744 9.568 4.744C8.98133 4.744 8.43733 4.85067 7.936 5.064C7.43467 5.27733 6.96 5.59733 6.512 6.024L6.032 5C6.448 4.57333 6.976 4.232 7.616 3.976C8.256 3.70933 8.928 3.576 9.632 3.576C10.5493 3.576 11.2907 3.81067 11.856 4.28C12.4213 4.73867 12.704 5.34667 12.704 6.104C12.704 6.60533 12.592 7.07467 12.368 7.512C12.1547 7.94933 11.776 8.456 11.232 9.032C10.7307 9.56533 10.3733 10.0347 10.16 10.44C9.95733 10.8347 9.82933 11.24 9.776 11.656L9.744 12.056H8.912ZM8.512 15V13.368H10.144V15H8.512Z"
24-
fill="white"
25-
/>
16+
fill="var(--textPrimary)" />
2617
</svg>
2718
</template>
2819

@@ -33,9 +24,9 @@ import { Vue } from 'vue-facing-decorator'
3324
@Component({})
3425
export default class Tooltip extends Vue {
3526
@Prop({ default: 'tooltip' })
36-
private tooltipId!: string
27+
tooltipId!: string
3728
3829
@Prop({ default: 'This is a tooltip' })
39-
private text!: string
30+
text!: string
4031
}
4132
</script>

src/icons/RepeatOnceIcon.vue

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<template>
2+
<svg width="27" height="27" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg">
3+
<path
4+
d="M26.0861 12.0223C25.7672 10.3767 24.9825 8.85737 23.8251 7.64494H23.8273L23.6698 7.48744C23.4576 7.29866 23.1803 7.19982 22.8966 7.21181C22.6128 7.2238 22.3449 7.34569 22.1494 7.5517C21.9539 7.7577 21.8462 8.03167 21.8491 8.31566C21.8519 8.59964 21.9652 8.87137 22.1648 9.07338C23.3808 10.3006 24.0618 11.9592 24.0592 13.6868L24.0482 14.0718C23.9495 15.7424 23.2162 17.3122 21.9984 18.4601C20.7806 19.608 19.1702 20.2473 17.4967 20.2471H10.2932H7.20009L6.87853 20.5687L6.75384 20.7196C6.60798 20.9301 6.54057 21.185 6.56336 21.44C6.58614 21.6951 6.69768 21.934 6.87853 22.1153L11.2579 26.4946L11.4088 26.6215C11.6195 26.7671 11.8746 26.8341 12.1296 26.8109C12.3847 26.7878 12.6235 26.6758 12.8045 26.4946L12.9313 26.3437C13.0769 26.133 13.144 25.8779 13.1208 25.6229C13.0976 25.3679 12.9857 25.129 12.8045 24.9481L10.2932 22.4346L17.4967 22.4368L17.932 22.4259C19.606 22.3423 21.2209 21.7797 22.5845 20.805C23.948 19.8302 25.0029 18.4843 25.6237 16.9273C26.2444 15.3703 26.4049 13.6678 26.0861 12.0223Z"
5+
:fill="filled ? 'var(--accent)' : 'var(--textSecondary)'" />
6+
<path
7+
d="M14.8367 0.752128L14.9898 0.876816L19.367 5.25619L19.4938 5.40932C19.6199 5.59197 19.6874 5.80864 19.6874 6.03057C19.6874 6.25249 19.6199 6.46916 19.4938 6.65182L19.367 6.80494L19.0476 7.12432H15.9523H8.74665C7.07275 7.12422 5.46209 7.76378 4.24421 8.91212C3.02633 10.0605 2.29329 11.6308 2.19509 13.3018L2.18415 13.6868C2.18415 15.4806 2.90384 17.1037 4.06759 18.2893C4.25187 18.4997 4.34854 18.7728 4.33771 19.0523C4.32687 19.3318 4.20937 19.5965 4.00936 19.792C3.80935 19.9876 3.54202 20.099 3.26235 20.1035C2.98268 20.108 2.71191 20.0052 2.50572 19.8162C1.32454 18.6129 0.51619 17.094 0.177908 15.4421C-0.160375 13.7903 -0.0141796 12.0758 0.598906 10.5051C1.21199 8.93438 2.26585 7.57424 3.63371 6.58833C5.00157 5.60241 6.62516 5.03271 8.30915 4.94775L8.74665 4.93682L15.9523 4.93463L13.441 2.42557L13.3163 2.27244C13.1723 2.0619 13.1063 1.80761 13.1299 1.55359C13.1535 1.29956 13.2652 1.06178 13.4456 0.881389C13.626 0.700994 13.8638 0.589333 14.1178 0.565729C14.3718 0.542124 14.6261 0.60806 14.8367 0.752128Z"
8+
:fill="filled ? 'var(--accent)' : 'var(--textSecondary)'" />
9+
<path
10+
d="M12.6178 12.0051H11.1178V10.5051L13.1271 10.5051L14.1178 10.5051V11.4982V16.5051H13.0272H12.6178V16.0367V12.0051Z"
11+
:fill="filled ? 'var(--accent)' : 'var(--textSecondary)'" />
12+
</svg>
13+
</template>
14+
15+
<script lang="ts">
16+
import { Vue } from 'vue-facing-decorator'
17+
import { Component, Prop } from 'vue-facing-decorator'
18+
19+
@Component({
20+
emits: ['click']
21+
})
22+
export default class RepeatOnceIcon extends Vue {
23+
@Prop({ default: false })
24+
filled!: boolean
25+
}
26+
</script>
27+
28+
<style lang="sass" scoped>
29+
.fill
30+
transition: fill 0.2s ease
31+
32+
*
33+
cursor: pointer
34+
</style>

0 commit comments

Comments
 (0)