add whitelist and replace old blacklist files with one
This commit is contained in:
parent
8b875882e9
commit
d5ae0bcb0c
2 changed files with 21 additions and 19 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,4 +1,4 @@
|
|||
.env
|
||||
domains.txt
|
||||
nicknames.txt
|
||||
blacklist.txt
|
||||
whitelist.txt
|
||||
uabot
|
||||
|
|
36
main.go
36
main.go
|
@ -67,13 +67,13 @@ func main() {
|
|||
log.Fatal(err)
|
||||
}
|
||||
|
||||
domainRegexes, err := parseRegexFile(path.Join(ex, "domains.txt"))
|
||||
blacklistRegexes, err := parseRegexFile(path.Join(ex, "blacklist.txt"))
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
nicknameRegexes, err := parseRegexFile(path.Join(ex, "nicknames.txt"))
|
||||
whitelistRegexes, err := parseRegexFile(path.Join(ex, "whitelist.txt"))
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
|
@ -213,23 +213,13 @@ notif_loop:
|
|||
// log.Println(notif)
|
||||
|
||||
if notif.Type == "follow" {
|
||||
acct_parsed := strings.Split(notif.Account.Acct, "@")
|
||||
// acct_parsed := strings.Split(notif.Account.Acct, "@")
|
||||
|
||||
for _, regex := range domainRegexes {
|
||||
if len(acct_parsed) == 2 && regex.MatchString(acct_parsed[1]) {
|
||||
for _, regex := range blacklistRegexes {
|
||||
if regex.MatchString(notif.Account.Acct) {
|
||||
_, err := masto_client.AccountBlock(ctx, notif.Account.ID)
|
||||
if err == nil {
|
||||
matrix_client.SendText(m_id.RoomID(ROOM_ID), fmt.Sprintf("%s заблокований автоматично регексом доменів: %s", notif.Account.Acct, regex.String()))
|
||||
}
|
||||
continue notif_loop
|
||||
}
|
||||
}
|
||||
|
||||
for _, regex := range nicknameRegexes {
|
||||
if regex.MatchString(acct_parsed[0]) {
|
||||
_, err := masto_client.AccountBlock(ctx, notif.Account.ID)
|
||||
if err == nil {
|
||||
matrix_client.SendText(m_id.RoomID(ROOM_ID), fmt.Sprintf("%s заблокований автоматично регексом нікнеймів: %s", notif.Account.Acct, regex.String()))
|
||||
matrix_client.SendText(m_id.RoomID(ROOM_ID), fmt.Sprintf("%s заблокований автоматично регулярним виразом: %s", notif.Account.Acct, regex.String()))
|
||||
}
|
||||
continue notif_loop
|
||||
}
|
||||
|
@ -265,7 +255,19 @@ actor: %v`, notif.Status.ID, notif.Status.Content, notif.Account.Acct)
|
|||
}
|
||||
|
||||
if ok && notif.Status.Visibility == "public" {
|
||||
log.Debugf("post %v is public and has subscription", notif.Status.ID)
|
||||
log.Debugf("post %v is public and user has subscription", notif.Status.ID)
|
||||
|
||||
for _, regex := range whitelistRegexes {
|
||||
if regex.MatchString(notif.Account.Acct) {
|
||||
_, err = masto_client.Reblog(ctx, notif.Status.ID)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
log.Debugf("post %v belongs to whitelisted user (%v) by regex: %v", notif.Status.ID, notif.Account.Acct, regex.String())
|
||||
continue notif_loop
|
||||
}
|
||||
}
|
||||
|
||||
if err := db.Create(&Post{
|
||||
PostId: string(notif.Status.ID),
|
||||
}).Error; err != nil {
|
||||
|
|
Loading…
Reference in a new issue