aboutsummaryrefslogtreecommitdiff
path: root/util/blacklist.go
diff options
context:
space:
mode:
authorFChannel <>2022-04-30 22:17:32 -0700
committerFChannel <>2022-06-19 12:53:29 -0700
commit503a6637b8294aeb8e5e5546f8acbd2b3d6c4744 (patch)
tree56614d955df0d3e7284baa997bbf1a8dcc2e78f5 /util/blacklist.go
parent1892327cee2c3fa1d3bea729bd08eb63c2189a96 (diff)
first steps in posting connected. can make reply with no quote or quote OP
do not recommend working on this branch for the time being since things are being moved around a lot
Diffstat (limited to 'util/blacklist.go')
-rw-r--r--util/blacklist.go76
1 files changed, 76 insertions, 0 deletions
diff --git a/util/blacklist.go b/util/blacklist.go
new file mode 100644
index 0000000..5368037
--- /dev/null
+++ b/util/blacklist.go
@@ -0,0 +1,76 @@
+package util
+
+import (
+ "regexp"
+
+ "github.com/FChannel0/FChannel-Server/config"
+)
+
+type PostBlacklist struct {
+ Id int
+ Regex string
+}
+
+func DeleteRegexBlacklistDB(id int) error {
+ query := `delete from postblacklist where id=$1`
+
+ _, err := config.DB.Exec(query, id)
+ return err
+}
+
+func GetRegexBlacklistDB() ([]PostBlacklist, error) {
+ var list []PostBlacklist
+
+ query := `select id, regex from postblacklist`
+
+ rows, err := config.DB.Query(query)
+ if err != nil {
+ return list, err
+ }
+
+ defer rows.Close()
+ for rows.Next() {
+ var temp PostBlacklist
+ rows.Scan(&temp.Id, &temp.Regex)
+
+ list = append(list, temp)
+ }
+
+ return list, nil
+}
+
+func IsPostBlacklist(comment string) (bool, error) {
+ postblacklist, err := GetRegexBlacklistDB()
+
+ if err != nil {
+ return false, err
+ }
+
+ for _, e := range postblacklist {
+ re := regexp.MustCompile(e.Regex)
+
+ if re.MatchString(comment) {
+ return true, nil
+ }
+ }
+
+ return false, nil
+}
+
+func WriteRegexBlacklistDB(regex string) error {
+ var re string
+
+ query := `select from postblacklist where regex=$1`
+ if err := config.DB.QueryRow(query, regex).Scan(&re); err != nil {
+ return err
+ }
+
+ if re != "" {
+ return nil
+ }
+
+ query = `insert into postblacklist (regex) values ($1)`
+
+ _, err := config.DB.Exec(query, regex)
+ return err
+}