fix: 🐛 Prevent Firefox for going nuts when having Plasma Integration addon installed (fix #164)

This commit is contained in:
Michel Roux 2024-10-24 00:23:25 +02:00
parent 43692a233c
commit c34646b72c
11 changed files with 51 additions and 10 deletions

View File

@ -1,3 +1,13 @@
## 3.3.0 - Breaking the Loop - 2024-10-18
### Changed
- ⚡ Speed up the loading time of subscriptions
[#178](https://git.crystalyx.net/Xefir/repod/issues/178) reported by @MikeAndrews
### Fixed
- 🐛 Prevent Firefox for going nuts when having Plasma Integration addon installed
[#164](https://git.crystalyx.net/Xefir/repod/issues/164) reported by @cichy1173, @Share1440 and @mark.collins
## 3.3.0 - Into The Jet Lag - 2024-10-18 ## 3.3.0 - Into The Jet Lag - 2024-10-18
### Changed ### Changed

View File

@ -64,6 +64,10 @@ You need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) inst
Either from the official Nextcloud [app store](https://apps.nextcloud.com/apps/repod) or by downloading the [latest release](https://git.crystalyx.net/Xefir/repod/releases/latest) and extracting it into your Nextcloud `apps/` directory. Either from the official Nextcloud [app store](https://apps.nextcloud.com/apps/repod) or by downloading the [latest release](https://git.crystalyx.net/Xefir/repod/releases/latest) and extracting it into your Nextcloud `apps/` directory.
## Known issues
- Conflict with Plasma Integration Firefox addon ([#164](https://git.crystalyx.net/Xefir/repod/issues/164))
## Credits ## Credits
- [GPodder Sync](https://github.com/thrillfall/nextcloud-gpodder) for the database API - [GPodder Sync](https://github.com/thrillfall/nextcloud-gpodder) for the database API

View File

@ -14,7 +14,7 @@
## Requirements ## Requirements
You need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!]]></description> You need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!]]></description>
<version>3.3.0</version> <version>3.3.1</version>
<licence>agpl</licence> <licence>agpl</licence>
<author mail="xefir@crystalyx.net" homepage="https://crystalyx.net">Michel Roux</author> <author mail="xefir@crystalyx.net" homepage="https://crystalyx.net">Michel Roux</author>
<namespace>RePod</namespace> <namespace>RePod</namespace>

View File

@ -43,6 +43,7 @@ OC.L10N.register(
"Missing required app" : "Benötigte App fehlt", "Missing required app" : "Benötigte App fehlt",
"Install GPodder Sync" : "Installiere GPodder Sync", "Install GPodder Sync" : "Installiere GPodder Sync",
"Pin some subscriptions to see their latest updates" : "Pinne einige Abonnements, um ihre neuesten Updates zu sehen", "Pin some subscriptions to see their latest updates" : "Pinne einige Abonnements, um ihre neuesten Updates zu sehen",
"No favorites" : "Keine Favoriten" "No favorites" : "Keine Favoriten",
"A browser extension conflict with RePod" : "Ein Browser-Erweiterungskonflikt mit RePod"
}, },
""); "");

View File

@ -41,6 +41,7 @@
"Missing required app" : "Benötigte App fehlt", "Missing required app" : "Benötigte App fehlt",
"Install GPodder Sync" : "Installiere GPodder Sync", "Install GPodder Sync" : "Installiere GPodder Sync",
"Pin some subscriptions to see their latest updates" : "Pinne einige Abonnements, um ihre neuesten Updates zu sehen", "Pin some subscriptions to see their latest updates" : "Pinne einige Abonnements, um ihre neuesten Updates zu sehen",
"No favorites" : "Keine Favoriten" "No favorites" : "Keine Favoriten",
"A browser extension conflict with RePod" : "Ein Browser-Erweiterungskonflikt mit RePod"
},"pluralForm" :"" },"pluralForm" :""
} }

View File

@ -43,6 +43,7 @@ OC.L10N.register(
"Missing required app" : "Une application requise est manquante", "Missing required app" : "Une application requise est manquante",
"Install GPodder Sync" : "Installer GPodder Sync", "Install GPodder Sync" : "Installer GPodder Sync",
"Pin some subscriptions to see their latest updates" : "Ajoutez des abonnements en favoris pour obtenir les dernières nouvelles ici", "Pin some subscriptions to see their latest updates" : "Ajoutez des abonnements en favoris pour obtenir les dernières nouvelles ici",
"No favorites" : "Aucun favoris" "No favorites" : "Aucun favoris",
"A browser extension conflict with RePod" : "Une extension de votre navigateur entre en conflit avec RePod"
}, },
""); "");

