adding blacklist feature
This commit is contained in:
		
							parent
							
								
									1605f63691
								
							
						
					
					
						commit
						b51a38325f
					
				| 
						 | 
					@ -24,7 +24,12 @@ exports.save = async (ws, req) => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (await redis.get(id)) {
 | 
					    if (await redis.get(id)) {
 | 
				
			||||||
        ws.send('DATA - Someone is already downloading this video...')
 | 
					        ws.send('DATA - Someone is already downloading this video...')
 | 
				
			||||||
        ws.close()
 | 
					        return ws.close()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (await redis.get(`blacklist:${id}`)) {
 | 
				
			||||||
 | 
					        ws.send('DATA - You can\'t download that. The video is blacklisted.')
 | 
				
			||||||
 | 
					        return ws.close()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const already = await prisma.videos.findFirst({
 | 
					    const already = await prisma.videos.findFirst({
 | 
				
			||||||
| 
						 | 
					@ -138,6 +143,11 @@ exports.playlist = async (ws, req) => {
 | 
				
			||||||
                continue
 | 
					                continue
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (await redis.get(`blacklist:${id}`)) {
 | 
				
			||||||
 | 
					                ws.send(`DATA - ${video.title} is blacklisted from downloading, skipping`)
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            ws.send(`INFO - Downloading ${video.title}<br><br>`)
 | 
					            ws.send(`INFO - Downloading ${video.title}<br><br>`)
 | 
				
			||||||
            await redis.set(id, 'downloading')
 | 
					            await redis.set(id, 'downloading')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -220,6 +230,11 @@ exports.channel = async (ws, req) => {
 | 
				
			||||||
                continue
 | 
					                continue
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (await redis.get(`blacklist:${id}`)) {
 | 
				
			||||||
 | 
					                ws.send(`DATA - ${video.title} is blacklisted from downloading, skipping`)
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
            ws.send(`INFO - Downloading ${video.title}<br><br>`)
 | 
					            ws.send(`INFO - Downloading ${video.title}<br><br>`)
 | 
				
			||||||
            await redis.set(id, 'downloading')
 | 
					            await redis.set(id, 'downloading')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								index.js
								
								
								
								
							
							
						
						
									
										2
									
								
								index.js
								
								
								
								
							| 
						 | 
					@ -4,7 +4,6 @@ const express = require('express')
 | 
				
			||||||
const cors = require('cors')
 | 
					const cors = require('cors')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const logger = require('./utils/logger.js')
 | 
					const logger = require('./utils/logger.js')
 | 
				
			||||||
const redis = require('./utils/redis.js')
 | 
					 | 
				
			||||||
const auto = require('./utils/auto.js')
 | 
					const auto = require('./utils/auto.js')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const latestController = require('./controller/latest.js')
 | 
					const latestController = require('./controller/latest.js')
 | 
				
			||||||
| 
						 | 
					@ -35,7 +34,6 @@ app.ws('/saveplaylist', websocketController.playlist)
 | 
				
			||||||
app.ws('/savechannel', websocketController.channel)
 | 
					app.ws('/savechannel', websocketController.channel)
 | 
				
			||||||
app.get('/autodownload', websocketController.addAutodownload)
 | 
					app.get('/autodownload', websocketController.addAutodownload)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
redis.flushdb()
 | 
					 | 
				
			||||||
auto.handleCheck()
 | 
					auto.handleCheck()
 | 
				
			||||||
// setInterval(() => {
 | 
					// setInterval(() => {
 | 
				
			||||||
//   auto.handleCheck()
 | 
					//   auto.handleCheck()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,6 +47,11 @@ async function handleDownload(channelId) {
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (await redis.get(`blacklist:${id}`)) {
 | 
				
			||||||
 | 
					            logger.info({ message: `${video.title} is blacklisted from downloading, ${id}` })
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (video.duration > 5400) {
 | 
					        if (video.duration > 5400) {
 | 
				
			||||||
            logger.info({ message: `${video.title} is longer than 1h30m, ${id}` })
 | 
					            logger.info({ message: `${video.title} is longer than 1h30m, ${id}` })
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,8 +7,13 @@ const redis = new Redis({
 | 
				
			||||||
    password: process.env.REDIS_PASS,
 | 
					    password: process.env.REDIS_PASS,
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
redis.on('ready', function () {
 | 
					redis.on('ready', async function () {
 | 
				
			||||||
    logger.info({ message: 'Connected to redis!' })
 | 
					    logger.info({ message: 'Connected to redis!' })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const keys = await redis.keys('*')
 | 
				
			||||||
 | 
					    const filteredKeys = keys.filter(key => !key.startsWith('blacklist:'))
 | 
				
			||||||
 | 
					    await redis.del(filteredKeys)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports = redis
 | 
					module.exports = redis
 | 
				
			||||||
		Loading…
	
		Reference in New Issue