teddit-reddit-frontend-alte.../cacheControl.js

67 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

module.exports.removeCacheFiles = function() {
const fs = require('fs')
const config = require('./config')
const pics = './static/pics'
const flairs = './static/pics/flairs'
const icons = './static/pics/icons'
const thumbs = './static/pics/thumbs'
const vids = './static/vids'
let util = require('util')
let spawn = require('child_process').spawn
let usage
const limit = config.cache_max_size
function getUsage() {
return new Promise((resolve, reject) => {
let size = spawn('du', ['-sBM', './static/'])
size.stdout.on('data', function (data) {
data = data.toString()
let lines = data.split('\n')
if(lines) {
for(let i = lines.length; i >= 0; i--) {
if(lines[i] && lines[i].includes('./static/')) {
usage = parseInt(lines[i])
}
}
}
resolve(usage)
})
})
}
function deleteFiles() {
return new Promise(async (resolve, reject) => {
usage = await getUsage()
if(usage > limit) {
const { exec } = require('child_process')
exec(`cd ${pics} && ls -1btr -Iflairs -Iicons -Ithumbs -I.gitignore | head -50 | xargs rm -f --`)
exec(`cd ${flairs} && ls -1btr -I.gitignore | head -6 | xargs rm -f --`)
exec(`cd ${icons} && ls -1btr -I.gitignore | head -6 | xargs rm -f --`)
exec(`cd ${thumbs} && ls -1btr -I.gitignore | head -80 | xargs rm -f --`)
exec(`cd ${vids} && ls -1btr -I.gitignore | head -2 | xargs rm -f --`)
}
resolve(1)
})
}
async function main() {
usage = await getUsage()
if(usage > limit) {
console.log('Started removeCacheFiles()')
while(usage > limit) {
await deleteFiles()
}
}
}
if(config.cache_control) {
main()
const interval_ms = config.cache_control_interval
setInterval(() => {
main()
}, interval_ms)
}
}