Add when it was played for spotify in recent mode (#104)

This commit is contained in:
Milo
2021-02-05 20:23:08 +00:00
committed by GitHub
parent 5eaf603357
commit a7f9f71566
7 changed files with 28 additions and 11 deletions

View File

@@ -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) {

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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>
<% } %>
<% } %>