Skip to content

Commit b03cbe7

Browse files
committed
Merge branch 'develop'
2 parents b90ea03 + 91bd702 commit b03cbe7

File tree

3 files changed

+92
-2
lines changed

3 files changed

+92
-2
lines changed

cliff.toml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# configuration file for git-cliff (0.1.0)
2+
3+
[changelog]
4+
# changelog header
5+
header = """
6+
# Changelog
7+
All notable changes to this project will be documented in this file.\n
8+
"""
9+
# template for the changelog body
10+
# https://tera.netlify.app/docs/#introduction
11+
body = """
12+
{% if version %}\
13+
## [{{ version | replace(from="v", to="") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
14+
{% else %}\
15+
## [unreleased]
16+
{% endif %}\
17+
{% for group, commits in commits | group_by(attribute="group") %}
18+
### {{ group | upper_first }}
19+
{% for commit in commits
20+
| filter(attribute="scope")
21+
| sort(attribute="scope") %}
22+
- *({{commit.scope}})* {{ commit.message | upper_first }}
23+
{%- if commit.breaking %}
24+
{% raw %} {% endraw %}- **BREAKING**: {{commit.breaking_description}}
25+
{%- endif -%}
26+
{%- endfor -%}
27+
{%- for commit in commits %}
28+
{%- if commit.scope -%}
29+
{% else -%}
30+
- *(No Category)* {{ commit.message | upper_first }}
31+
{% if commit.breaking -%}
32+
{% raw %} {% endraw %}- **BREAKING**: {{commit.breaking_description}}
33+
{% endif -%}
34+
{% endif -%}
35+
{% endfor -%}
36+
{% endfor %}
37+
"""
38+
# remove the leading and trailing whitespaces from the template
39+
trim = true
40+
# changelog footer
41+
footer = """
42+
<!-- generated by git-cliff -->
43+
"""
44+
45+
[git]
46+
# allow only conventional commits
47+
# https://www.conventionalcommits.org
48+
conventional_commits = true
49+
# regex for parsing and grouping commits
50+
commit_parsers = [
51+
{ message = "^feat", group = "Features"},
52+
{ message = "^fix", group = "Bug Fixes"},
53+
{ message = "^doc", group = "Documentation"},
54+
{ message = "^perf", group = "Performance"},
55+
{ message = "^refactor", group = "Refactor"},
56+
{ message = "^style", group = "Styling"},
57+
{ message = "^test", group = "Testing"},
58+
{ message = "^chore\\(release\\): prepare for", skip = true},
59+
{ message = "^chore", group = "Miscellaneous Tasks"},
60+
{ body = ".*security", group = "Security"},
61+
]
62+
# filter out the commits that are not matched by commit parsers
63+
filter_commits = false
64+
# glob pattern for matching git tags
65+
tag_pattern = "[0-9]*"
66+
# regex for skipping tags
67+
skip_tags = "v0.1.0-beta.1"

docs/FAQ.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
* [Spotify/Deezer/LastFM won't authenticate](#spotifydeezerlastfm-wont-authenticate)
55
* [Configuration Issues](#configuration-issues)
66
* [Config could not be parsed](#config-could-not-be-parsed)
7+
* [Scrobbling Issues](#scrobbling-issues)
8+
* [Last.fm does not scrobble tracks with multiple artists correctly](#lastfm-does-not-scrobble-tracks-with-multiple-artists-correctly)
9+
* [Jellyfin does not scrobble tracks with multiple artists correctly](#jellyfin-does-not-scrobble-tracks-with-multiple-artists-correctly)
710

811
# Connection Issues
912

@@ -19,7 +22,6 @@ multi-scrobbler will log information about any server that connects to it for th
1922
2023-02-22T10:55:56-05:00 warn : [Plex Request ] Received valid Plex webhook payload but no Plex sources are configured
2023
```
2124
It also logs if a server tries to connect to a URL that it does not recognize:
22-
2325
```
2426
2023-02-22T11:16:12-05:00 debug : [App ] Server received POST request from ::ffff:192.168.0.140 (UA: PlexMediaServer/1.24.5.5173-8dcc73a59) to unknown route: /plkex
2527
```
@@ -120,3 +122,15 @@ If you see something like this in your logs:
120122
```
121123

122124
It means the JSON in your configuration file is not valid. Copy and paste your configuration into a site like [JSONLint](https://jsonlint.com/) to find out where errors you have and fix them.
125+
126+
# Scrobbling Issues
127+
128+
## Last.fm does not scrobble tracks with multiple artists correctly
129+
130+
This is a limitation of the [Last.fm API](https://www.last.fm/api/show/track.scrobble) where the **artist** field is only one string and Last.fm does not recognize (play well) with "combined" artists.
131+
132+
Multi-scrobbler works the same was the official Spotify-Last.fm integration works -- it only scrobbles the **first** artist on a multi-artist track.
133+
134+
## Jellyfin does not scrobble tracks with multiple artists correctly
135+
136+
This is a limitation caused by the [Jellyfin webhook plugin](https://github.com/FoxxMD/multi-scrobbler/issues/70#issuecomment-1443804712) only sending the first artist to multi-scrobbler. This issues needs to be [fixed upstream on the Jellyfin webhook repository.](https://github.com/jellyfin/jellyfin-plugin-webhook/issues/166)

src/clients/LastfmScrobbler.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,17 @@ export default class LastfmScrobbler extends AbstractScrobbleClient {
138138

139139
const sType = newFromSource ? 'New' : 'Backlog';
140140

141+
// LFM does not support multiple artists in scrobble payload
142+
// https://www.last.fm/api/show/track.scrobble
143+
let artist: string;
144+
if (artists.length === 0) {
145+
artist = "";
146+
} else {
147+
artist = artists[0];
148+
}
149+
141150
const rawPayload = {
142-
artist: artists.join(', '),
151+
artist: artist,
143152
duration,
144153
track,
145154
album,

0 commit comments

Comments
 (0)