fix lint errors in home.vue / index.listenbrainz.vue
This commit is contained in:
parent
75fc3de405
commit
d2a4d6d9e0
5 changed files with 101 additions and 71 deletions
36
locales/index.d.ts
vendored
36
locales/index.d.ts
vendored
|
@ -5353,6 +5353,10 @@ export interface Locale extends ILocale {
|
|||
* オンにすると、このお知らせは通知されず、既読にする必要もなくなります。
|
||||
*/
|
||||
"silenceDescription": string;
|
||||
/**
|
||||
* New
|
||||
*/
|
||||
"new": string;
|
||||
};
|
||||
"_initialAccountSetting": {
|
||||
/**
|
||||
|
@ -8442,6 +8446,10 @@ export interface Locale extends ILocale {
|
|||
* アプリケーションにアクセス許可を与えるには、ログインが必要です。
|
||||
*/
|
||||
"pleaseLogin": string;
|
||||
/**
|
||||
* Allowed
|
||||
*/
|
||||
"allowed": string;
|
||||
};
|
||||
"_antennaSources": {
|
||||
/**
|
||||
|
@ -10603,6 +10611,30 @@ export interface Locale extends ILocale {
|
|||
* Mutuals
|
||||
*/
|
||||
"mutuals": string;
|
||||
/**
|
||||
* Private account
|
||||
*/
|
||||
"isLocked": string;
|
||||
/**
|
||||
* Administrator
|
||||
*/
|
||||
"isAdmin": string;
|
||||
/**
|
||||
* Bot user
|
||||
*/
|
||||
"isBot": string;
|
||||
/**
|
||||
* Open
|
||||
*/
|
||||
"open": string;
|
||||
/**
|
||||
* Destination address
|
||||
*/
|
||||
"emailDestination": string;
|
||||
/**
|
||||
* Date
|
||||
*/
|
||||
"date": string;
|
||||
/**
|
||||
* Quoted.
|
||||
*/
|
||||
|
@ -10964,6 +10996,10 @@ export interface Locale extends ILocale {
|
|||
* Blocking you
|
||||
*/
|
||||
"blockingYou": string;
|
||||
/**
|
||||
* Show warning when opening external URLs
|
||||
*/
|
||||
"warnExternalUrl": string;
|
||||
"_mfm": {
|
||||
/**
|
||||
* This is not a widespread feature, it may not display properly on most other fedi software, including other Misskey forks
|
||||
|
|
|
@ -300,7 +300,7 @@ export const packedUserDetailedNotMeOnlySchema = {
|
|||
nullable: true, optional: false,
|
||||
example: '2018-03-12',
|
||||
},
|
||||
ListenBrainz: {
|
||||
listenbrainz: {
|
||||
type: 'string',
|
||||
nullable: true,
|
||||
optional: false,
|
||||
|
|
|
@ -215,9 +215,9 @@ import { getStaticImageUrl } from '@/scripts/media-proxy.js';
|
|||
import { infoImageUrl } from '@/instance.js';
|
||||
|
||||
const MkNote = defineAsyncComponent(() =>
|
||||
(defaultStore.state.noteDesign === 'misskey') ? import('@/components/MkNote.vue') :
|
||||
(defaultStore.state.noteDesign === 'sharkey') ? import('@/components/SkNote.vue') :
|
||||
null
|
||||
defaultStore.state.noteDesign === 'sharkey'
|
||||
? import('@/components/SkNote.vue')
|
||||
: import('@/components/MkNote.vue'),
|
||||
);
|
||||
|
||||
function calcAge(birthdate: string): number {
|
||||
|
@ -237,7 +237,7 @@ function calcAge(birthdate: string): number {
|
|||
|
||||
const XFiles = defineAsyncComponent(() => import('./index.files.vue'));
|
||||
const XActivity = defineAsyncComponent(() => import('./index.activity.vue'));
|
||||
const XListenBrainz = defineAsyncComponent(() => import("./index.listenbrainz.vue"));
|
||||
const XListenBrainz = defineAsyncComponent(() => import('./index.listenbrainz.vue'));
|
||||
//const XTimeline = defineAsyncComponent(() => import('./index.timeline.vue'));
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
|
@ -269,7 +269,7 @@ if (props.user.listenbrainz) {
|
|||
const response = await fetch(`https://api.listenbrainz.org/1/user/${props.user.listenbrainz}/playing-now`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
});
|
||||
const data = await response.json();
|
||||
|
@ -286,11 +286,11 @@ const background = computed(() => {
|
|||
if (props.user.backgroundUrl == null) return {};
|
||||
if (defaultStore.state.disableShowingAnimatedImages) {
|
||||
return {
|
||||
'--backgroundImageStatic': `url('${getStaticImageUrl(props.user.backgroundUrl)}')`
|
||||
'--backgroundImageStatic': `url('${getStaticImageUrl(props.user.backgroundUrl)}')`,
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
'--backgroundImageStatic': `url('${props.user.backgroundUrl}')`
|
||||
'--backgroundImageStatic': `url('${props.user.backgroundUrl}')`,
|
||||
};
|
||||
}
|
||||
});
|
||||
|
@ -303,7 +303,7 @@ const pagination = {
|
|||
endpoint: 'users/featured-notes' as const,
|
||||
limit: 10,
|
||||
params: computed(() => ({
|
||||
userId: props.user.id
|
||||
userId: props.user.id,
|
||||
})),
|
||||
};
|
||||
|
||||
|
|
|
@ -4,42 +4,39 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
-->
|
||||
|
||||
<template>
|
||||
<MkContainer :foldable="true" :expanded="!collapsed">
|
||||
<template #header
|
||||
><i
|
||||
class="ph-headphones ph-bold ph-lg"
|
||||
style="margin-right: 0.5em"
|
||||
></i
|
||||
>Music</template
|
||||
>
|
||||
<MkContainer :foldable="true" :expanded="!collapsed">
|
||||
<template #header>
|
||||
<i
|
||||
class="ph-headphones ph-bold ph-lg"
|
||||
style="margin-right: 0.5em"
|
||||
></i>Music
|
||||
</template>
|
||||
|
||||
<div style="padding: 8px">
|
||||
<div class="flex">
|
||||
<a :href="listenbrainz.musicbrainzurl">
|
||||
<img class="image" :src="listenbrainz.img" :alt="listenbrainz.title" />
|
||||
<div class="flex flex-col items-start">
|
||||
<p class="text-sm font-bold">Now Playing: {{ listenbrainz.title }}</p>
|
||||
<p class="text-xs font-medium">{{ listenbrainz.artist }}</p>
|
||||
</div>
|
||||
</a>
|
||||
<a :href="listenbrainz.listenbrainzurl">
|
||||
<div class="playicon">
|
||||
<i class="ph-play ph-bold ph-lg"></i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div style="padding: 8px">
|
||||
<div class="flex">
|
||||
<a :href="listenbrainz.musicbrainzurl">
|
||||
<img class="image" :src="listenbrainz.img" :alt="listenbrainz.title"/>
|
||||
<div class="flex flex-col items-start">
|
||||
<p class="text-sm font-bold">Now Playing: {{ listenbrainz.title }}</p>
|
||||
<p class="text-xs font-medium">{{ listenbrainz.artist }}</p>
|
||||
</div>
|
||||
</a>
|
||||
<a :href="listenbrainz.listenbrainzurl">
|
||||
<div class="playicon">
|
||||
<i class="ph-play ph-bold ph-lg"></i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</MkContainer>
|
||||
</div>
|
||||
</MkContainer>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
/* eslint-disable no-mixed-spaces-and-tabs */
|
||||
import {} from "vue";
|
||||
import * as misskey from "misskey-js";
|
||||
import MkContainer from "@/components/MkContainer.vue";
|
||||
import * as misskey from 'misskey-js';
|
||||
import MkContainer from '@/components/MkContainer.vue';
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
user: misskey.entities.User;
|
||||
user: misskey.entities.UserDetailed;
|
||||
collapsed?: boolean;
|
||||
}>(), {
|
||||
collapsed: false,
|
||||
|
@ -51,12 +48,12 @@ if (props.user.listenbrainz) {
|
|||
const response = await fetch(`https://api.listenbrainz.org/1/metadata/lookup/?artist_name=${artist}&recording_name=${title}`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
});
|
||||
const data = await response.json();
|
||||
if (!data.recording_name) {
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
const titler: string = data.recording_name;
|
||||
const artistr: string = data.artist_credit_name;
|
||||
|
@ -66,35 +63,33 @@ if (props.user.listenbrainz) {
|
|||
return [titler, artistr, img, musicbrainzurl, listenbrainzurl];
|
||||
};
|
||||
const response = await fetch(`https://api.listenbrainz.org/1/user/${props.user.listenbrainz}/playing-now`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
});
|
||||
const data = await response.json();
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
});
|
||||
const data = await response.json();
|
||||
if (data.payload.listens && data.payload.listens.length !== 0) {
|
||||
const title: string = data.payload.listens[0].track_metadata.track_name;
|
||||
const artist: string = data.payload.listens[0].track_metadata.artist_name;
|
||||
const lastlisten: string = data.payload.listens[0].playing_now;
|
||||
const img: string = 'https://coverartarchive.org/img/big_logo.svg';
|
||||
await getLMData(title, artist).then((data) => {
|
||||
if (!data) {
|
||||
listenbrainz.title = title;
|
||||
listenbrainz.img = img;
|
||||
listenbrainz.artist = artist;
|
||||
listenbrainz.lastlisten = lastlisten;
|
||||
return;
|
||||
} else {
|
||||
listenbrainz.title = data[0];
|
||||
listenbrainz.img = data[2];
|
||||
listenbrainz.artist = data[1];
|
||||
listenbrainz.lastlisten = lastlisten;
|
||||
listenbrainz.musicbrainzurl = data[3];
|
||||
listenbrainz.listenbrainzurl = data[4];
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
const title: string = data.payload.listens[0].track_metadata.track_name;
|
||||
const artist: string = data.payload.listens[0].track_metadata.artist_name;
|
||||
const lastlisten: string = data.payload.listens[0].playing_now;
|
||||
const img = 'https://coverartarchive.org/img/big_logo.svg';
|
||||
await getLMData(title, artist).then((lmData) => {
|
||||
if (!lmData) {
|
||||
listenbrainz.title = title;
|
||||
listenbrainz.img = img;
|
||||
listenbrainz.artist = artist;
|
||||
listenbrainz.lastlisten = lastlisten;
|
||||
} else {
|
||||
listenbrainz.title = lmData[0];
|
||||
listenbrainz.img = lmData[2];
|
||||
listenbrainz.artist = lmData[1];
|
||||
listenbrainz.lastlisten = lastlisten;
|
||||
listenbrainz.musicbrainzurl = lmData[3];
|
||||
listenbrainz.listenbrainzurl = lmData[4];
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
@ -121,8 +116,7 @@ if (props.user.listenbrainz) {
|
|||
}
|
||||
.text-sm {
|
||||
font-size: 0.875rem;
|
||||
margin: 0;
|
||||
margin-bottom: 0.3rem;
|
||||
margin: 0 0 0.3rem;
|
||||
}
|
||||
.font-bold {
|
||||
font-weight: 700;
|
||||
|
|
|
@ -3939,7 +3939,7 @@ export type components = {
|
|||
/** @example 2018-03-12 */
|
||||
birthday: string | null;
|
||||
/** @example Steve */
|
||||
ListenBrainz: string | null;
|
||||
listenbrainz: string | null;
|
||||
/** @example ja-JP */
|
||||
lang: string | null;
|
||||
fields: {
|
||||
|
|
Loading…
Reference in a new issue