Skip to content

Add Libre.fm scrobbler support#4276

Open
Devajuice wants to merge 63 commits intopear-devs:masterfrom
Devajuice:add-librefm-support
Open

Add Libre.fm scrobbler support#4276
Devajuice wants to merge 63 commits intopear-devs:masterfrom
Devajuice:add-librefm-support

Conversation

@Devajuice
Copy link

@Devajuice Devajuice commented Jan 29, 2026

Added a connect to Libre.FM option under the scrobble services.

@JellyBrick
Copy link
Collaborator

Did you use an AI tool to create this PR?

@JellyBrick JellyBrick added the enhancement New feature or request label Jan 29, 2026
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./services/librefm" with './services/librefm'

import { LibreFmScrobbler } from "./services/librefm";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { LibreFmScrobbler } from "./services/librefm";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./services/listenbrainz" with './services/listenbrainz'

import { ListenbrainzScrobbler } from "./services/listenbrainz";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { ListenbrainzScrobbler } from "./services/listenbrainz";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./index" with './index'

import type { ScrobblerPluginConfig } from "./index";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { ScrobblerPluginConfig } from "./index";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./services/base" with './services/base'

import type { ScrobblerBase } from "./services/base";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { ScrobblerBase } from "./services/base";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "enabled" with 'enabled'

conf: Partial<Omit<ScrobblerPluginConfig, "enabled">>,


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

conf: Partial<Omit<ScrobblerPluginConfig, "enabled">>,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "lastfm" with 'lastfm'

this.enabledScrobblers.set("lastfm", new LastFmScrobbler(window));


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

this.enabledScrobblers.set("lastfm", new LastFmScrobbler(window));


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "lastfm" with 'lastfm'

this.enabledScrobblers.delete("lastfm");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

this.enabledScrobblers.delete("lastfm");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "librefm" with 'librefm'

this.enabledScrobblers.set("librefm", new LibreFmScrobbler());


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

this.enabledScrobblers.set("librefm", new LibreFmScrobbler());


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "librefm" with 'librefm'

this.enabledScrobblers.delete("librefm");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

this.enabledScrobblers.delete("librefm");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "listenbrainz" with 'listenbrainz'

this.enabledScrobblers.set("listenbrainz", new ListenbrainzScrobbler());


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

this.enabledScrobblers.set("listenbrainz", new ListenbrainzScrobbler());


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "listenbrainz" with 'listenbrainz'

this.enabledScrobblers.delete("listenbrainz");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

this.enabledScrobblers.delete("listenbrainz");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "custom-electron-prompt" with 'custom-electron-prompt'

import prompt from "custom-electron-prompt";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import prompt from "custom-electron-prompt";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "electron" with 'electron'

import { type BrowserWindow, dialog } from "electron";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { type BrowserWindow, dialog } from "electron";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "@/i18n" with '@/i18n'

import { t } from "@/i18n";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { t } from "@/i18n";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "@/providers/prompt-options" with '@/providers/prompt-options'

import promptOptions from "@/providers/prompt-options";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import promptOptions from "@/providers/prompt-options";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./index" with './index'

import { type ScrobblerPluginConfig } from "./index";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { type ScrobblerPluginConfig } from "./index";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./main" with './main'

import { type SetConfType, backend } from "./main";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { type SetConfType, backend } from "./main";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "@/types/contexts" with '@/types/contexts'

import type { MenuContext } from "@/types/contexts";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { MenuContext } from "@/types/contexts";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "@/menu" with '@/menu'

import type { MenuTemplate } from "@/menu";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { MenuTemplate } from "@/menu";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.lastfm.api-settings" with 'plugins.scrobbler.menu.lastfm.api-settings'

title: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.lastfm.api-settings" with 'plugins.scrobbler.menu.lastfm.api-settings'

label: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "multiInput" with 'multiInput'

type: "multiInput",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "multiInput",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.prompt.lastfm.api-key" with 'plugins.scrobbler.prompt.lastfm.api-key'

