Add when it was played for spotify in recent mode (#104)
This commit is contained in:
@@ -8,8 +8,11 @@
|
||||
import axios from "axios"
|
||||
import puppeteer from "puppeteer"
|
||||
import imgb64 from "image-to-base64"
|
||||
import dayjs from 'dayjs';
|
||||
import utc from 'dayjs/plugin/utc.js';
|
||||
dayjs.extend(utc);
|
||||
|
||||
export {fs, os, paths, url, util, processes, axios, puppeteer, imgb64}
|
||||
export {fs, os, paths, url, util, processes, axios, puppeteer, imgb64, dayjs};
|
||||
|
||||
/** Returns module __dirname */
|
||||
export function __module(module) {
|
||||
|
||||
@@ -181,6 +181,7 @@ Register your API key to finish setup.
|
||||
plugin_music_mode: recent # Set plugin mode
|
||||
plugin_music_limit: 4 # Limit to 4 entries
|
||||
plugin_music_token: "${{ secrets.SPOTIFY_CLIENT_ID }}, ${{ secrets.SPOTIFY_CLIENT_SECRET }}, ${{ secrets.SPOTIFY_REFRESH_TOKEN }}"
|
||||
plugin_music_played_at: yes # Only works with spotify.
|
||||
```
|
||||
|
||||
```yaml
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
embed:/^\b$/,
|
||||
},
|
||||
}
|
||||
|
||||
//Supported modes
|
||||
const modes = {
|
||||
playlist:"Suggested tracks",
|
||||
@@ -36,7 +35,7 @@
|
||||
let tracks = null
|
||||
|
||||
//Load inputs
|
||||
let {provider, mode, playlist, limit, user} = imports.metadata.plugins.music.inputs({data, account, q})
|
||||
let {provider, mode, playlist, limit, user, played_at} = imports.metadata.plugins.music.inputs({data, account, q})
|
||||
//Auto-guess parameters
|
||||
if ((playlist)&&(!mode))
|
||||
mode = "playlist"
|
||||
@@ -144,10 +143,11 @@
|
||||
"Accept":"application/json",
|
||||
"Content-Type":"application/json",
|
||||
"Authorization":`Bearer ${access}`}
|
||||
})).data.items.map(({track}) => ({
|
||||
})).data.items.map(({track, played_at}) => ({
|
||||
name:track.name,
|
||||
artist:track.artists[0].name,
|
||||
artwork:track.album.images[0].url,
|
||||
played_at: played_at ? imports.dayjs(played_at).format('[played at] HH:MM on DD/MM/YYYY') : ''
|
||||
}))
|
||||
}
|
||||
//Handle errors
|
||||
|
||||
@@ -55,6 +55,10 @@ inputs:
|
||||
default: 4
|
||||
min: 1
|
||||
max: 100
|
||||
plugin_music_played_at:
|
||||
description: Display when the track was played
|
||||
type: boolean
|
||||
default: no
|
||||
|
||||
# Username on music provider service
|
||||
plugin_music_user:
|
||||
|
||||
@@ -20,12 +20,15 @@
|
||||
<% } else { %>
|
||||
<% if (plugins.music.tracks.length) { %>
|
||||
<div class="tracklist">
|
||||
<% for (const {name = "", artist = "", artwork = ""} of plugins.music.tracks) { %>
|
||||
<% for (const {name = "", artist = "", artwork = "", played_at = ""} of plugins.music.tracks) { %>
|
||||
<div class="track">
|
||||
<img src="data:image/png;base64,<%= artwork %>" width="32" height="32" alt=""/>
|
||||
<img src="data:image/png;base64,<%= artwork %>" width="<%= !!played_at.length ? 48 : 32 %>" height="<%= !!played_at.length ? 48 : 32 %>" alt=""/>
|
||||
<div class="infos">
|
||||
<div class="name"><%= name %></div>
|
||||
<div class="name"><b><%= name %><b></div>
|
||||
<div class="artist"><%= artist %></div>
|
||||
<% if (played_at.length) { %>
|
||||
<div class="played_at"><%= played_at %></div>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
@@ -40,4 +43,4 @@
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
<% } %>
|
||||
<% } %>
|
||||
|
||||
Reference in New Issue
Block a user