nodelink / src /sources /local.js
flameface's picture
Upload 25 files
b58c6cb verified
import fs from 'node:fs'
import { debugLog, encodeTrack } from '../utils.js'
function loadFrom(path) {
return new Promise((resolve) => {
debugLog('loadtracks', 4, { type: 1, loadType: 'track', sourceName: 'local', query: path })
fs.open(path, (err) => {
if (err) {
debugLog('loadtracks', 4, { type: 2, loadType: 'error', sourceName: 'local', query: path, message: 'Failed to retrieve stream from source. (File not found or not accessible)' })
return resolve({
loadType: 'error',
data: {
message: 'Failed to retrieve stream from source. (File not found or not accessible)',
severity: 'common',
cause: 'No permission to access file or doesn\'t exist'
}
})
}
const track = {
identifier: 'unknown',
isSeekable: false,
author: 'unknown',
length: -1,
isStream: false,
position: 0,
title: 'unknown',
uri: path,
artworkUrl: null,
isrc: null,
sourceName: 'local'
}
debugLog('loadtracks', 4, { type: 2, loadType: 'track', sourceName: 'local', track, query: path })
resolve({
loadType: 'track',
data: {
encoded: encodeTrack(track),
info: track,
pluginInfo: {}
}
})
})
})
}
export default {
loadFrom
}