Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bugfix]: Fix repeated track scrobbling #480

Merged
merged 2 commits into from
Feb 1, 2024

Conversation

kgarner7
Copy link
Collaborator

Resolves #364

This commit fixes scrobbling tracks that are repeated in the queue (either due to a REPEAT_ONE or just enqueued multiple times). There are two extra cases:

  1. The current player changes. The player alternates from 1 -> 2 -> 1 whenever playback finishes normally, so this is a sort of epoch that can be used to detect both repeat one and track being enqueued multiple times.
  2. The current index changes. The player gets set back to 1 in a variety of cases (most often previous/next), so the check in (1) is not enough. However, the index changing will help identify that this is a new song.

This commit fixes scrobbling tracks that are repeated in the queue (either due
to a REPEAT_ONE or just enqueued multiple times). There are two extra cases:

1. The current player changes. The player alternates from 1 -> 2 -> 1 whenever playback
finishes normally, so this is a sort of epoch that can be used to detect both repeat one
and track being enqueued multiple times.
2. The current index changes. The player gets set back to 1 in a variety of cases (most often
previous/next), so the check in (1) is not enough. However, the index changing will help identify
that this is a new song.
Copy link

vercel bot commented Jan 31, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
feishin ✅ Ready (Inspect) Visit Preview 💬 Add feedback Feb 1, 2024 4:00am

