diff --git a/.circleci/config.yml b/.circleci/config.yml
index 2d7b5b75..b29ba993 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -15,9 +15,6 @@ jobs:
executor: cider-ci
steps:
- checkout
- - run:
- name: Set App Version
- command: echo "export APP_VERSION=$(grep '"version":.*' package.json | cut -d '"' -f 4 | head -1)" >> $BASH_ENV
# - run:
# name: Rename Repository
# command: sed -i 's/github:ciderapp\/Cider/github:ciderapp\/cider-releases/' package.json
@@ -45,6 +42,7 @@ jobs:
root: .
# Must be relative path from root
paths:
+ - src
- node_modules
- build
- resources
@@ -155,6 +153,9 @@ jobs:
mv ~/Cider/dist/*.blockmap ~/Cider/dist/artifacts
- store_artifacts:
path: ~/Cider/dist/artifacts
+ - run:
+ name: Set App Version
+ command: echo "export APP_VERSION=$(grep '"version":.*' package.json | cut -d '"' -f 4 | head -1)" >> $BASH_ENV
- run:
name: Publish Release
command: |
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml
index c5d6402b..d18e0e23 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yaml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yaml
@@ -1,7 +1,7 @@
name: Bug Report
description: If you encounter an issue whilst using our app, please use this template to help improve the app.
title: "[Bug]: "
-labels: ["bug", "triage"]
+labels: ["bug", "needs-triage"]
assignees: []
body:
- type: markdown
diff --git a/.github/workflows/auto-project.yml b/.github/workflows/auto-project.yml
new file mode 100644
index 00000000..742d82e1
--- /dev/null
+++ b/.github/workflows/auto-project.yml
@@ -0,0 +1,18 @@
+name: Add bugs to bugs project
+
+on:
+ issues:
+ types:
+ - opened
+
+jobs:
+ add-to-project:
+ name: Add issue to project
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/add-to-project@main
+ with:
+ project-url: https://github.com/orgs/ciderapp/projects/5
+ github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
+ labeled: bug, needs-triage
+ label-operator: OR
diff --git a/.github/workflows/stale-issues.yml b/.github/workflows/stale-issues.yml
new file mode 100644
index 00000000..b566f1d6
--- /dev/null
+++ b/.github/workflows/stale-issues.yml
@@ -0,0 +1,18 @@
+name: 'Close stale issues and PRs'
+on:
+ schedule:
+ - cron: '30 1 * * *'
+
+permissions:
+ issues: write
+ pull-requests: write
+
+jobs:
+ stale:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/stale@v4
+ with:
+ stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.'
+ days-before-stale: 30
+ days-before-close: 7
\ No newline at end of file
diff --git a/README.md b/README.md
index 7b8fface..430a36f2 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
-
+
diff --git a/package.json b/package.json
index 9c22e95d..d446201a 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "cider",
"applicationId": "Cider",
"productName": "Cider",
- "version": "1.4.5",
+ "version": "1.4.6",
"description": "A new cross-platform Apple Music experience based on Electron and Vue.js written from scratch with performance in mind.",
"license": "AGPL-3.0",
"main": "./build/index.js",
diff --git a/src/i18n/README.md b/src/i18n/README.md
index 3422daa7..b81a8498 100644
--- a/src/i18n/README.md
+++ b/src/i18n/README.md
@@ -338,3 +338,7 @@ Update 29/04/2022 00:00 UTC
* `menubar.options.conf`: Added for `en_US`
+Update 08/05/2022 00:29 UTC
+
+* `settings.option.visual.theme.github.available`: Added for `en_US`,
+* `settings.option.visual.theme.github.applied`: Added for `en_US`,
diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json
index 9f058996..10aa9e00 100644
--- a/src/i18n/en_US.json
+++ b/src/i18n/en_US.json
@@ -434,6 +434,8 @@
"settings.option.visual.theme.manageStyles": "Manage Styles",
"settings.option.visual.theme.uninstall": "Uninstall",
"settings.option.visual.theme.viewInfo": "View Info",
+ "settings.option.visual.theme.github.available": "Available",
+ "settings.option.visual.theme.github.applied": "Applied",
"settings.notyf.visual.theme.install.success": "Theme installed successfully",
"settings.notyf.visual.theme.install.error": "Theme installation failed",
"settings.header.visual.plugin": "Plugin",
diff --git a/src/i18n/es_ES.json b/src/i18n/es_ES.json
index eb31ea60..808004fd 100644
--- a/src/i18n/es_ES.json
+++ b/src/i18n/es_ES.json
@@ -366,6 +366,7 @@
"settings.option.audio.audioLab.description": "Una variedad de efectos de audio desarrollados internamente para Cider.",
"settings.option.audio.audioLab.subheader": "Designed by Cider Acoustic Technologies in California",
"settings.warn.audioLab.withoutAF": "Se requiere AudioContext (funcionalidad avanzada) para habilitar Laboratorio de audio de Cider.",
+ "settings.warn.enableAdvancedFunctionality": "AudioContext (funcionalidad avanzada) es necesaria para habilitar esta característica.",
"settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Calidez analógica",
"settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simula la calidez analógica inspirada en el Korg Nutube 6P1",
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Intensidad de calidez analógica",
@@ -428,6 +429,13 @@
"settings.header.visual.theme.github.page": "Temas de GitHub",
"settings.option.visual.theme.github.install.confirm": "¿Está seguro de que desea instalar {{ repo }}?",
"settings.prompt.visual.theme.github.URL": "Introduce la URL del tema que quieres instalar",
+ "settings.prompt.visual.theme.uninstallTheme": "¿Estas seguro que lo quieres desinstalar {{ theme }}?",
+ "settings.option.visual.theme.checkForUpdates": "Buscar actualizaciones",
+ "settings.option.visual.theme.manageStyles": "Gestionar Estilos",
+ "settings.option.visual.theme.uninstall": "Desinstalar",
+ "settings.option.visual.theme.viewInfo": "Ver Información",
+ "settings.option.visual.theme.github.available": "Disponible",
+ "settings.option.visual.theme.github.applied": "Aplicado",
"settings.notyf.visual.theme.install.success": "Tema Instalado Correctamente",
"settings.notyf.visual.theme.install.error": "La Instalación del Tema Falló",
"settings.header.visual.plugin": "Plugin",
diff --git a/src/i18n/hu_HU.json b/src/i18n/hu_HU.json
index ec5a97de..ca93b58e 100644
--- a/src/i18n/hu_HU.json
+++ b/src/i18n/hu_HU.json
@@ -378,6 +378,8 @@
"settings.header.visual.theme.github.page": "Témák a GitHub-ról",
"settings.option.visual.theme.github.install.confirm": "Biztosan szeretnéd telepíteni a(z) {{ repo }} témát?",
"settings.prompt.visual.theme.github.URL": "Add meg a telepítendő téma URL-jét",
+ "settings.option.visual.theme.github.available": "Elérhető",
+ "settings.option.visual.theme.github.applied": "Alkalmazva",
"settings.notyf.visual.theme.install.success": "Téma sikeresen telepítve",
"settings.notyf.visual.theme.install.error": "Sikertelen volt a téma telepítése",
"settings.header.visual.plugin": "Plugin",
diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json
index 6a9a00fe..10aa9e00 100644
--- a/src/i18n/source/en_US.json
+++ b/src/i18n/source/en_US.json
@@ -366,6 +366,7 @@
"settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.",
"settings.option.audio.audioLab.subheader": "Designed by Cider Acoustic Technologies in California",
"settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.",
+ "settings.warn.enableAdvancedFunctionality": "AudioContext (Advanced Functionality) is required to enable this feature.",
"settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth",
"settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simulates the analog warmth modelled after the Korg Nutube 6P1",
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity",
@@ -433,6 +434,8 @@
"settings.option.visual.theme.manageStyles": "Manage Styles",
"settings.option.visual.theme.uninstall": "Uninstall",
"settings.option.visual.theme.viewInfo": "View Info",
+ "settings.option.visual.theme.github.available": "Available",
+ "settings.option.visual.theme.github.applied": "Applied",
"settings.notyf.visual.theme.install.success": "Theme installed successfully",
"settings.notyf.visual.theme.install.error": "Theme installation failed",
"settings.header.visual.plugin": "Plugin",
diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js
index 8218881d..9ddb2f88 100644
--- a/src/renderer/main/vueapp.js
+++ b/src/renderer/main/vueapp.js
@@ -1134,28 +1134,31 @@ const app = new Vue({
}
})
},
- async refreshPlaylists(localOnly = false) {
+ async refreshPlaylists(localOnly = false, useCachedPlaylists = true) {
let self = this
let trackMap = this.cfg.advanced.playlistTrackMapping
let newListing = []
let trackMapping = {}
- const cachedPlaylist = await CiderCache.getCache("library-playlists")
- const cachedTrackMapping = await CiderCache.getCache("library-playlists-tracks")
+
+ if (useCachedPlaylists) {
+ const cachedPlaylist = await CiderCache.getCache("library-playlists")
+ const cachedTrackMapping = await CiderCache.getCache("library-playlists-tracks")
- if (cachedPlaylist) {
- console.debug("using cached playlists")
- this.playlists.listing = cachedPlaylist
- self.sortPlaylists()
- } else {
- console.debug("playlist has no cache")
- }
+ if (cachedPlaylist) {
+ console.debug("using cached playlists")
+ this.playlists.listing = cachedPlaylist
+ self.sortPlaylists()
+ } else {
+ console.debug("playlist has no cache")
+ }
- if (cachedTrackMapping) {
- console.debug("using cached track mapping")
- this.playlists.trackMapping = cachedTrackMapping
- }
- if (localOnly) {
- return
+ if (cachedTrackMapping) {
+ console.debug("using cached track mapping")
+ this.playlists.trackMapping = cachedTrackMapping
+ }
+ if (localOnly) {
+ return
+ }
}
this.library.backgroundNotification.message = "Building playlist cache..."
@@ -1260,7 +1263,7 @@ const app = new Vue({
}
}
).then(res => {
- self.refreshPlaylists()
+ self.refreshPlaylists(false, false)
})
},
async editPlaylist(id, name = app.getLz('term.newPlaylist')) {
@@ -1275,7 +1278,7 @@ const app = new Vue({
}
}
).then(res => {
- self.refreshPlaylists()
+ self.refreshPlaylists(false, false)
})
},
copyToClipboard(str) {
@@ -1319,7 +1322,7 @@ const app = new Vue({
})
self.sortPlaylists()
setTimeout(() => {
- app.refreshPlaylists()
+ app.refreshPlaylists(false, false)
}, 8000)
})
},
@@ -1336,6 +1339,9 @@ const app = new Vue({
if (found) {
self.playlists.listing.splice(self.playlists.listing.indexOf(found), 1)
}
+ setTimeout(() => {
+ app.refreshPlaylists(false, false);
+ }, 8000);
})
}
},
@@ -2581,7 +2587,7 @@ const app = new Vue({
})
self.sortPlaylists()
setTimeout(() => {
- app.refreshPlaylists()
+ app.refreshPlaylists(false, false)
}, 13000)
})
},
diff --git a/src/renderer/views/components/lyrics-view.ejs b/src/renderer/views/components/lyrics-view.ejs
index 26001890..c4e795b6 100644
--- a/src/renderer/views/components/lyrics-view.ejs
+++ b/src/renderer/views/components/lyrics-view.ejs
@@ -1,6 +1,6 @@