Diederik

menu

Lijstjes

In de kerstvakantie ben ik bezig geweest om de api's goed te koppelen en de behorende 'lijstjes' wat vorm te geven. Zo heb ik nu de basis klaar staan voor mijn musiclog, scrapbook en bookmarks.

Musiclog

Voor mijn musiclog heb ik geen regels. Ik denk dat het daarom ook goed (bij mij) werkt. Ik doe het nu bijna anderhalf jaar en het is voor mij de ideale manier om de muziek waar ik naar luister bij te houden. Als ik een track hoor die mij aanspreekt sleep ik het in de playlist. Zo simpel is het. Ik heb voor elke maand een andere playlist. In een playlist staan veel nieuwe tracks, maar ook oudere nummers die ik heb gehoord op de radio of in een podcast. Alles mag! Als ik terugkijk/luister naar een lijst dan weet ik vaak nog op welk moment ik het nummer luisterde. Er staan ook veel nummers tussen die ik er later, als ik ze terugluister, ook wel weer uithaal. Zo hou ik de lijsten overzichtelijk en leuk om terug te luisteren.

Voor elke maand heb ik een aparte playlist. Deze heb ik gekoppeld met behulp van de spotify-web-api-node en schrijf ik weg in .json bestanden. De taken voer ik 'direct' uit in Eleventy. Het ziet er als volgt uit:

const fs = require('fs');
const spotifyWebApi = require('spotify-web-api-node');
module.exports = () => {

require('dotenv').config();

const paths = {
spotify: {
dest: '/../dev/spotify/',
playlists: [
['[PLAYLIST-CODE]', '[NAAM].json'],
// etc
]
}
};

const spotify = new spotifyWebApi({
clientId: process.env.SPOTIFY_CLIENTID,
clientSecret: process.env.SPOTIFY_CLIENTSECRET
});

spotify.clientCredentialsGrant()
.then(function(data) {
spotify.setAccessToken(data.body['access_token']);

paths.spotify.playlists.forEach(function(playlist) {
spotify.getPlaylistTracks(playlist[0])
.then(function(data) {
var playlistTracks = data.body;

fs.writeFile(__dirname + paths.spotify.dest + playlist[1], JSON.stringify(playlistTracks), err => {
if(err) {
console.log(err);
} else {
console.log('Updated spotify playlist: ' + playlist[1] + ' .json');
}
});

}, function(err) {
console.log('Something went wrong!', err);
});
});
});
}

Scrapbook

Ik gebruik al jarenlang Tumblr als een soort inspiratiebron. Mijn huidige tumblr account (ik ben een keer geswitched ) bevat zelfs content/afbeeldingen vanaf 2009. Met behulp van de Tumblr api kan ik mijn site 'bijna' helemaal leeg trekken ­čśŐ. De thumbnails toon ik op een heeeeeele lange pagina. Het begon als een soort van testcase om de techniek van "lazy loading" te testen, maar het uiteindelijke resultaat was ook erg leuk om doorheen te scrollen. Zo leuk dat ik er ook een paar leuke reacties over kreeg. In Tumblr is de wachtrij tot aan z'n nek toe gevuld. Er worden dagelijks (op willekeurige momenten) afbeeldingen toegevoegd waardoor het voor mezelf ook leuk is om te zien wat er voorbij komt. Wanneer er een nieuwe post worden geplaatst, krijg ik via IFTTT een melding met de bijbehorende afbeelding (op mijn iWatch). Ook wordt er een webhook afgevuurd die er voor zorgt dat mijn website opnieuw wordt gebuild.

Apple Watch

Bookmarks

Ik gebruik pinboard voor het verzamelen van mijn bookmarks. Ook deze bookmarks zijn via een api gemakkelijk binnen te halen. Momenteel ben ik nog een beetje naar de juiste vorm aan het zoeken. Momenteel geef ik de links die via Instapaper worden geïmporteerd een andere opmaak. Dit zijn "vaak" artikelen die ik bewaar om later terug te lezen.

const fs = require('fs');
const Pinboard = require('pinboard-bookmarks');

module.exports = () => {

require('dotenv').config();

const pinboard = new Pinboard(process.env.PINBOARD_API);

pinboard.bookmarks({ results: 1000 })
.then((bookmarks) => {

fs.writeFile(__dirname + '/../dev/pinboard.json', JSON.stringify(bookmarks), err => {
if(err) {
console.log(err);
} else {
console.log("Updated pinboard.json");
}
});

})
.catch((error) => {
console.log('Something went wrong!', error);
});
}