Skip to content

Add Slack Now Playing plugin#3242

Open
curtisgibby wants to merge 34 commits intopear-devs:masterfrom
curtisgibby:slack-now-playing
Open

Add Slack Now Playing plugin#3242
curtisgibby wants to merge 34 commits intopear-devs:masterfrom
curtisgibby:slack-now-playing

Conversation

@curtisgibby
Copy link

I wanted to be able to push my "Now Playing" status to my company's Slack.

@JellyBrick JellyBrick added the enhancement New feature or request label Apr 21, 2025
@JellyBrick
Copy link
Collaborator

It would be better to separate the Slack scrobbler as a standalone plugin, similar to the Discord RPC. The Scrobbler plugin is intended for services like LastFM or Listenbrainz.

@ArjixWasTaken
Copy link
Member

ArjixWasTaken commented Apr 21, 2025

This is more akin to discord rich presence than scrobbling. (I hadn't read Jelly's message which says the same thing)
Maybe we could make a more generic plugin that supports multiple social media platforms?

e.g. Rich Presence or smth like that

@curtisgibby
Copy link
Author

OK, I'll rework this as a standalone plugin.

@curtisgibby curtisgibby changed the title Add slack scrobbler Add Slack Now Playing plugin May 9, 2025
@ArjixWasTaken
Copy link
Member

I wouldn't recommend adding a dependency like axios, especially in 2025, when the built-in fetch is as good.

@ArjixWasTaken
Copy link
Member

Why the extra dependency for formdata?

@curtisgibby
Copy link
Author

Why the extra dependency for formdata?

That was a leftover when I was trying formdata instead of formdata-node. Removed now.

package.json Outdated
"fetch-blob": "^4.0.0",
"file-type": "^20.5.0",
"filenamify": "6.0.0",
"formdata-node": "^6.0.3",

This comment was marked as resolved.

package.json Outdated
"es-hangul": "2.3.3",
"fast-average-color": "9.5.0",
"fast-equals": "5.2.2",
"fetch-blob": "^4.0.0",

This comment was marked as resolved.

@ArjixWasTaken
Copy link
Member

ArjixWasTaken commented May 10, 2025

why so many polyfills?
we are using a modern version of Nodejs that supports all those out of the box

@curtisgibby
Copy link
Author

I believe that I've addressed all of the feedback that you've given. If there's something I've missed, or a new issue, please let me know.

@ArjixWasTaken
Copy link
Member

ArjixWasTaken commented May 18, 2025

It would be hypocritical of me to say this in another PR and not here as well, so here we go.

#3376 (comment)

Why are you providing translations?
Translations are meant to be contributed using weblate.

Please do not use Google Translate/AI for translations.

@curtisgibby
Copy link
Author

Please do not use Google Translate/AI for translations.

Reverted all languages except EN & ES (since I speak those languages and know that the meaning is correct).

@curtisgibby
Copy link
Author

I've updated this PR with the latest commits from master. Is there any interest in merging it?

@JellyBrick JellyBrick requested a review from Copilot August 2, 2025 07:25
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds a Slack Now Playing plugin that allows users to automatically set their Slack status to the currently playing song. The plugin integrates with Slack's API to update user status with song information and album art as custom emojis.

  • Implements a Slack API client with caching and rate limiting
  • Creates a configuration interface for Slack tokens and emoji settings
  • Adds internationalization support for English and Spanish

Reviewed Changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/plugins/slack-now-playing/slack-api-client.ts Core Slack API client with rate limiting, caching, and error handling
src/plugins/slack-now-playing/main.ts Main plugin logic for status updates and emoji management
src/plugins/slack-now-playing/menu.ts Configuration UI for Slack tokens and settings
src/plugins/slack-now-playing/index.ts Plugin entry point and configuration
src/i18n/resources/en.json English translations for the plugin
src/i18n/resources/es.json Spanish translations for the plugin
package.json Development environment configuration update
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment on lines 225 to 226
// @ts-ignore
fetchOptions.agent = new https.Agent({ rejectUnauthorized: false });
Copy link

Copilot AI Aug 2, 2025

Choose a reason for hiding this comment

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

Use a proper type assertion instead of @ts-ignore. Consider creating a proper type for the agent option or using a more specific type annotation.

Suggested change
// @ts-ignore
fetchOptions.agent = new https.Agent({ rejectUnauthorized: false });
(fetchOptions as any).agent = new https.Agent({ rejectUnauthorized: false });

Copilot uses AI. Check for mistakes.
}

// Prepare the form data for the API request using native Node.js APIs
const formData = new FormData();
Copy link

Copilot AI Aug 2, 2025