View File

@ -41,6 +41,7 @@
"Missing required app" : "Une application requise est manquante", "Missing required app" : "Une application requise est manquante",
"Install GPodder Sync" : "Installer GPodder Sync", "Install GPodder Sync" : "Installer GPodder Sync",
"Pin some subscriptions to see their latest updates" : "Ajoutez des abonnements en favoris pour obtenir les dernières nouvelles ici", "Pin some subscriptions to see their latest updates" : "Ajoutez des abonnements en favoris pour obtenir les dernières nouvelles ici",
"No favorites" : "Aucun favoris" "No favorites" : "Aucun favoris",
"A browser extension conflict with RePod" : "Une extension de votre navigateur entre en conflit avec RePod"
},"pluralForm" :"" },"pluralForm" :""
} }

View File

@ -3,6 +3,8 @@ import axios from '@nextcloud/axios'
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
import { formatEpisodeTimestamp } from '../utils/time.ts' import { formatEpisodeTimestamp } from '../utils/time.ts'
import { generateUrl } from '@nextcloud/router' import { generateUrl } from '@nextcloud/router'
import { showError } from '../utils/toast.ts'
import { t } from '@nextcloud/l10n'
const audio = new Audio() const audio = new Audio()
@ -13,6 +15,7 @@ export const usePlayer = defineStore('player', {
episode: null as EpisodeInterface | null, episode: null as EpisodeInterface | null,
loaded: false, loaded: false,
paused: true, paused: true,
playCount: 0,
podcastUrl: null as string | null, podcastUrl: null as string | null,
volume: 1, volume: 1,
rate: 1, rate: 1,
@ -29,6 +32,11 @@ export const usePlayer = defineStore('player', {
audio.onseeked = () => (this.currentTime = audio.currentTime) audio.onseeked = () => (this.currentTime = audio.currentTime)
audio.ontimeupdate = () => (this.currentTime = audio.currentTime) audio.ontimeupdate = () => (this.currentTime = audio.currentTime)
audio.onvolumechange = () => (this.volume = audio.volume) audio.onvolumechange = () => (this.volume = audio.volume)
setInterval(this.loop, 4000)
},
loop() {
this.playCount = 0
}, },
async load(episode: EpisodeInterface | null, podcastUrl?: string) { async load(episode: EpisodeInterface | null, podcastUrl?: string) {
this.episode = episode this.episode = episode
@ -69,9 +77,14 @@ export const usePlayer = defineStore('player', {
this.time() this.time()
}, },
play() { play() {
this.playCount++
if (this.playCount > 10) {
showError(t('repod', 'A browser extension conflict with RePod'))
} else {
audio.play() audio.play()
this.paused = false this.paused = false
this.started = audio.currentTime this.started = audio.currentTime
}
}, },
seek(currentTime: number) { seek(currentTime: number) {
audio.currentTime = currentTime audio.currentTime = currentTime

View File

@ -168,3 +168,6 @@ msgstr "Pinne einige Abonnements, um ihre neuesten Updates zu sehen"
msgid "No favorites" msgid "No favorites"
msgstr "Keine Favoriten" msgstr "Keine Favoriten"
msgid "A browser extension conflict with RePod"
msgstr "Ein Browser-Erweiterungskonflikt mit RePod"

View File

@ -172,3 +172,6 @@ msgstr "Ajoutez des abonnements en favoris pour obtenir les dernières nouvelles
msgid "No favorites" msgid "No favorites"
msgstr "Aucun favoris" msgstr "Aucun favoris"
msgid "A browser extension conflict with RePod"
msgstr "Une extension de votre navigateur entre en conflit avec RePod"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Nextcloud 3.14159\n" "Project-Id-Version: Nextcloud 3.14159\n"
"Report-Msgid-Bugs-To: translations\\@example.com\n" "Report-Msgid-Bugs-To: translations\\@example.com\n"
"POT-Creation-Date: 2024-09-15 13:40+0000\n" "POT-Creation-Date: 2024-10-23 22:22+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: /app/lib/Controller/OpmlController.php:44 #: /app/lib/Controller/OpmlController.php:46
msgid "RePod Subscriptions" msgid "RePod Subscriptions"
msgstr "" msgstr ""
@ -218,3 +218,7 @@ msgstr ""
#: /app/specialVueFakeDummyForL10nScript.js:52 #: /app/specialVueFakeDummyForL10nScript.js:52
msgid "No favorites" msgid "No favorites"
msgstr "" msgstr ""
#: /app/src/store/player.ts:82
msgid "A browser extension conflict with RePod"
msgstr ""