const addHupTask = require("../huphandler").addHupTask const fs = require("fs") const sources = [] fs.access("./.sourceslist", (err) => { if (!err) { fs.readFile("./.sourceslist", (err, data) => { if (err) { console.log(Err) } else { sources.push(...JSON.parse(data.toString()).filter(({lastSeen})=>!isNaN(lastSeen)&&Date.now()-lastSeen<3*24*3600*1000)) fs.unlink("./.sourceslist", (err)=>{ if(err){ console.log(err) } }) } }) } }) addHupTask("sourceshandler", () => new Promise((res, rej) => { fs.writeFile("./.sourceslist", JSON.stringify(sources), (err) => { if (err) { console.log(err) } res() }) })) module.exports = { addSource: (source, address) => { const src = sources.find((src) => src.address == address) if (src&&!src.sources.find((rrc)=>rrc.includes(source.split("?")[0]))) { src.sources.push(source) } }, getSources: (address) => { const src = sources.find((source) => source.address == address) if (src) { src.lastSeen = Date.now() return src.sources } else { sources.push({ sources: [], address, lastSeen: Date.now() }) return []; } }, getAddresses: () => sources.map(({ address, lastSeen }) => ({ address, lastSeen })), removeSource: (source, address) => { const src = sources.find((src) => src.address == address) if (src) { const srcindex = src.sources.findIndex((rrc)=>rrc.replace(/%2f/g, "/").includes(source)) //console.log(src.sources.map((src)=>src.replace(/%2f/g, "/")), source, srcindex) if (srcindex>=0) { src.sources.splice(srcindex, 1) } } } }