Choose a reason for hiding this comment

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

FormData is imported from 'formdata-node' but being used as native FormData here. This could cause issues since the import at the top suggests the intention is to use the Node.js compatible FormData.

Copilot uses AI. Check for mistakes.
Comment on lines 604 to 608
// Emoji not found, no need to delete
console.error(`Unexpected error deleting emoji: ${apiError.message}`, {
name: apiError.name,
stack: apiError.stack
});
Copy link

Copilot AI Aug 2, 2025

Choose a reason for hiding this comment

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

The error message and logging logic is incorrect. When emoji_not_found is encountered, it should be treated as success, not logged as an error.

Suggested change
// Emoji not found, no need to delete
console.error(`Unexpected error deleting emoji: ${apiError.message}`, {
name: apiError.name,
stack: apiError.stack
});
// Emoji not found, no need to delete; treat as success.
// No error to log here.

Copilot uses AI. Check for mistakes.
/** Base URL for all Slack API requests */
private readonly baseUrl = 'https://slack.com/api';
/** Cache for GET requests to reduce API calls */
private readonly cache: Map<string, CacheEntry<any>> = new Map();
Copy link

Copilot AI Aug 2, 2025

Choose a reason for hiding this comment

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

Using 'any' type reduces type safety. Consider using generics or a more specific type for the cache values.

Suggested change
private readonly cache: Map<string, CacheEntry<any>> = new Map();
private readonly cache: Map<string, CacheEntry<TCache>> = new Map();

Copilot uses AI. Check for mistakes.
// Read the file as a Buffer and append directly to FormData
const fileBuffer = await fs.promises.readFile(filePath);
const filename = path.basename(filePath) || 'emoji.png';
const imageFile = new File([fileBuffer], filename);
Copy link

Copilot AI Aug 2, 2025

Choose a reason for hiding this comment

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

The File constructor is a Web API that may not be available in Node.js environment. This could cause runtime errors in the Electron main process.

Copilot uses AI. Check for mistakes.
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 ········(error.message.includes('token')·||·error.message.includes('authentication')) with ······(error.message.includes('token')·||⏎········error.message.includes('authentication'))⏎····

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L228-L228


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'Slack·authentication·failed.·Please·check·your·API·token·and·cookie·token.' with ⏎········'Slack·authentication·failed.·Please·check·your·API·token·and·cookie·token.',⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L229-L229


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Cannot·update·Slack·status:·${validationResult.errors.join(',·')} with ⏎········Cannot·update·Slack·status:·${validationResult.errors.join(',·')},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L252-L252


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L275-L276


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L290-L290


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace songInfo:·SongInfo,·config:·SlackNowPlayingConfig with ⏎··songInfo:·SongInfo,⏎··config:·SlackNowPlayingConfig,⏎

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L301-L301


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace await·uploadEmojiToSlack(songInfo,·config with (await·uploadEmojiToSlack(songInfo,·config)

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L302-L302


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace songInfo:·SongInfo,·config:·SlackNowPlayingConfig with ⏎··songInfo:·SongInfo,⏎··config:·SlackNowPlayingConfig,⏎

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L316-L316


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Cannot·upload·emoji·to·Slack:·${validationResult.errors.join(',·')} with ⏎········Cannot·upload·emoji·to·Slack:·${validationResult.errors.join(',·')},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L321-L321


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L351-L352


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L352-L352


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Error·preparing·album·art·file:·${fileError·instanceof·Error·?·fileError.message·:·String(fileError)} with ⏎········Error·preparing·album·art·file:·${fileError·instanceof·Error·?·fileError.message·:·String(fileError)},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L353-L353


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Invalid·emoji·name:·${config.emojiName}.·Emoji·names·can·only·contain·lowercase·letters,·numbers,·hyphens,·and·underscores. with ⏎············Invalid·emoji·name:·${config.emojiName}.·Emoji·names·can·only·contain·lowercase·letters,·numbers,·hyphens,·and·underscores.,⏎··········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L367-L367


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'Album·art·image·is·too·large·for·Slack·emoji·(max·128KB).' with ⏎············'Album·art·image·is·too·large·for·Slack·emoji·(max·128KB).',⏎··········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L369-L369


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Emoji·name·'${config.emojiName}'·is·already·taken.·This·should·not·happen·as·we·check·for·existing·emojis. with ⏎············Emoji·name·'${config.emojiName}'·is·already·taken.·This·should·not·happen·as·we·check·for·existing·emojis.,⏎··········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L371-L371


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ``Error·uploading·emoji:·${errorCode},·apiError.responseData with `⏎············`Error·uploading·emoji:·${errorCode}`,⏎············apiError.responseData,⏎··········`

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L373-L373


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L377-L378


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Error·uploading·emoji·to·Slack:·${apiError·instanceof·Error·?·apiError.message·:·String(apiError)} with ⏎··········Error·uploading·emoji·to·Slack:·${apiError·instanceof·Error·?·apiError.message·:·String(apiError)},⏎········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L379-L379


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ``Unexpected·error·uploading·emoji·to·Slack:·${error.message}, with `⏎········`Unexpected·error·uploading·emoji·to·Slack:·${error.message}`,⏎·······`

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L386-L386


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L387-L387


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace stack:·error.stack with ··stack:·error.stack,

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L388-L388


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace } with ··},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L389-L389


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Unexpected·error·uploading·emoji·to·Slack:·${String(error)} with ⏎········Unexpected·error·uploading·emoji·to·Slack:·${String(error)},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L391-L391