label: t("plugins.scrobbler.prompt.lastfm.api-key"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.prompt.lastfm.api-key"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "text" with 'text'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.prompt.lastfm.api-secret" with 'plugins.scrobbler.prompt.lastfm.api-secret'

label: t("plugins.scrobbler.prompt.lastfm.api-secret"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.prompt.lastfm.api-secret"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "text" with 'text'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "librefm" with 'librefm'

const scrobbler = backend.enabledScrobblers.get("librefm");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const scrobbler = backend.enabledScrobblers.get("librefm");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Not·Enabled" with 'Libre.fm·Not·Enabled'

title: "Libre.fm Not Enabled",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Not Enabled",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Please·enable·Libre.fm·first·before·authenticating." with 'Please·enable·Libre.fm·first·before·authenticating.'

message: "Please enable Libre.fm first before authenticating.",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

message: "Please enable Libre.fm first before authenticating.",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "warning" with 'warning'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.prompt.listenbrainz.token.title" with 'plugins.scrobbler.prompt.listenbrainz.token.title'

title: t("plugins.scrobbler.prompt.listenbrainz.token.title"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: t("plugins.scrobbler.prompt.listenbrainz.token.title"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.prompt.listenbrainz.token.label" with 'plugins.scrobbler.prompt.listenbrainz.token.label'

label: t("plugins.scrobbler.prompt.listenbrainz.token.label"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.prompt.listenbrainz.token.label"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "input" with 'input'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.scrobble-other-media" with 'plugins.scrobbler.menu.scrobble-other-media'

label: t("plugins.scrobbler.menu.scrobble-other-media"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.scrobble-other-media"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.scrobble-alternative-title" with 'plugins.scrobbler.menu.scrobble-alternative-title'

label: t("plugins.scrobbler.menu.scrobble-alternative-title"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.scrobble-alternative-title"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.scrobble-alternative-artist" with 'plugins.scrobbler.menu.scrobble-alternative-artist'

label: t("plugins.scrobbler.menu.scrobble-alternative-artist"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.scrobble-alternative-artist"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Last.fm" with 'Last.fm'

label: "Last.fm",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "Last.fm",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "main.menu.plugins.enabled" with 'main.menu.plugins.enabled'

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.lastfm.api-settings" with 'plugins.scrobbler.menu.lastfm.api-settings'

label: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm" with 'Libre.fm'

label: "Libre.fm",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "Libre.fm",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "main.menu.plugins.enabled" with 'main.menu.plugins.enabled'

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Authenticate·with·Libre.fm" with 'Authenticate·with·Libre.fm'

label: "Authenticate with Libre.fm",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "Authenticate with Libre.fm",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "ListenBrainz" with 'ListenBrainz'

label: "ListenBrainz",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "ListenBrainz",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "main.menu.plugins.enabled" with 'main.menu.plugins.enabled'

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.listenbrainz.token" with 'plugins.scrobbler.menu.listenbrainz.token'

label: t("plugins.scrobbler.menu.listenbrainz.token"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.listenbrainz.token"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "node:crypto" with 'node:crypto'

import crypto from "node:crypto";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import crypto from "node:crypto";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "electron" with 'electron'

import { BrowserWindow, dialog, net } from "electron";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { BrowserWindow, dialog, net } from "electron";


🚫 [eslint] <importPlugin/order> reported by reviewdog 🐶
There should be at least one empty line between import groups

import { ScrobblerBase } from "./base";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./base" with './base'

import { ScrobblerBase } from "./base";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { ScrobblerBase } from "./base";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "../index" with '../index'

import type { ScrobblerPluginConfig } from "../index";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { ScrobblerPluginConfig } from "../index";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "../main" with '../main'

import type { SetConfType } from "../main";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { SetConfType } from "../main";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "@/providers/song-info" with '@/providers/song-info'

import type { SongInfo } from "@/providers/song-info";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { SongInfo } from "@/providers/song-info";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "test" with 'test'

const LIBREFM_API_KEY = "test";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const LIBREFM_API_KEY = "test";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "test" with 'test'

const LIBREFM_API_SECRET = "test";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const LIBREFM_API_SECRET = "test";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "auth.gettoken" with 'auth.gettoken'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "json" with 'json'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·get·authentication·token" with 'Failed·to·get·authentication·token'

throw new Error("Failed to get authentication token");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to get authentication token");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·parse·token·from·response" with 'Failed·to·parse·token·from·response'

throw new Error("Failed to parse token from response");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to parse token from response");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "closed" with 'closed'

authWindow.on("closed", () => resolve());


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

authWindow.on("closed", () => resolve());


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "auth.getsession" with 'auth.getsession'

method: "auth.getsession",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "auth.getsession",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "json" with 'json'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Successful" with 'Libre.fm·Authentication·Successful'

title: "Libre.fm Authentication Successful",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "info" with 'info'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·get·session·key" with 'Failed·to·get·session·key'

throw new Error(sessionJson.message || "Failed to get session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error(sessionJson.message || "Failed to get session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Successful" with 'Libre.fm·Authentication·Successful'

title: "Libre.fm Authentication Successful",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''

message: `Successfully authenticated${nameMatch ? ` as ${nameMatch[1]}` : ""}!`,


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

message: `Successfully authenticated${nameMatch ? ` as ${nameMatch[1]}` : ""}!`,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "info" with 'info'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·parse·session·from·response" with 'Failed·to·parse·session·from·response'

throw new Error("Failed to parse session from response");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to parse session from response");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·authentication·error:" with 'Libre.fm·authentication·error:'

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Failed" with 'Libre.fm·Authentication·Failed'

title: "Libre.fm Authentication Failed",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Failed",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "error" with 'error'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.updateNowPlaying" with 'track.updateNowPlaying'

method: "track.updateNowPlaying",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.updateNowPlaying",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.scrobble" with 'track.scrobble'

method: "track.scrobble",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.scrobble",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "POST" with 'POST'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Content-Type":·"application/x-www-form-urlencoded" with 'Content-Type':·'application/x-www-form-urlencoded'

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·session·expired,·clearing·session·key" with 'Libre.fm·session·expired,·clearing·session·key'

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "&" with '&'

return queryData.join("&");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return queryData.join("&");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "format"·||·key·===·"callback" with 'format'·||·key·===·'callback'

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "md5").update(sig,·"utf-8").digest("hex" with 'md5').update(sig,·'utf-8').digest('hex'

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");

Devajuice and others added 3 commits January 29, 2026 14:06
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./index" with './index'

import { type ScrobblerPluginConfig } from "./index";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { type ScrobblerPluginConfig } from "./index";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./main" with './main'

import { type SetConfType, backend } from "./main";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { type SetConfType, backend } from "./main";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "@/types/contexts" with '@/types/contexts'

import type { MenuContext } from "@/types/contexts";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { MenuContext } from "@/types/contexts";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "@/menu" with '@/menu'

import type { MenuTemplate } from "@/menu";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { MenuTemplate } from "@/menu";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.lastfm.api-settings" with 'plugins.scrobbler.menu.lastfm.api-settings'

title: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.lastfm.api-settings" with 'plugins.scrobbler.menu.lastfm.api-settings'

label: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "multiInput" with 'multiInput'

type: "multiInput",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "multiInput",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.prompt.lastfm.api-key" with 'plugins.scrobbler.prompt.lastfm.api-key'

label: t("plugins.scrobbler.prompt.lastfm.api-key"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.prompt.lastfm.api-key"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "text" with 'text'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.prompt.lastfm.api-secret" with 'plugins.scrobbler.prompt.lastfm.api-secret'

label: t("plugins.scrobbler.prompt.lastfm.api-secret"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.prompt.lastfm.api-secret"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "text" with 'text'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "librefm" with 'librefm'

const scrobbler = backend.enabledScrobblers.get("librefm");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const scrobbler = backend.enabledScrobblers.get("librefm");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Not·Enabled" with 'Libre.fm·Not·Enabled'

title: "Libre.fm Not Enabled",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Not Enabled",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Please·enable·Libre.fm·first·before·authenticating." with 'Please·enable·Libre.fm·first·before·authenticating.'

message: "Please enable Libre.fm first before authenticating.",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

message: "Please enable Libre.fm first before authenticating.",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "warning" with 'warning'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.prompt.listenbrainz.token.title" with 'plugins.scrobbler.prompt.listenbrainz.token.title'

title: t("plugins.scrobbler.prompt.listenbrainz.token.title"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: t("plugins.scrobbler.prompt.listenbrainz.token.title"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.prompt.listenbrainz.token.label" with 'plugins.scrobbler.prompt.listenbrainz.token.label'

label: t("plugins.scrobbler.prompt.listenbrainz.token.label"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.prompt.listenbrainz.token.label"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "input" with 'input'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.scrobble-other-media" with 'plugins.scrobbler.menu.scrobble-other-media'

label: t("plugins.scrobbler.menu.scrobble-other-media"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.scrobble-other-media"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.scrobble-alternative-title" with 'plugins.scrobbler.menu.scrobble-alternative-title'

label: t("plugins.scrobbler.menu.scrobble-alternative-title"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.scrobble-alternative-title"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.scrobble-alternative-artist" with 'plugins.scrobbler.menu.scrobble-alternative-artist'

label: t("plugins.scrobbler.menu.scrobble-alternative-artist"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.scrobble-alternative-artist"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Last.fm" with 'Last.fm'

label: "Last.fm",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "Last.fm",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "main.menu.plugins.enabled" with 'main.menu.plugins.enabled'

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.lastfm.api-settings" with 'plugins.scrobbler.menu.lastfm.api-settings'

label: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm" with 'Libre.fm'

label: "Libre.fm",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "Libre.fm",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "main.menu.plugins.enabled" with 'main.menu.plugins.enabled'

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Authenticate·with·Libre.fm" with 'Authenticate·with·Libre.fm'

label: "Authenticate with Libre.fm",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "Authenticate with Libre.fm",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "ListenBrainz" with 'ListenBrainz'

label: "ListenBrainz",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "ListenBrainz",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "main.menu.plugins.enabled" with 'main.menu.plugins.enabled'

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.listenbrainz.token" with 'plugins.scrobbler.menu.listenbrainz.token'

label: t("plugins.scrobbler.menu.listenbrainz.token"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.listenbrainz.token"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "node:crypto" with 'node:crypto'

import crypto from "node:crypto";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import crypto from "node:crypto";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "electron" with 'electron'

import { BrowserWindow, dialog, net } from "electron";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { BrowserWindow, dialog, net } from "electron";


🚫 [eslint] <importPlugin/order> reported by reviewdog 🐶
There should be at least one empty line between import groups

import { ScrobblerBase } from "./base";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./base" with './base'

import { ScrobblerBase } from "./base";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { ScrobblerBase } from "./base";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "../index" with '../index'

import type { ScrobblerPluginConfig } from "../index";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { ScrobblerPluginConfig } from "../index";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "../main" with '../main'

import type { SetConfType } from "../main";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { SetConfType } from "../main";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "@/providers/song-info" with '@/providers/song-info'

import type { SongInfo } from "@/providers/song-info";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { SongInfo } from "@/providers/song-info";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "test" with 'test'

const LIBREFM_API_KEY = "test";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const LIBREFM_API_KEY = "test";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "test" with 'test'

const LIBREFM_API_SECRET = "test";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const LIBREFM_API_SECRET = "test";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "auth.gettoken" with 'auth.gettoken'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "json" with 'json'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·get·authentication·token" with 'Failed·to·get·authentication·token'

throw new Error("Failed to get authentication token");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to get authentication token");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·parse·token·from·response" with 'Failed·to·parse·token·from·response'

throw new Error("Failed to parse token from response");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to parse token from response");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "closed" with 'closed'

authWindow.on("closed", () => resolve());


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

authWindow.on("closed", () => resolve());


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "auth.getsession" with 'auth.getsession'

method: "auth.getsession",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "auth.getsession",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "json" with 'json'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Successful" with 'Libre.fm·Authentication·Successful'

title: "Libre.fm Authentication Successful",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "info" with 'info'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·get·session·key" with 'Failed·to·get·session·key'

throw new Error(sessionJson.message || "Failed to get session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error(sessionJson.message || "Failed to get session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Successful" with 'Libre.fm·Authentication·Successful'

title: "Libre.fm Authentication Successful",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''

message: `Successfully authenticated${nameMatch ? ` as ${nameMatch[1]}` : ""}!`,


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

message: `Successfully authenticated${nameMatch ? ` as ${nameMatch[1]}` : ""}!`,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "info" with 'info'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·parse·session·from·response" with 'Failed·to·parse·session·from·response'

throw new Error("Failed to parse session from response");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to parse session from response");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·authentication·error:" with 'Libre.fm·authentication·error:'

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Failed" with 'Libre.fm·Authentication·Failed'

title: "Libre.fm Authentication Failed",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Failed",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "error" with 'error'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.updateNowPlaying" with 'track.updateNowPlaying'

method: "track.updateNowPlaying",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.updateNowPlaying",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.scrobble" with 'track.scrobble'

method: "track.scrobble",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.scrobble",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "POST" with 'POST'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Content-Type":·"application/x-www-form-urlencoded" with 'Content-Type':·'application/x-www-form-urlencoded'

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·session·expired,·clearing·session·key" with 'Libre.fm·session·expired,·clearing·session·key'

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "&" with '&'

return queryData.join("&");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return queryData.join("&");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "format"·||·key·===·"callback" with 'format'·||·key·===·'callback'

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "md5").update(sig,·"utf-8").digest("hex" with 'md5').update(sig,·'utf-8').digest('hex'

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.prompt.listenbrainz.token.title" with 'plugins.scrobbler.prompt.listenbrainz.token.title'

title: t("plugins.scrobbler.prompt.listenbrainz.token.title"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: t("plugins.scrobbler.prompt.listenbrainz.token.title"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.prompt.listenbrainz.token.label" with 'plugins.scrobbler.prompt.listenbrainz.token.label'

label: t("plugins.scrobbler.prompt.listenbrainz.token.label"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.prompt.listenbrainz.token.label"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "input" with 'input'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.scrobble-other-media" with 'plugins.scrobbler.menu.scrobble-other-media'

label: t("plugins.scrobbler.menu.scrobble-other-media"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.scrobble-other-media"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.scrobble-alternative-title" with 'plugins.scrobbler.menu.scrobble-alternative-title'

label: t("plugins.scrobbler.menu.scrobble-alternative-title"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.scrobble-alternative-title"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.scrobble-alternative-artist" with 'plugins.scrobbler.menu.scrobble-alternative-artist'

label: t("plugins.scrobbler.menu.scrobble-alternative-artist"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.scrobble-alternative-artist"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Last.fm" with 'Last.fm'

label: "Last.fm",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "Last.fm",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "main.menu.plugins.enabled" with 'main.menu.plugins.enabled'

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.lastfm.api-settings" with 'plugins.scrobbler.menu.lastfm.api-settings'

label: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.lastfm.api-settings"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm" with 'Libre.fm'

label: "Libre.fm",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "Libre.fm",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "main.menu.plugins.enabled" with 'main.menu.plugins.enabled'

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Authenticate·with·Libre.fm" with 'Authenticate·with·Libre.fm'

label: "Authenticate with Libre.fm",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "Authenticate with Libre.fm",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "ListenBrainz" with 'ListenBrainz'

label: "ListenBrainz",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "ListenBrainz",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "main.menu.plugins.enabled" with 'main.menu.plugins.enabled'

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.listenbrainz.token" with 'plugins.scrobbler.menu.listenbrainz.token'

label: t("plugins.scrobbler.menu.listenbrainz.token"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.listenbrainz.token"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "node:crypto" with 'node:crypto'

import crypto from "node:crypto";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import crypto from "node:crypto";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "electron" with 'electron'

import { BrowserWindow, dialog, net } from "electron";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { BrowserWindow, dialog, net } from "electron";


🚫 [eslint] <importPlugin/order> reported by reviewdog 🐶
There should be at least one empty line between import groups

import { ScrobblerBase } from "./base";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./base" with './base'

import { ScrobblerBase } from "./base";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { ScrobblerBase } from "./base";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "../index" with '../index'

import type { ScrobblerPluginConfig } from "../index";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { ScrobblerPluginConfig } from "../index";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "../main" with '../main'

import type { SetConfType } from "../main";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { SetConfType } from "../main";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "@/providers/song-info" with '@/providers/song-info'

import type { SongInfo } from "@/providers/song-info";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { SongInfo } from "@/providers/song-info";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "test" with 'test'

const LIBREFM_API_KEY = "test";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const LIBREFM_API_KEY = "test";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "test" with 'test'

const LIBREFM_API_SECRET = "test";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const LIBREFM_API_SECRET = "test";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "auth.gettoken" with 'auth.gettoken'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "json" with 'json'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·get·authentication·token" with 'Failed·to·get·authentication·token'

throw new Error("Failed to get authentication token");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to get authentication token");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·parse·token·from·response" with 'Failed·to·parse·token·from·response'

throw new Error("Failed to parse token from response");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to parse token from response");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "closed" with 'closed'

authWindow.on("closed", () => resolve());


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

authWindow.on("closed", () => resolve());


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "auth.getsession" with 'auth.getsession'

method: "auth.getsession",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "auth.getsession",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "json" with 'json'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Successful" with 'Libre.fm·Authentication·Successful'

title: "Libre.fm Authentication Successful",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "info" with 'info'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·get·session·key" with 'Failed·to·get·session·key'

throw new Error(sessionJson.message || "Failed to get session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error(sessionJson.message || "Failed to get session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Successful" with 'Libre.fm·Authentication·Successful'

title: "Libre.fm Authentication Successful",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''

message: `Successfully authenticated${nameMatch ? ` as ${nameMatch[1]}` : ""}!`,


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

message: `Successfully authenticated${nameMatch ? ` as ${nameMatch[1]}` : ""}!`,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "info" with 'info'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·parse·session·from·response" with 'Failed·to·parse·session·from·response'

throw new Error("Failed to parse session from response");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to parse session from response");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·authentication·error:" with 'Libre.fm·authentication·error:'

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Failed" with 'Libre.fm·Authentication·Failed'

title: "Libre.fm Authentication Failed",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Failed",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "error" with 'error'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.updateNowPlaying" with 'track.updateNowPlaying'

method: "track.updateNowPlaying",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.updateNowPlaying",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.scrobble" with 'track.scrobble'

method: "track.scrobble",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.scrobble",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "POST" with 'POST'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Content-Type":·"application/x-www-form-urlencoded" with 'Content-Type':·'application/x-www-form-urlencoded'

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·session·expired,·clearing·session·key" with 'Libre.fm·session·expired,·clearing·session·key'

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "&" with '&'

return queryData.join("&");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return queryData.join("&");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "format"·||·key·===·"callback" with 'format'·||·key·===·'callback'

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "md5").update(sig,·"utf-8").digest("hex" with 'md5').update(sig,·'utf-8').digest('hex'

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Authenticate·with·Libre.fm" with 'Authenticate·with·Libre.fm'

label: "Authenticate with Libre.fm",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "Authenticate with Libre.fm",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "ListenBrainz" with 'ListenBrainz'

label: "ListenBrainz",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: "ListenBrainz",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "main.menu.plugins.enabled" with 'main.menu.plugins.enabled'

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("main.menu.plugins.enabled"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "checkbox" with 'checkbox'

type: "checkbox",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

type: "checkbox",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "plugins.scrobbler.menu.listenbrainz.token" with 'plugins.scrobbler.menu.listenbrainz.token'

label: t("plugins.scrobbler.menu.listenbrainz.token"),


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

label: t("plugins.scrobbler.menu.listenbrainz.token"),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "node:crypto" with 'node:crypto'

import crypto from "node:crypto";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import crypto from "node:crypto";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "electron" with 'electron'

import { BrowserWindow, dialog, net } from "electron";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { BrowserWindow, dialog, net } from "electron";


🚫 [eslint] <importPlugin/order> reported by reviewdog 🐶
There should be at least one empty line between import groups

import { ScrobblerBase } from "./base";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "./base" with './base'

import { ScrobblerBase } from "./base";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import { ScrobblerBase } from "./base";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "../index" with '../index'

import type { ScrobblerPluginConfig } from "../index";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { ScrobblerPluginConfig } from "../index";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "../main" with '../main'

import type { SetConfType } from "../main";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { SetConfType } from "../main";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "@/providers/song-info" with '@/providers/song-info'

import type { SongInfo } from "@/providers/song-info";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

import type { SongInfo } from "@/providers/song-info";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "test" with 'test'

const LIBREFM_API_KEY = "test";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const LIBREFM_API_KEY = "test";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "test" with 'test'

const LIBREFM_API_SECRET = "test";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const LIBREFM_API_SECRET = "test";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "auth.gettoken" with 'auth.gettoken'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "json" with 'json'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·get·authentication·token" with 'Failed·to·get·authentication·token'

throw new Error("Failed to get authentication token");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to get authentication token");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·parse·token·from·response" with 'Failed·to·parse·token·from·response'

throw new Error("Failed to parse token from response");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to parse token from response");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "closed" with 'closed'

authWindow.on("closed", () => resolve());


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

authWindow.on("closed", () => resolve());


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "auth.getsession" with 'auth.getsession'

method: "auth.getsession",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "auth.getsession",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "json" with 'json'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Successful" with 'Libre.fm·Authentication·Successful'

title: "Libre.fm Authentication Successful",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "info" with 'info'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·get·session·key" with 'Failed·to·get·session·key'

throw new Error(sessionJson.message || "Failed to get session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error(sessionJson.message || "Failed to get session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Successful" with 'Libre.fm·Authentication·Successful'

title: "Libre.fm Authentication Successful",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''

message: `Successfully authenticated${nameMatch ? ` as ${nameMatch[1]}` : ""}!`,


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

message: `Successfully authenticated${nameMatch ? ` as ${nameMatch[1]}` : ""}!`,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "info" with 'info'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·parse·session·from·response" with 'Failed·to·parse·session·from·response'

throw new Error("Failed to parse session from response");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to parse session from response");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·authentication·error:" with 'Libre.fm·authentication·error:'

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Failed" with 'Libre.fm·Authentication·Failed'

title: "Libre.fm Authentication Failed",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Failed",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "error" with 'error'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.updateNowPlaying" with 'track.updateNowPlaying'

method: "track.updateNowPlaying",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.updateNowPlaying",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.scrobble" with 'track.scrobble'

method: "track.scrobble",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.scrobble",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "POST" with 'POST'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Content-Type":·"application/x-www-form-urlencoded" with 'Content-Type':·'application/x-www-form-urlencoded'

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·session·expired,·clearing·session·key" with 'Libre.fm·session·expired,·clearing·session·key'

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "&" with '&'

return queryData.join("&");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return queryData.join("&");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "format"·||·key·===·"callback" with 'format'·||·key·===·'callback'

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "md5").update(sig,·"utf-8").digest("hex" with 'md5').update(sig,·'utf-8').digest('hex'

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "test" with 'test'

const LIBREFM_API_SECRET = "test";


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

const LIBREFM_API_SECRET = "test";


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "auth.gettoken" with 'auth.gettoken'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "json" with 'json'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·get·authentication·token" with 'Failed·to·get·authentication·token'

throw new Error("Failed to get authentication token");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to get authentication token");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·parse·token·from·response" with 'Failed·to·parse·token·from·response'

throw new Error("Failed to parse token from response");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to parse token from response");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "closed" with 'closed'

authWindow.on("closed", () => resolve());


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

authWindow.on("closed", () => resolve());


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "auth.getsession" with 'auth.getsession'

method: "auth.getsession",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "auth.getsession",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "json" with 'json'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Successful" with 'Libre.fm·Authentication·Successful'

title: "Libre.fm Authentication Successful",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "info" with 'info'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·get·session·key" with 'Failed·to·get·session·key'

throw new Error(sessionJson.message || "Failed to get session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error(sessionJson.message || "Failed to get session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Successful" with 'Libre.fm·Authentication·Successful'

title: "Libre.fm Authentication Successful",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''

message: `Successfully authenticated${nameMatch ? ` as ${nameMatch[1]}` : ""}!`,


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

message: `Successfully authenticated${nameMatch ? ` as ${nameMatch[1]}` : ""}!`,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "info" with 'info'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Failed·to·parse·session·from·response" with 'Failed·to·parse·session·from·response'

throw new Error("Failed to parse session from response");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

throw new Error("Failed to parse session from response");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·authentication·error:" with 'Libre.fm·authentication·error:'

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Failed" with 'Libre.fm·Authentication·Failed'

title: "Libre.fm Authentication Failed",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Failed",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "error" with 'error'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.updateNowPlaying" with 'track.updateNowPlaying'

method: "track.updateNowPlaying",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.updateNowPlaying",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.scrobble" with 'track.scrobble'

method: "track.scrobble",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.scrobble",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "POST" with 'POST'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Content-Type":·"application/x-www-form-urlencoded" with 'Content-Type':·'application/x-www-form-urlencoded'

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·session·expired,·clearing·session·key" with 'Libre.fm·session·expired,·clearing·session·key'

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "&" with '&'

return queryData.join("&");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return queryData.join("&");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "format"·||·key·===·"callback" with 'format'·||·key·===·'callback'

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "md5").update(sig,·"utf-8").digest("hex" with 'md5').update(sig,·'utf-8').digest('hex'

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·authentication·error:" with 'Libre.fm·authentication·error:'

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.error("Libre.fm authentication error:", error);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·Authentication·Failed" with 'Libre.fm·Authentication·Failed'

title: "Libre.fm Authentication Failed",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

title: "Libre.fm Authentication Failed",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "error" with 'error'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.updateNowPlaying" with 'track.updateNowPlaying'

method: "track.updateNowPlaying",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.updateNowPlaying",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "track.scrobble" with 'track.scrobble'

method: "track.scrobble",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

method: "track.scrobble",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "POST" with 'POST'


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Content-Type":·"application/x-www-form-urlencoded" with 'Content-Type':·'application/x-www-form-urlencoded'

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

"Content-Type": "application/x-www-form-urlencoded",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Libre.fm·session·expired,·clearing·session·key" with 'Libre.fm·session·expired,·clearing·session·key'

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

console.log("Libre.fm session expired, clearing session key");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "&" with '&'

return queryData.join("&");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return queryData.join("&");


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "" with ''


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "format"·||·key·===·"callback" with 'format'·||·key·===·'callback'

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

if (key === "format" || key === "callback") {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "md5").update(sig,·"utf-8").digest("hex" with 'md5').update(sig,·'utf-8').digest('hex'

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");


🚫 [eslint] <stylistic/quotes> reported by reviewdog 🐶
Strings must use singlequote.

return crypto.createHash("md5").update(sig, "utf-8").digest("hex");

Devajuice and others added 14 commits January 29, 2026 14:36
…rove type imports

chore: update .gitignore to include Playwright test results
chore: update package.json and pnpm-lock.yaml for @types/node and @playwright/test versioning
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…v2.13.4 (pear-devs#4257)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…ar-devs#4274)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
JellyBrick and others added 30 commits February 16, 2026 10:10
Co-authored-by: Angelos Bouklis <me@arjix.dev>
Co-authored-by: JellyBrick <shlee1503@naver.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
Co-authored-by: Angelos Bouklis <me@arjix.dev>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Currently translated at 100.0% (469 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
Currently translated at 100.0% (469 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
Currently translated at 0.8% (4 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sah/
Currently translated at 87.2% (409 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
Currently translated at 100.0% (469 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
Currently translated at 100.0% (469 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
Currently translated at 99.7% (468 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
Currently translated at 100.0% (469 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
Currently translated at 2.7% (13 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/te/
…yrics (pear-devs#3933)

Co-authored-by: pranjol <pranjol@pranjols-iMac-Pro.local>
… improve Romanization to display tone (pear-devs#4111)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Angelos Bouklis <me@arjix.dev>
Co-authored-by: JellyBrick <shlee1503@naver.com>
Currently translated at 100.0% (469 of 469 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
Currently translated at 100.0% (477 of 477 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Comments