55 lines
1.9 KiB
JavaScript
55 lines
1.9 KiB
JavaScript
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)
|
|
}
|
|
}
|
|
}
|
|
} |