⚠️ [eslint] <@typescript-eslint/no-unused-vars> reported by reviewdog 🐶
'error' is defined but never used.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L421-L421


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L421-L421


⚠️ [eslint] <@typescript-eslint/no-unused-vars> reported by reviewdog 🐶
'error' is defined but never used.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L432-L432


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L432-L432


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Failed·to·fetch·album·art:·HTTP·${response.status}·${response.statusText} with ⏎··········Failed·to·fetch·album·art:·HTTP·${response.status}·${response.statusText},⏎········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L451-L451


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Network·error·fetching·album·art:·${fetchError·instanceof·Error·?·fetchError.message·:·String(fetchError)} with ⏎········Network·error·fetching·album·art:·${fetchError·instanceof·Error·?·fetchError.message·:·String(fetchError)},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L455-L455


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Error·processing·album·art·data:·${bufferError·instanceof·Error·?·bufferError.message·:·String(bufferError)} with ⏎········Error·processing·album·art·data:·${bufferError·instanceof·Error·?·bufferError.message·:·String(bufferError)},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L469-L469


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L485-L485


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Error·writing·album·art·to·file:·${fileError·instanceof·Error·?·fileError.message·:·String(fileError)} with ⏎········Error·writing·album·art·to·file:·${fileError·instanceof·Error·?·fileError.message·:·String(fileError)},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L490-L490


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L493-L493


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L498-L498


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace config:·SlackNowPlayingConfig with ⏎··config:·SlackNowPlayingConfig,⏎

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L512-L512


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Cannot·check·emoji·existence:·${validationResult.errors.join(',·')} with ⏎········Cannot·check·emoji·existence:·${validationResult.errors.join(',·')},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L517-L517


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace response.emoji·&&·typeof·response.emoji·===·'object'·&&·config.emojiName·in·response.emoji with ⏎········response.emoji·&&⏎········typeof·response.emoji·===·'object'·&&⏎········config.emojiName·in·response.emoji⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L532-L532


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L539-L539


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'Slack·authentication·failed.·Please·check·your·API·token·and·cookie·token.' with ⏎············'Slack·authentication·failed.·Please·check·your·API·token·and·cookie·token.',⏎··········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L545-L545


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'Slack·API·rate·limit·exceeded.·Please·try·again·later.' with ⏎············'Slack·API·rate·limit·exceeded.·Please·try·again·later.',⏎··········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L547-L547


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Error·checking·emoji·list:·${errorCode·||·apiError.message} with ⏎············Error·checking·emoji·list:·${errorCode·||·apiError.message},⏎··········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L549-L549


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace [Slack]·Error·checking·emoji·list:·${apiError·instanceof·Error·?·apiError.message·:·String(apiError)} with ⏎··········[Slack]·Error·checking·emoji·list:·${apiError·instanceof·Error·?·apiError.message·:·String(apiError)},⏎········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L552-L552


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ``[Slack]·Unexpected·error·in·ensureEmojiDoesNotExist:·${error.message}, with `⏎········`[Slack]·Unexpected·error·in·ensureEmojiDoesNotExist:·${error.message}`,⏎·······`

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L562-L562


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L563-L563


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace stack:·error.stack with ··stack:·error.stack,

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L564-L564


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ······} with ········},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L565-L565


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace [Slack]·Unexpected·error·in·ensureEmojiDoesNotExist:·${String(error)} with ⏎········[Slack]·Unexpected·error·in·ensureEmojiDoesNotExist:·${String(error)},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L567-L567


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace config:·SlackNowPlayingConfig with ⏎··config:·SlackNowPlayingConfig,⏎

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L578-L578


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Cannot·delete·emoji:·${validationResult.errors.join(',·')} with ⏎········Cannot·delete·emoji:·${validationResult.errors.join(',·')},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L583-L583


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L597-L597


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ``Unexpected·error·deleting·emoji:·${apiError.message}, with `⏎············`Unexpected·error·deleting·emoji:·${apiError.message}`,⏎···········`

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L605-L605


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L606-L606


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············stack:·apiError.stack with ··············stack:·apiError.stack,

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L607-L607


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ··········} with ············},⏎··········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L608-L608


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ``[Slack]·Unexpected·error·in·deleteExistingEmoji:·${error.message}, with `⏎········`[Slack]·Unexpected·error·in·deleteExistingEmoji:·${error.message}`,⏎·······`

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L618-L618


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L619-L619


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········stack:·error.stack with ··········stack:·error.stack,

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L620-L620


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ······} with ········},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L621-L621


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace [Slack]·Unexpected·error·in·deleteExistingEmoji:·${String(error)} with ⏎········[Slack]·Unexpected·error·in·deleteExistingEmoji:·${String(error)},⏎······

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L623-L623


