Finishing the refactoring of Optout filters

This commit is contained in:
Vitor Pamplona
2023-12-22 14:07:37 -05:00
parent 2a65944eeb
commit 159228972c
4 changed files with 5 additions and 14 deletions
@@ -1,9 +0,0 @@
package com.vitorpamplona.amethyst
object OptOutFromFilters {
var filterSpamFromStrangers: Boolean = true
fun start(filterSpam: Boolean) {
filterSpamFromStrangers = filterSpam
}
}
@@ -64,7 +64,7 @@ class ServiceManager {
// Resets Proxy Use // Resets Proxy Use
HttpClient.start(account?.proxy) HttpClient.start(account?.proxy)
OptOutFromFilters.start(account?.filterSpamFromStrangers ?: true) LocalCache.antiSpam.active = account?.filterSpamFromStrangers ?: true
Coil.setImageLoader { Coil.setImageLoader {
Amethyst.instance.imageLoaderBuilder().components { Amethyst.instance.imageLoaderBuilder().components {
if (Build.VERSION.SDK_INT >= 28) { if (Build.VERSION.SDK_INT >= 28) {
@@ -11,7 +11,6 @@ import androidx.lifecycle.asLiveData
import androidx.lifecycle.liveData import androidx.lifecycle.liveData
import androidx.lifecycle.switchMap import androidx.lifecycle.switchMap
import com.vitorpamplona.amethyst.Amethyst import com.vitorpamplona.amethyst.Amethyst
import com.vitorpamplona.amethyst.OptOutFromFilters
import com.vitorpamplona.amethyst.service.FileHeader import com.vitorpamplona.amethyst.service.FileHeader
import com.vitorpamplona.amethyst.service.Nip96MediaServers import com.vitorpamplona.amethyst.service.Nip96MediaServers
import com.vitorpamplona.amethyst.service.NostrLnZapPaymentResponseDataSource import com.vitorpamplona.amethyst.service.NostrLnZapPaymentResponseDataSource
@@ -426,7 +425,7 @@ class Account(
fun updateOptOutOptions(warnReports: Boolean, filterSpam: Boolean) { fun updateOptOutOptions(warnReports: Boolean, filterSpam: Boolean) {
warnAboutPostsWithReports = warnReports warnAboutPostsWithReports = warnReports
filterSpamFromStrangers = filterSpam filterSpamFromStrangers = filterSpam
OptOutFromFilters.start(filterSpamFromStrangers) LocalCache.antiSpam.active = filterSpamFromStrangers
if (!filterSpamFromStrangers) { if (!filterSpamFromStrangers) {
transientHiddenUsers = persistentSetOf() transientHiddenUsers = persistentSetOf()
} }
@@ -4,7 +4,6 @@ import android.util.Log
import android.util.LruCache import android.util.LruCache
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import com.vitorpamplona.amethyst.OptOutFromFilters
import com.vitorpamplona.amethyst.service.checkNotInMainThread import com.vitorpamplona.amethyst.service.checkNotInMainThread
import com.vitorpamplona.amethyst.service.relays.Relay import com.vitorpamplona.amethyst.service.relays.Relay
import com.vitorpamplona.amethyst.ui.components.BundledUpdate import com.vitorpamplona.amethyst.ui.components.BundledUpdate
@@ -19,10 +18,12 @@ class AntiSpamFilter {
val recentMessages = LruCache<Int, String>(1000) val recentMessages = LruCache<Int, String>(1000)
val spamMessages = LruCache<Int, Spammer>(1000) val spamMessages = LruCache<Int, Spammer>(1000)
var active: Boolean = true
fun isSpam(event: Event, relay: Relay?): Boolean { fun isSpam(event: Event, relay: Relay?): Boolean {
checkNotInMainThread() checkNotInMainThread()
if (!OptOutFromFilters.filterSpamFromStrangers) return false if (!active) return false
val idHex = event.id val idHex = event.id