aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorKushBlazingJudah <59340248+KushBlazingJudah@users.noreply.github.com>2021-10-30 00:28:51 -0300
committerFChannel <>2022-06-19 12:53:29 -0700
commit8040825daac4a5ba24e947c4c657d169d7763543 (patch)
tree667058707ab1c2b2af5dc01decda25cc7709f9df /main.go
parentf76b8093b9ca69c7d4eca747d8c5d702d492e1fb (diff)
restructuring, part 3 of many
Diffstat (limited to 'main.go')
-rw-r--r--main.go203
1 files changed, 12 insertions, 191 deletions
diff --git a/main.go b/main.go
index 1248a2d..4cceade 100644
--- a/main.go
+++ b/main.go
@@ -1,7 +1,6 @@
package main
import (
- "bufio"
"bytes"
"crypto/sha256"
"database/sql"
@@ -9,7 +8,11 @@ import (
"encoding/json"
"fmt"
+ "github.com/FChannel0/FChannel-Server/activitypub"
+ "github.com/FChannel0/FChannel-Server/config"
+ "github.com/FChannel0/FChannel-Server/db"
"github.com/FChannel0/FChannel-Server/routes"
+ "github.com/FChannel0/FChannel-Server/util"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/template/html"
@@ -28,7 +31,6 @@ import (
"os/exec"
"path"
"regexp"
- "strconv"
"strings"
"time"
)
@@ -45,6 +47,10 @@ var ActorCache = make(map[string]activitypub.Actor)
var Themes []string
+func init() {
+ rand.Seed(time.Now().UnixNano())
+}
+
func main() {
CreatedNeededDirectories()
@@ -52,13 +58,13 @@ func main() {
InitCache()
db.ConnectDB()
- db.Close()
+ defer db.Close()
RunDatabaseSchema(DB)
go MakeCaptchas(DB, 100)
- *Key = CreateKey(32)
+ *Key = util.CreateKey(32)
FollowingBoards = GetActorFollowingDB(DB, Domain)
@@ -253,15 +259,6 @@ func CheckError(e error, m string) error {
return e
}
-func CreateKey(len int) string {
- var key string
- str := (CreateTripCode(RandomID(len)))
- for i := 0; i < len; i++ {
- key += fmt.Sprintf("%c", str[i])
- }
- return key
-}
-
func neuter(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if strings.HasSuffix(r.URL.Path, "/") {
@@ -273,20 +270,6 @@ func neuter(next http.Handler) http.Handler {
})
}
-func CreateTripCode(input string) string {
- cmd := exec.Command("sha512sum")
- cmd.Stdin = strings.NewReader(input)
- var out bytes.Buffer
- cmd.Stdout = &out
- err := cmd.Run()
-
- CheckError(err, "error with create trip code")
-
- code := strings.Split(out.String(), " ")
-
- return code[0]
-}
-
func GetActorFromPath(db *sql.DB, location string, prefix string) Actor {
pattern := fmt.Sprintf("%s([^/\n]+)(/.+)?", prefix)
re := regexp.MustCompile(pattern)
@@ -324,45 +307,6 @@ func GetContentType(location string) string {
}
}
-func RandomID(size int) string {
- rand.Seed(time.Now().UTC().UnixNano())
- domain := "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- rng := size
- newID := ""
- for i := 0; i < rng; i++ {
- newID += string(domain[rand.Intn(len(domain))])
- }
-
- return newID
-}
-
-func CreateUniqueID(db *sql.DB, actor string) string {
- var newID string
- isUnique := false
- for !isUnique {
- newID = RandomID(8)
-
- query := fmt.Sprintf("select id from activitystream where id='%s/%s/%s'", Domain, actor, newID)
-
- rows, err := db.Query(query)
-
- CheckError(err, "error with unique id query")
-
- defer rows.Close()
-
- var count int = 0
- for rows.Next() {
- count += 1
- }
-
- if count < 1 {
- isUnique = true
- }
- }
-
- return newID
-}
-
func CreateNewActor(board string, prefName string, summary string, authReq []string, restricted bool) *Actor {
actor := new(Actor)
@@ -736,56 +680,6 @@ func IsActivityLocal(db *sql.DB, activity Activity) bool {
return false
}
-func IsIDLocal(db *sql.DB, id string) bool {
- activity := GetActivityFromDB(db, id)
- return len(activity.OrderedItems) > 0
-}
-
-func IsActorLocal(db *sql.DB, id string) bool {
- actor := GetActorFromDB(db, id)
-
- if actor.Id != "" {
- return true
- }
-
- return false
-}
-
-func IsObjectLocal(db *sql.DB, id string) bool {
-
- query := `select id from activitystream where id=$1`
-
- rows, _ := db.Query(query, id)
-
- var nID string
- defer rows.Close()
- rows.Next()
- rows.Scan(&nID)
-
- if nID == "" {
- return false
- }
-
- return true
-}
-
-func IsObjectCached(db *sql.DB, id string) bool {
-
- query := `select id from cacheactivitystream where id=$1`
- rows, _ := db.Query(query, id)
-
- var nID string
- defer rows.Close()
- rows.Next()
- rows.Scan(&nID)
-
- if nID == "" {
- return false
- }
-
- return true
-}
-
func GetObjectFromActivity(activity Activity) ObjectBase {
return *activity.Object
}
@@ -835,65 +729,6 @@ func SupportedMIMEType(mime string) bool {
return false
}
-func DeleteReportActivity(db *sql.DB, id string) bool {
-
- query := `delete from reported where id=$1`
-
- _, err := db.Exec(query, id)
-
- if err != nil {
- CheckError(err, "error closing reported activity")
- return false
- }
-
- return true
-}
-
-func ReportActivity(db *sql.DB, id string, reason string) bool {
-
- if !IsIDLocal(db, id) {
- return false
- }
-
- actor := GetActivityFromDB(db, id)
-
- query := `select count from reported where id=$1`
-
- rows, err := db.Query(query, id)
-
- CheckError(err, "could not select count from reported")
-
- defer rows.Close()
- var count int
- for rows.Next() {
- rows.Scan(&count)
- }
-
- if count < 1 {
- query = `insert into reported (id, count, board, reason) values ($1, $2, $3, $4)`
-
- _, err := db.Exec(query, id, 1, actor.Actor.Id, reason)
-
- if err != nil {
- CheckError(err, "error inserting new reported activity")
- return false
- }
-
- } else {
- count = count + 1
- query = `update reported set count=$1 where id=$2`
-
- _, err := db.Exec(query, count, id)
-
- if err != nil {
- CheckError(err, "error updating reported activity")
- return false
- }
- }
-
- return true
-}
-
func GetActorReported(w http.ResponseWriter, r *http.Request, db *sql.DB, id string) {
auth := r.Header.Get("Authorization")
@@ -1623,24 +1458,10 @@ func RouteImages(w http.ResponseWriter, media string) {
w.Write(body)
}
-func IsPostBlacklist(db *sql.DB, comment string) bool {
- postblacklist := GetRegexBlacklistDB(db)
-
- for _, e := range postblacklist {
- re := regexp.MustCompile(e.Regex)
-
- if re.MatchString(comment) {
- return true
- }
- }
-
- return false
-}
-
-func HasValidation(w http.ResponseWriter, r *http.Request, actor Actor) bool {
+func HasValidation(w http.ResponseWriter, r *http.Request, actor activitypub.Actor) bool {
id, _ := GetPasswordFromSession(r)
- if id == "" || (id != actor.Id && id != Domain) {
+ if id == "" || (id != actor.Id && id != config.Domain) {
http.Redirect(w, r, "/", http.StatusSeeOther)
return false
}