Compare commits

...

2 Commits

5 changed files with 42 additions and 4 deletions

View File

@ -1,3 +1,3 @@
package main
const version = "0.2.2"
const version = "0.2.201"

View File

@ -1,3 +1,3 @@
package main
const version = "0.1.105"
const version = "0.1.106"

View File

@ -110,16 +110,24 @@ func (generator *Generator) Start(ctx context.Context, cursorOption types.Genera
}
func (generator *Generator) IsValid(post *collections.Post) bool {
// Skip posts that are deep replies (not direct replies to original posts)
if post.Reply != nil && post.Reply.RootURI != post.Reply.ParentURI {
return false
}
// Check if the user who created this post is in our pre-defined list
// This allows for explicit inclusion/exclusion of specific users
if isValidUser := Users.IsValid(post.DID); isValidUser != nil {
return *isValidUser
}
if (slices.Contains(post.Langs, "az") && len(post.Langs) < 3) || // Posts in Azerbaijani language with fewer than 3 languages
generator.textRegex.MatchString(post.Text) { // Posts containing Azerbaijan-related keywords
// A post is considered valid if it meets either of the following criteria:
// 1. It's primarily in Azerbaijani (language code "az") with less than 3 detected languages
// (to filter out multi-language spam)
// 2. It contains Azerbaijan-related keywords in the text AND has at least one valid language
// from our approved language list
if (slices.Contains(post.Langs, "az") && len(post.Langs) < 3) ||
(generator.textRegex.MatchString(post.Text) && Langs.IsExistsAny(post.Langs)) {
return true
}

View File

@ -28,6 +28,9 @@ var Users = generator.Users{
"did:plc:6bvhdvgeqkj7nol2zodtqmww": false,
"did:plc:k6sxlkd5ssq2uaylzisap2tw": false,
"did:plc:uxljnh22mmfzmr4i3oien6mx": false,
"did:plc:w5gg2zgwcyfevphehdcmavev": false,
"did:plc:ckawbibgmrwg3lbskfppwtlw": false,
"did:plc:43fdk46qa5gsokzygzildsaq": false,
// Valid
"did:plc:jbt4qi6psd7rutwzedtecsq7": true,
@ -42,3 +45,10 @@ var Users = generator.Users{
"did:plc:ftoopigdpuzqt2kpeyqxsofx": true,
"did:plc:cs2cbzojm6hmx5lfxiuft3mq": true,
}
var Langs = generator.Langs{
"az": true,
"en": true,
"tr": true,
"ru": true,
}

View File

@ -67,3 +67,23 @@ func (u Users) GetAll() []string {
return allUsers
}
type Langs map[string]bool
// IsExistsAny checks if any of the given language codes exist in the Langs map.
//
// Parameters:
// - langs: A slice of language code strings to check for existence
//
// Returns:
// - bool: true if at least one language code from the input slice exists in the map,
// false if none of the provided language codes exist
func (l Langs) IsExistsAny(langs []string) bool {
for _, lang := range langs {
if _, ok := l[lang]; ok {
return true
}
}
return false
}