⚠️ [eslint] <@typescript-eslint/no-unused-vars> reported by reviewdog 🐶
'error' is defined but never used.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L641-L641


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L641-L641


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace signal with (signal)

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L648-L648


🚫 [eslint] <stylistic/arrow-parens> reported by reviewdog 🐶
Expected parentheses around arrow function argument.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L648-L648


⚠️ [eslint] <@typescript-eslint/no-unused-vars> reported by reviewdog 🐶
'error' is defined but never used.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L674-L674


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L674-L674


🚫 [eslint] <@typescript-eslint/no-unsafe-call> reported by reviewdog 🐶
Unsafe call of a(n) error type typed value.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L687-L687


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Slack·Now·Playing·configuration·validation·failed:·${validationResult.errors.join(',·')} with ⏎··············Slack·Now·Playing·configuration·validation·failed:·${validationResult.errors.join(',·')},⏎············

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L717-L717


🚫 [eslint] <@typescript-eslint/no-unsafe-argument> reported by reviewdog 🐶
Unsafe argument of type any assigned to a parameter of type SongInfo.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L723-L723


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ⏎··········.catch(error with .catch((error)

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L723-L724


🚫 [eslint] <stylistic/arrow-parens> reported by reviewdog 🐶
Expected parentheses around arrow function argument.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L724-L724


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L725-L725


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L726-L726


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L727-L727


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ··············if·(error.message.includes('authentication')·||·error.message.includes('token') with ············if·(⏎··············error.message.includes('authentication')·||⏎··············error.message.includes('token')⏎············

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L728-L728


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················console.error('Slack·authentication·failed.·Please·check·your·API·token·and·cookie·token.'); with ··············console.error(⏎················'Slack·authentication·failed.·Please·check·your·API·token·and·cookie·token.',

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L729-L729


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace } with );

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L730-L730


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L731-L731


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ··else·if·(error.message.includes('rate·limit')·||·error.message.includes('rate_limited') with else·if·(⏎··············error.message.includes('rate·limit')·||⏎··············error.message.includes('rate_limited')⏎············

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L732-L732


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················console.error('Slack·API·rate·limit·exceeded.·Please·try·again·later.'); with ··············console.error(⏎················'Slack·API·rate·limit·exceeded.·Please·try·again·later.',

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L733-L733


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace } with );

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L734-L734


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L735-L735


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L736-L736


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L737-L737


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L738-L738


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L739-L739


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L740-L740


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L741-L741


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L742-L742


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L743-L743


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L748-L748


🚫 [eslint] <@typescript-eslint/no-unsafe-assignment> reported by reviewdog 🐶
Unsafe assignment of an any value.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L788-L788


🚫 [eslint] <@typescript-eslint/no-unsafe-call> reported by reviewdog 🐶
Unsafe call of a(n) any typed value.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L788-L788


🚫 [eslint] <@typescript-eslint/no-unsafe-member-access> reported by reviewdog 🐶
Unsafe member access .getConfig on an any value.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L788-L788


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L799-L799


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Slack·Now·Playing·configuration·validation·failed:·${error·instanceof·Error·?·error.message·:·String(error)} with ⏎············Slack·Now·Playing·configuration·validation·failed:·${error·instanceof·Error·?·error.message·:·String(error)},⏎··········

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L800-L800


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/main.ts#L802-L802


🚫 [eslint] <@typescript-eslint/consistent-type-imports> reported by reviewdog 🐶
Imports "BrowserWindow" are only used as type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/menu.ts#L2-L2


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/menu.ts#L2-L2


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'Invalid·Slack·cookie·token·format·(should·start·with·"xoxd-")' with ⏎······'Invalid·Slack·cookie·token·format·(should·start·with·"xoxd-")',⏎····

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/menu.ts#L37-L37


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'Invalid·emoji·name·format·(should·only·contain·lowercase·letters,·numbers,·hyphens,·and·underscores)' with ⏎······'Invalid·emoji·name·format·(should·only·contain·lowercase·letters,·numbers,·hyphens,·and·underscores)',⏎····

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/menu.ts#L44-L44


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/menu.ts#L49-L49


🚫 [eslint] <@typescript-eslint/await-thenable> reported by reviewdog 🐶
Unexpected await of a non-Promise (non-"Thenable") value.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/menu.ts#L144-L144


🚫 [eslint] <@typescript-eslint/require-await> reported by reviewdog 🐶
Async arrow function 'onMenu' has no 'await' expression.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/menu.ts#L164-L164


🚫 [eslint] <@typescript-eslint/consistent-type-imports> reported by reviewdog 🐶
All imports in the declaration are only used as types. Use import type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L1-L1


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L1-L1


🚫 [eslint] <importPlugin/no-unresolved> reported by reviewdog 🐶
Unable to resolve path to module 'formdata-node'.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L1-L1


🚫 [eslint] <importPlugin/order> reported by reviewdog 🐶
node:https import should occur before import of formdata-node

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L2-L2


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·string·|·number·|·boolean·|·null·|·undefined·|·string[] with ⏎····|·string⏎····|·number⏎····|·boolean⏎····|·null⏎····|·undefined⏎····|·string[]⏎···

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L71-L71


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L100-L100


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L158-L158


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace headers:·Record<string,·string>,·options:·{·disableSSLValidation?:·boolean·}·=·{} with ⏎····headers:·Record<string,·string>,⏎····options:·{·disableSSLValidation?:·boolean·}·=·{},⏎··

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L219-L219


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L221-L221


🚫 [eslint] <@typescript-eslint/ban-ts-comment> reported by reviewdog 🐶
Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L225-L225


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L245-L245


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L247-L247


🚫 [eslint] <@typescript-eslint/no-redundant-type-constituents> reported by reviewdog 🐶
'FormData' is an 'error' type that acts as 'any' and overrides all other types in this union type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L247-L247


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L248-L248


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L257-L257


🚫 [eslint] <prefer-const> reported by reviewdog 🐶
'headers' is never reassigned. Use 'const' instead.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L262-L262


🚫 [eslint] <@typescript-eslint/no-unsafe-assignment> reported by reviewdog 🐶
Unsafe assignment of an error typed value.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L263-L263


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L263-L263


🚫 [eslint] <@typescript-eslint/no-unsafe-assignment> reported by reviewdog 🐶
Unsafe assignment of an error typed value.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L267-L267


🚫 [eslint] <@typescript-eslint/no-unsafe-argument> reported by reviewdog 🐶
Unsafe argument of type error typed assigned to a parameter of type { [s: string]: unknown; } | ArrayLike<unknown>.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L274-L274


🚫 [eslint] <@typescript-eslint/no-base-to-string> reported by reviewdog 🐶
'value' will use Object's default stringification format ('[object Object]') when stringified.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L276-L276


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·!process.env.NODE_ENV·||·process.env.NODE_ENV·===·'development'·||·process.env.NODE_ENV·===·'test' with ⏎··········!process.env.NODE_ENV·||⏎··········process.env.NODE_ENV·===·'development'·||⏎··········process.env.NODE_ENV·===·'test',

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L290-L290


🚫 [eslint] <@typescript-eslint/no-unsafe-assignment> reported by reviewdog 🐶
Unsafe assignment of an any value.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L294-L294


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L304-L304


🚫 [eslint] <@typescript-eslint/no-unnecessary-type-assertion> reported by reviewdog 🐶
This assertion is unnecessary since it does not change the type of the expression.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L314-L314


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L314-L314


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L318-L318


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L322-L322


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L341-L341


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L409-L409


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L429-L429


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L432-L432


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace string,·string·|·number·|·boolean·|·string[]·|·number[] with ⏎······string,⏎······string·|·number·|·boolean·|·string[]·|·number[]⏎····

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L438-L438


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L449-L449


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L464-L464


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·!process.env.NODE_ENV·||·process.env.NODE_ENV·===·'development'·||·process.env.NODE_ENV·===·'test' with ⏎··········!process.env.NODE_ENV·||⏎··········process.env.NODE_ENV·===·'development'·||⏎··········process.env.NODE_ENV·===·'test',

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L486-L486


🚫 [eslint] <@typescript-eslint/no-unnecessary-type-assertion> reported by reviewdog 🐶
This assertion is unnecessary since it does not change the type of the expression.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L499-L499


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L499-L499


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L510-L510


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

https://github.com/th-ch/youtube-music/blob/dd51844878cf609391e7eba554cc6abeba0ee8b0/src/plugins/slack-now-playing/slack-api-client.ts#L514-L514

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 🐶
Insert ,

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L485-L485


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Error·writing·album·art·to·file:·${fileError·instanceof·Error·?·fileError.message·:·String(fileError)} with ⏎········Error·writing·album·art·to·file:·${fileError·instanceof·Error·?·fileError.message·:·String(fileError)},⏎······

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L490-L490


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L493-L493


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L498-L498


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace config:·SlackNowPlayingConfig with ⏎··config:·SlackNowPlayingConfig,⏎

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L512-L512


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Cannot·check·emoji·existence:·${validationResult.errors.join(',·')} with ⏎········Cannot·check·emoji·existence:·${validationResult.errors.join(',·')},⏎······

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L517-L517


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace response.emoji·&&·typeof·response.emoji·===·'object'·&&·config.emojiName·in·response.emoji with ⏎········response.emoji·&&⏎········typeof·response.emoji·===·'object'·&&⏎········config.emojiName·in·response.emoji⏎······

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L532-L532


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L539-L539


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'Slack·authentication·failed.·Please·check·your·API·token·and·cookie·token.' with ⏎············'Slack·authentication·failed.·Please·check·your·API·token·and·cookie·token.',⏎··········

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L545-L545


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'Slack·API·rate·limit·exceeded.·Please·try·again·later.' with ⏎············'Slack·API·rate·limit·exceeded.·Please·try·again·later.',⏎··········

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L547-L547


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Error·checking·emoji·list:·${errorCode·||·apiError.message} with ⏎············Error·checking·emoji·list:·${errorCode·||·apiError.message},⏎··········

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L549-L549


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace [Slack]·Error·checking·emoji·list:·${apiError·instanceof·Error·?·apiError.message·:·String(apiError)} with ⏎··········[Slack]·Error·checking·emoji·list:·${apiError·instanceof·Error·?·apiError.message·:·String(apiError)},⏎········

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L552-L552


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ``[Slack]·Unexpected·error·in·ensureEmojiDoesNotExist:·${error.message}, with `⏎········`[Slack]·Unexpected·error·in·ensureEmojiDoesNotExist:·${error.message}`,⏎·······`

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L562-L562


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L563-L563


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace stack:·error.stack with ··stack:·error.stack,

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L564-L564


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ······} with ········},⏎······

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L565-L565


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace [Slack]·Unexpected·error·in·ensureEmojiDoesNotExist:·${String(error)} with ⏎········[Slack]·Unexpected·error·in·ensureEmojiDoesNotExist:·${String(error)},⏎······

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L567-L567


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace config:·SlackNowPlayingConfig with ⏎··config:·SlackNowPlayingConfig,⏎

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L578-L578


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Cannot·delete·emoji:·${validationResult.errors.join(',·')} with ⏎········Cannot·delete·emoji:·${validationResult.errors.join(',·')},⏎······

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L583-L583


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L597-L597


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ``Unexpected·error·deleting·emoji:·${apiError.message}, with `⏎············`Unexpected·error·deleting·emoji:·${apiError.message}`,⏎···········`

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L605-L605


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L606-L606


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············stack:·apiError.stack with ··············stack:·apiError.stack,

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L607-L607


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ··········} with ············},⏎··········

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L608-L608


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ``[Slack]·Unexpected·error·in·deleteExistingEmoji:·${error.message}, with `⏎········`[Slack]·Unexpected·error·in·deleteExistingEmoji:·${error.message}`,⏎·······`

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L618-L618


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L619-L619


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········stack:·error.stack with ··········stack:·error.stack,

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L620-L620


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ······} with ········},⏎······

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L621-L621


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace [Slack]·Unexpected·error·in·deleteExistingEmoji:·${String(error)} with ⏎········[Slack]·Unexpected·error·in·deleteExistingEmoji:·${String(error)},⏎······

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L623-L623


