fix: apply fix from eslint

This commit is contained in:
JellyBrick
2024-02-18 11:58:26 +09:00
parent 9f5651a8ba
commit 4657aeca45
12 changed files with 67 additions and 51 deletions

View File

@ -1,18 +1,37 @@
import { t } from '@/i18n';
import { createPlugin } from '@/utils';
export default createPlugin({
export default createPlugin<
unknown,
unknown,
{
observer?: MutationObserver;
waitForElem(selector: string): Promise<HTMLElement>;
start(): void;
stop(): void;
}
>({
name: () => t('plugins.skip-disliked-songs.name'),
description: () => t('plugins.skip-disliked-songs.description'),
restartNeeded: false,
renderer: {
observer: null as MutationObserver | null,
waitForElem(selector: string) {
return new Promise<HTMLElement>((resolve) => {
const interval = setInterval(() => {
const elem = document.querySelector<HTMLElement>(selector);
if (!elem) return;
clearInterval(interval);
resolve(elem);
});
});
},
start() {
this.waitForElem('#like-button-renderer').then((likeBtn) => {
this.observer = new MutationObserver(() => {
if (likeBtn?.getAttribute('like-status') == 'DISLIKE') {
document
.querySelector('tp-yt-paper-icon-button.next-button')
.querySelector<HTMLButtonElement>('tp-yt-paper-icon-button.next-button')
?.click();
}
});
@ -26,16 +45,5 @@ export default createPlugin({
stop() {
this.observer?.disconnect();
},
waitForElem(selector) {
return new Promise((resolve) => {
const interval = setInterval(() => {
const elem = document.querySelector(selector);
if (!elem) return;
clearInterval(interval);
resolve(elem);
});
});
},
},
});
});