initial commit

This commit is contained in:
jane 2021-12-01 21:36:11 -05:00
commit 05112e3d6e
10 changed files with 359 additions and 0 deletions

44
lib/dataStore.js Normal file
View file

@ -0,0 +1,44 @@
import 'fs'
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from 'fs'
export const mkSubDir = (username, subdir) => {
if (!existsSync(`./data/${username}`)) {
mkdirSync(`./data/${username}`)
}
if (!existsSync(`./data/${username}/${subdir}`)) {
mkdirSync(`./data/${username}/${subdir}`)
}
}
export const hasData = (username, dataFile) => {
return existsSync(`./data/${username}/${dataFile}.json`)
}
export const saveData = (username, dataFile, object) => {
if (!existsSync('./data')) {
mkdirSync('./data')
}
if (!existsSync(`./data/${username}`)) {
mkdirSync(`./data/${username}`)
}
// console.log(dataFile, object, JSON.stringify(object))
writeFileSync(`./data/${username}/${dataFile}.json`, JSON.stringify(object))
}
export const loadData = (username, dataFile) => {
let data = undefined;
if (existsSync(`./data/${username}/${dataFile}.json`)) {
data = JSON.parse(readFileSync(`./data/${username}/${dataFile}.json`))
}
return data;
}
export const loadAllData = (username, subdir) => {
let files = readdirSync(`./data/${username}/${subdir}`)
let data = []
for (let file of files) {
let parsed = JSON.parse(readFileSync(`./data/${username}/${subdir}/${file}`))
data.push(parsed)
}
return data
}

15
lib/lastfm.js Normal file
View file

@ -0,0 +1,15 @@
import fetch from 'node-fetch'
const API_URL = "http://ws.audioscrobbler.com/2.0/"
export const callApi = async (method, params = {}) => {
let url = `${API_URL}?method=${method}&api_key=${process.env.API_KEY}&format=json`
if (params != undefined) {
for (let [key, value] of Object.entries(params)) {
url += `&${key}=${value}`
}
}
let result = await fetch(url)
return result.json();
}