⚠️ [eslint] <@typescript-eslint/no-unused-vars> reported by reviewdog 🐶
'error' is defined but never used.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L641-L641


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L641-L641


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace signal with (signal)

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L648-L648


🚫 [eslint] <stylistic/arrow-parens> reported by reviewdog 🐶
Expected parentheses around arrow function argument.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L648-L648


⚠️ [eslint] <@typescript-eslint/no-unused-vars> reported by reviewdog 🐶
'error' is defined but never used.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L674-L674


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L674-L674


🚫 [eslint] <@typescript-eslint/no-unsafe-call> reported by reviewdog 🐶
Unsafe call of a(n) error type typed value.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L687-L687


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Slack·Now·Playing·configuration·validation·failed:·${validationResult.errors.join(',·')} with ⏎··············Slack·Now·Playing·configuration·validation·failed:·${validationResult.errors.join(',·')},⏎············

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L717-L717


🚫 [eslint] <@typescript-eslint/no-unsafe-argument> reported by reviewdog 🐶
Unsafe argument of type any assigned to a parameter of type SongInfo.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L723-L723


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ⏎··········.catch(error with .catch((error)

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L723-L724


🚫 [eslint] <stylistic/arrow-parens> reported by reviewdog 🐶
Expected parentheses around arrow function argument.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L724-L724


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L725-L725


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L726-L726


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L727-L727


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ··············if·(error.message.includes('authentication')·||·error.message.includes('token') with ············if·(⏎··············error.message.includes('authentication')·||⏎··············error.message.includes('token')⏎············

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L728-L728


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················console.error('Slack·authentication·failed.·Please·check·your·API·token·and·cookie·token.'); with ··············console.error(⏎················'Slack·authentication·failed.·Please·check·your·API·token·and·cookie·token.',

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L729-L729


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace } with );

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L730-L730


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L731-L731


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ··else·if·(error.message.includes('rate·limit')·||·error.message.includes('rate_limited') with else·if·(⏎··············error.message.includes('rate·limit')·||⏎··············error.message.includes('rate_limited')⏎············

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L732-L732


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················console.error('Slack·API·rate·limit·exceeded.·Please·try·again·later.'); with ··············console.error(⏎················'Slack·API·rate·limit·exceeded.·Please·try·again·later.',

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L733-L733


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace } with );

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L734-L734


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L735-L735


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L736-L736


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L737-L737


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L738-L738


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L739-L739


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L740-L740


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L741-L741


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L742-L742


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L743-L743


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L748-L748


🚫 [eslint] <@typescript-eslint/no-unsafe-assignment> reported by reviewdog 🐶
Unsafe assignment of an any value.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L788-L788


🚫 [eslint] <@typescript-eslint/no-unsafe-call> reported by reviewdog 🐶
Unsafe call of a(n) any typed value.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L788-L788


🚫 [eslint] <@typescript-eslint/no-unsafe-member-access> reported by reviewdog 🐶
Unsafe member access .getConfig on an any value.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L788-L788


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L799-L799


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Slack·Now·Playing·configuration·validation·failed:·${error·instanceof·Error·?·error.message·:·String(error)} with ⏎············Slack·Now·Playing·configuration·validation·failed:·${error·instanceof·Error·?·error.message·:·String(error)},⏎··········

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L800-L800


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/main.ts#L802-L802


🚫 [eslint] <@typescript-eslint/consistent-type-imports> reported by reviewdog 🐶
Imports "BrowserWindow" are only used as type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/menu.ts#L2-L2


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/menu.ts#L2-L2


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'Invalid·Slack·cookie·token·format·(should·start·with·"xoxd-")' with ⏎······'Invalid·Slack·cookie·token·format·(should·start·with·"xoxd-")',⏎····

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/menu.ts#L37-L37


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'Invalid·emoji·name·format·(should·only·contain·lowercase·letters,·numbers,·hyphens,·and·underscores)' with ⏎······'Invalid·emoji·name·format·(should·only·contain·lowercase·letters,·numbers,·hyphens,·and·underscores)',⏎····

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/menu.ts#L44-L44


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/menu.ts#L49-L49


🚫 [eslint] <@typescript-eslint/await-thenable> reported by reviewdog 🐶
Unexpected await of a non-Promise (non-"Thenable") value.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/menu.ts#L144-L144


🚫 [eslint] <@typescript-eslint/require-await> reported by reviewdog 🐶
Async arrow function 'onMenu' has no 'await' expression.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/menu.ts#L164-L164


🚫 [eslint] <@typescript-eslint/consistent-type-imports> reported by reviewdog 🐶
All imports in the declaration are only used as types. Use import type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L1-L1


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L1-L1


🚫 [eslint] <importPlugin/no-unresolved> reported by reviewdog 🐶
Unable to resolve path to module 'formdata-node'.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L1-L1


🚫 [eslint] <importPlugin/order> reported by reviewdog 🐶
node:https import should occur before import of formdata-node

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L2-L2


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·string·|·number·|·boolean·|·null·|·undefined·|·string[] with ⏎····|·string⏎····|·number⏎····|·boolean⏎····|·null⏎····|·undefined⏎····|·string[]⏎···

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L71-L71


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L100-L100


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L158-L158


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace headers:·Record<string,·string>,·options:·{·disableSSLValidation?:·boolean·}·=·{} with ⏎····headers:·Record<string,·string>,⏎····options:·{·disableSSLValidation?:·boolean·}·=·{},⏎··

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L219-L219


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L221-L221


🚫 [eslint] <@typescript-eslint/ban-ts-comment> reported by reviewdog 🐶
Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L225-L225


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L245-L245


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L247-L247


🚫 [eslint] <@typescript-eslint/no-redundant-type-constituents> reported by reviewdog 🐶
'FormData' is an 'error' type that acts as 'any' and overrides all other types in this union type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L247-L247


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L248-L248


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L257-L257


🚫 [eslint] <prefer-const> reported by reviewdog 🐶
'headers' is never reassigned. Use 'const' instead.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L262-L262


🚫 [eslint] <@typescript-eslint/no-unsafe-assignment> reported by reviewdog 🐶
Unsafe assignment of an error typed value.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L263-L263


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L263-L263


🚫 [eslint] <@typescript-eslint/no-unsafe-assignment> reported by reviewdog 🐶
Unsafe assignment of an error typed value.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L267-L267


🚫 [eslint] <@typescript-eslint/no-unsafe-argument> reported by reviewdog 🐶
Unsafe argument of type error typed assigned to a parameter of type { [s: string]: unknown; } | ArrayLike<unknown>.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L274-L274


🚫 [eslint] <@typescript-eslint/no-base-to-string> reported by reviewdog 🐶
'value' will use Object's default stringification format ('[object Object]') when stringified.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L276-L276


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·!process.env.NODE_ENV·||·process.env.NODE_ENV·===·'development'·||·process.env.NODE_ENV·===·'test' with ⏎··········!process.env.NODE_ENV·||⏎··········process.env.NODE_ENV·===·'development'·||⏎··········process.env.NODE_ENV·===·'test',

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L290-L290


🚫 [eslint] <@typescript-eslint/no-unsafe-assignment> reported by reviewdog 🐶
Unsafe assignment of an any value.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L294-L294


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L304-L304


🚫 [eslint] <@typescript-eslint/no-unnecessary-type-assertion> reported by reviewdog 🐶
This assertion is unnecessary since it does not change the type of the expression.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L314-L314


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L314-L314


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L318-L318


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L322-L322


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L341-L341


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L409-L409


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L429-L429


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L432-L432


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace string,·string·|·number·|·boolean·|·string[]·|·number[] with ⏎······string,⏎······string·|·number·|·boolean·|·string[]·|·number[]⏎····

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L438-L438


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L449-L449


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L464-L464


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·!process.env.NODE_ENV·||·process.env.NODE_ENV·===·'development'·||·process.env.NODE_ENV·===·'test' with ⏎··········!process.env.NODE_ENV·||⏎··········process.env.NODE_ENV·===·'development'·||⏎··········process.env.NODE_ENV·===·'test',

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L486-L486


🚫 [eslint] <@typescript-eslint/no-unnecessary-type-assertion> reported by reviewdog 🐶
This assertion is unnecessary since it does not change the type of the expression.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L499-L499


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L499-L499


🚫 [eslint] <@typescript-eslint/no-explicit-any> reported by reviewdog 🐶
Unexpected any. Specify a different type.

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L510-L510


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

https://github.com/th-ch/youtube-music/blob/71752b943de1e4235a7a365b85bbc40d85d92517/src/plugins/slack-now-playing/slack-api-client.ts#L514-L514

curtisgibby and others added 4 commits January 2, 2026 15:32
- Send token in request body instead of Authorization header
- URL-encode cookie value for proper handling of + and / chars
- Use native Node.js fetch (Chromium's net.fetch forbids Cookie headers)
- Remove unused formdata-node dependency, use native FormData
- Fix TypeScript strict mode issues (any → unknown, proper type guards)
- Sync with upstream pear-devs/pear-desktop

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…tive fetch

- Use session.fromPartition for dedicated Slack API session
- Set URL-encoded cookie via session.cookies.set()
- Use session.fetch with credentials: 'include'
- More consistent with other plugins in the codebase

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@curtisgibby
Copy link
Author

I've finally gotten some free time to rework this plugin and I think it's ready for prime time. Thanks for your patience on this one!

@ArjixWasTaken
Copy link
Member

Thanks for your patience on this one!

I'd like to thank our users for their patience, since the entire project is moving really slowly 😔
Don't be in any hurry :^)

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.

3 participants