Fix auto mute scheduler

This commit is contained in:
Chocobozzz 2020-05-07 16:27:42 +02:00
parent 0c32675427
commit 0b93369175
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
2 changed files with 18 additions and 11 deletions

View File

@ -5,7 +5,8 @@ const store = {
checkIntervalSeconds: null, checkIntervalSeconds: null,
alreadyAdded: new Set(), alreadyAdded: new Set(),
alreadyRemoved: new Set(), alreadyRemoved: new Set(),
serverAccountId: null serverAccountId: null,
timeout: null
} }
async function register ({ async function register ({
@ -41,8 +42,6 @@ async function register ({
load(peertubeHelpers, settings['blocklist-urls'], settings['check-seconds-interval']) load(peertubeHelpers, settings['blocklist-urls'], settings['check-seconds-interval'])
.catch(err => logger.error('Cannot load auto mute plugin.', { err })) .catch(err => logger.error('Cannot load auto mute plugin.', { err }))
}) })
runCheckForever(peertubeHelpers)
} }
async function unregister () { async function unregister () {
@ -59,6 +58,8 @@ module.exports = {
async function load (peertubeHelpers, blocklistUrls, checkIntervalSeconds) { async function load (peertubeHelpers, blocklistUrls, checkIntervalSeconds) {
const { logger } = peertubeHelpers const { logger } = peertubeHelpers
if (store.timeout) clearTimeout(store.timeout)
store.checkIntervalSeconds = checkIntervalSeconds store.checkIntervalSeconds = checkIntervalSeconds
store.urls = (blocklistUrls || '').split('\n') store.urls = (blocklistUrls || '').split('\n')
@ -70,12 +71,14 @@ async function load (peertubeHelpers, blocklistUrls, checkIntervalSeconds) {
} }
logger.info('Loaded %d blocklist URLs for auto mute plugin.', store.urls.length, { urls: store.urls }) logger.info('Loaded %d blocklist URLs for auto mute plugin.', store.urls.length, { urls: store.urls })
runLater(peertubeHelpers)
} }
async function runCheckForever (peertubeHelpers) { async function runCheck (peertubeHelpers) {
const { logger } = peertubeHelpers const { logger } = peertubeHelpers
if (store.urls.length === 0) return runLater() if (store.urls.length === 0) return runLater(peertubeHelpers)
for (const url of store.urls) { for (const url of store.urls) {
try { try {
@ -96,11 +99,15 @@ async function runCheckForever (peertubeHelpers) {
} }
} }
runLater() runLater(peertubeHelpers)
} }
function runLater () { function runLater (peertubeHelpers) {
setTimeout(runCheckForever, store.checkIntervalSeconds * 1000) const { logger } = peertubeHelpers
logger.debug('Will run auto mute check in %d seconds.', store.checkIntervalSeconds)
store.timeout = setTimeout(() => runCheck(peertubeHelpers), store.checkIntervalSeconds * 1000)
} }
function get (url) { function get (url) {
@ -144,9 +151,9 @@ function removeEntity (peertubeHelpers, value) {
// Account // Account
if (value.includes('@')) { if (value.includes('@')) {
return moderation.blockAccount({ byAccountId: store.serverAccountId, handleToUnblock: value }) return moderation.unblockAccount({ byAccountId: store.serverAccountId, handleToUnblock: value })
} }
// Server // Server
return moderation.blockAccount({ byAccountId: store.serverAccountId, hostToUnblock: value }) return moderation.unblockServer({ byAccountId: store.serverAccountId, hostToUnblock: value })
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "peertube-plugin-auto-mute", "name": "peertube-plugin-auto-mute",
"version": "0.0.1", "version": "0.0.2",
"description": "Auto mute plugin for PeerTube", "description": "Auto mute plugin for PeerTube",
"engine": { "engine": {
"peertube": ">=2.2.0" "peertube": ">=2.2.0"