Fix auto mute scheduler
This commit is contained in:
parent
0c32675427
commit
0b93369175
@ -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 })
|
||||||
}
|
}
|
||||||
|
@ -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"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user