@kgarner7 kgarner7 merged commit eff1cee into jeffvli:development Feb 1, 2024
3 checks passed
@kgarner7 kgarner7 deleted the fix-scrobble-track-repeat branch February 1, 2024 04:12
spiceratops referenced this pull request in spiceratops/k8s-gitops Mar 16, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/jeffvli/feishin](https://togithub.com/jeffvli/feishin) |
minor | `0.5.3` -> `0.6.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>jeffvli/feishin (ghcr.io/jeffvli/feishin)</summary>

###
[`v0.6.1`](https://togithub.com/jeffvli/feishin/releases/tag/v0.6.1):
0.6.1

[Compare
Source](https://togithub.com/jeffvli/feishin/compare/v0.6.0...v0.6.1)

##### Fixed

- (Navidrome) Fixed application becoming stuck when Navidrome credential
session times
out ([#&#8203;538](https://togithub.com/jeffvli/feishin/issues/538))

##### Other

- Downgraded from Electron v27 to v26 to restore compatibility with
macOS 10.13 and 10.14
([#&#8203;534](https://togithub.com/jeffvli/feishin/issues/534))

###
[`v0.6.0`](https://togithub.com/jeffvli/feishin/releases/tag/v0.6.0):
0.6.0

[Compare
Source](https://togithub.com/jeffvli/feishin/compare/v0.5.3...v0.6.0)

0.6.0 is here!

Due to the large number of updates in this version, there may be
undocumented changes that are not listed here.

##### Docker

Added a way for a static server to be configured for the dockerized
version of Feishin. Check the [docker
compose](https://togithub.com/jeffvli/feishin/blob/development/docker-compose.yaml)
for new environment variables configuration.

#### Added

-   URLs in the `Note` column are now formatted as links
- External resource (last.fm, musicbrainz) links are now optionally
displayed on the album and artist pages
-   Album pages now show description if available
- Added dynamic image background option in fullscreen player
([#&#8203;526](https://togithub.com/jeffvli/feishin/issues/526)) (Thanks
[@&#8203;iiPythonx](https://togithub.com/iiPythonx))
-   Added additional `mpris` metadata fields
    -   audioBpm
    -   comment
    -   contentCreated
    -   lastUsed
    -   userRating
- Added options to clear the Feishin HTTP and Query cache to clear
stored lyrics
-   Added related songs to the `Related` tab on the fullscreen player
-   Added `codec` column for song lists
-   Added option to start app as minimized

#### Changed

- Playback speed control is now a slider instead of a selection
([#&#8203;437](https://togithub.com/jeffvli/feishin/issues/437)) (Thanks
[@&#8203;marksdestiny](https://togithub.com/marksdestiny))
-   Web player is now the default instead of MPV
- (Jellyfin) Adding a jellyfin server now allows for an empty password
field
-   Default hotkey for play/pause toggle set to SPACEBAR
-   Changed icon for `Play Random` on the player bar

#### Fixed

- (Jellyfin) Fixed getPlaylistSongList endpoint only returning the first
300 songs
([#&#8203;449](https://togithub.com/jeffvli/feishin/issues/449)) (Thanks
[@&#8203;SlyFabi](https://togithub.com/SlyFabi))
- Properly set native titlebar on macOS
([#&#8203;209](https://togithub.com/jeffvli/feishin/issues/209)) (Thanks
[@&#8203;kgarner7](https://togithub.com/kgarner7))
-   Fixed long artist page descriptions not being truncated
- Fixed playback when SHUFFLE and REPEAT ONE is enabled and there is
only one track in the queue
- (MPV) Fixed audio sample rate value on startup
([#&#8203;470](https://togithub.com/jeffvli/feishin/issues/470)) (Thanks
[@&#8203;kgarner7](https://togithub.com/kgarner7))
-   Player buttons are now disabled when the queue is empty
- Fixed play queue scroll position changing when app window focus
changes
-   Fixed scrobbling condition when a song is repeated
-   Fixed volume when set by MPRIS
-   Fixed player index being offset by 1 when restoring queue on startup
-   Various translation fixes

#### What's Changed

- AppImage: Set proper categories on desktop entry by
[@&#8203;mihawk90](https://togithub.com/mihawk90) in
[https://github.com/jeffvli/feishin/pull/430](https://togithub.com/jeffvli/feishin/pull/430)
- Update scrobble-settings.tsx by
[@&#8203;salguerooo](https://togithub.com/salguerooo) in
[https://github.com/jeffvli/feishin/pull/440](https://togithub.com/jeffvli/feishin/pull/440)
- Use startIndex in Jellyfin getPlaylistSongList by
[@&#8203;SlyFabi](https://togithub.com/SlyFabi) in
[https://github.com/jeffvli/feishin/pull/449](https://togithub.com/jeffvli/feishin/pull/449)
- Improve the playback speed control by
[@&#8203;marksdestiny](https://togithub.com/marksdestiny) in
[https://github.com/jeffvli/feishin/pull/437](https://togithub.com/jeffvli/feishin/pull/437)
- Bump axios from 1.5.1 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/459](https://togithub.com/jeffvli/feishin/pull/459)
- Bump zod from 3.21.4 to 3.22.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/460](https://togithub.com/jeffvli/feishin/pull/460)
- Bump [@&#8203;babel/traverse](https://togithub.com/babel/traverse)
from 7.22.19 to 7.23.7 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/462](https://togithub.com/jeffvli/feishin/pull/462)
- Bump postcss from 8.4.27 to 8.4.33 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/463](https://togithub.com/jeffvli/feishin/pull/463)
- Bump electron from 25.3.0 to 25.8.4 in /release/app by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/464](https://togithub.com/jeffvli/feishin/pull/464)
- Bump follow-redirects from 1.15.2 to 1.15.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/461](https://togithub.com/jeffvli/feishin/pull/461)
- Fixed incorrect label for album sort by release date by
[@&#8203;rappo](https://togithub.com/rappo) in
[https://github.com/jeffvli/feishin/pull/458](https://togithub.com/jeffvli/feishin/pull/458)
- Add frame to macOS native window bar by
[@&#8203;jeffvli](https://togithub.com/jeffvli) in
[https://github.com/jeffvli/feishin/pull/209](https://togithub.com/jeffvli/feishin/pull/209)
- \[bugfix]: defer restore queue until mpv exists by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/435](https://togithub.com/jeffvli/feishin/pull/435)
- \[bugfix]: Validate audio sample range, catch AudioContext error by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/470](https://togithub.com/jeffvli/feishin/pull/470)
- \[bugfix]: Fix add to playlist success message by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/473](https://togithub.com/jeffvli/feishin/pull/473)
- \[bugfix]: Fix safari audio context by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/471](https://togithub.com/jeffvli/feishin/pull/471)
- \[enhancement]: support clearing query and http cache by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/475](https://togithub.com/jeffvli/feishin/pull/475)
- \[bugfix]: Fix repeated track scrobbling by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/480](https://togithub.com/jeffvli/feishin/pull/480)
- \[feature]: Show album comment, Last.fm/MusicBrainz links by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/450](https://togithub.com/jeffvli/feishin/pull/450)
- \[bugfix/enhancement] Order artist's Top Songs by play count by
[@&#8203;lymnyx](https://togithub.com/lymnyx) in
[https://github.com/jeffvli/feishin/pull/487](https://togithub.com/jeffvli/feishin/pull/487)
- \[enhancement] Add a button size setting by
[@&#8203;iiPythonx](https://togithub.com/iiPythonx) in
[https://github.com/jeffvli/feishin/pull/486](https://togithub.com/jeffvli/feishin/pull/486)
- \[bugfix] Fix global hotkeys not working on startup by
[@&#8203;iiPythonx](https://togithub.com/iiPythonx) in
[https://github.com/jeffvli/feishin/pull/488](https://togithub.com/jeffvli/feishin/pull/488)
- \[bugfix] Fixes route of most played songs on home page by
[@&#8203;lymnyx](https://togithub.com/lymnyx) in
[https://github.com/jeffvli/feishin/pull/489](https://togithub.com/jeffvli/feishin/pull/489)
- \[bugfix/enhancement] Fixes german translations being sentence-case by
[@&#8203;lymnyx](https://togithub.com/lymnyx) in
[https://github.com/jeffvli/feishin/pull/491](https://togithub.com/jeffvli/feishin/pull/491)
- \[bugfix]: default go libsecret, support changing secret store by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/493](https://togithub.com/jeffvli/feishin/pull/493)
- Bump the npm_and_yarn group across 2 directories with 2 updates by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/500](https://togithub.com/jeffvli/feishin/pull/500)
- \[enhancement]: Audio player enhancements by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/501](https://togithub.com/jeffvli/feishin/pull/501)
- \[bugfix/enhancement]: Support Navidrome structured lyrics by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/484](https://togithub.com/jeffvli/feishin/pull/484)
- \[enhancement]: support reordering homepage by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/494](https://togithub.com/jeffvli/feishin/pull/494)
- Image Resolution Setting by
[@&#8203;darkpixlz](https://togithub.com/darkpixlz) in
[https://github.com/jeffvli/feishin/pull/492](https://togithub.com/jeffvli/feishin/pull/492)
- \[bugfix]: Macos trusted accessibility by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/512](https://togithub.com/jeffvli/feishin/pull/512)
- Bump the npm_and_yarn group across 2 directories with 1 update by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/521](https://togithub.com/jeffvli/feishin/pull/521)
- \[enhancement]: Start minimized by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/522](https://togithub.com/jeffvli/feishin/pull/522)
- Add a pre-defined server for the docker version by
[@&#8203;Kakoluz](https://togithub.com/Kakoluz) in
[https://github.com/jeffvli/feishin/pull/413](https://togithub.com/jeffvli/feishin/pull/413)
- \[enhancement]: Better version checks by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/514](https://togithub.com/jeffvli/feishin/pull/514)
- \[bugfix]: Check for Navidrome authentication on startup by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/510](https://togithub.com/jeffvli/feishin/pull/510)
- \[enhancement]: Differentiate shared and owner playlists for Navidrome
by [@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/517](https://togithub.com/jeffvli/feishin/pull/517)
- \[enhancement]: Make related tab on full screen player useful by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/519](https://togithub.com/jeffvli/feishin/pull/519)
- \[enhancements]: fix carousel, full screen metadata improvements by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/524](https://togithub.com/jeffvli/feishin/pull/524)
- \[feat] Add a dynamic image option to the fullscreen player by
[@&#8203;iiPythonx](https://togithub.com/iiPythonx) in
[https://github.com/jeffvli/feishin/pull/526](https://togithub.com/jeffvli/feishin/pull/526)
- \[enhancement]: better version checks for lyrics, Navidrome by
[@&#8203;kgarner7](https://togithub.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/529](https://togithub.com/jeffvli/feishin/pull/529)

#### New Contributors

- [@&#8203;mihawk90](https://togithub.com/mihawk90) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/430](https://togithub.com/jeffvli/feishin/pull/430)
- [@&#8203;salguerooo](https://togithub.com/salguerooo) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/440](https://togithub.com/jeffvli/feishin/pull/440)
- [@&#8203;SlyFabi](https://togithub.com/SlyFabi) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/449](https://togithub.com/jeffvli/feishin/pull/449)
- [@&#8203;marksdestiny](https://togithub.com/marksdestiny) made their
first contribution in
[https://github.com/jeffvli/feishin/pull/437](https://togithub.com/jeffvli/feishin/pull/437)
- [@&#8203;dependabot](https://togithub.com/dependabot) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/459](https://togithub.com/jeffvli/feishin/pull/459)
- [@&#8203;rappo](https://togithub.com/rappo) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/458](https://togithub.com/jeffvli/feishin/pull/458)
- [@&#8203;lymnyx](https://togithub.com/lymnyx) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/487](https://togithub.com/jeffvli/feishin/pull/487)
- [@&#8203;darkpixlz](https://togithub.com/darkpixlz) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/492](https://togithub.com/jeffvli/feishin/pull/492)

**Full Changelog**:
jeffvli/feishin@v0.5.3...v0.6.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI0MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Doesn't scrobble songs when they are on repeat
2 participants