From c5b3c2bd9893118ee8650587f57ddfde51550d97 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sat, 17 Sep 2022 21:50:46 +0100 Subject: [PATCH 01/21] Initial work. --- api/settings.go | 90 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 api/settings.go diff --git a/api/settings.go b/api/settings.go new file mode 100644 index 0000000..eed2485 --- /dev/null +++ b/api/settings.go @@ -0,0 +1,90 @@ +package api + +import ( + "errors" + "io" + "io/ioutil" + "log" + "net/http" + "os" + + "github.com/ProjectSegfault/segfautils/config" + "github.com/goccy/go-json" +) + +var ( + announcements = config.OptAnn() + form = config.OptForm() +) + +func Settings() { + CheckSet() + http.HandleFunc("/api/options", getOpt) +} + +func CheckSet() { + os.Remove("./data/options.json") + if form == "true" && announcements == "false" { + data := map[string]interface{}{ + "Announcements": "false", + "Form": "true", + } + + jsonData, err := json.Marshal(data) + if err != nil { + log.Printf("Could not marshal json : %s\n", err) + return + } + + ioutil.WriteFile("./data/options.json", jsonData, os.ModePerm) + + } else if form == "true" && announcements == "true" { + data := map[string]interface{}{ + "Announcements": "true", + "Form": "true", + } + + jsonData, err := json.Marshal(data) + if err != nil { + log.Printf("Could not marshal json : %s\n", err) + return + } + + ioutil.WriteFile("./data/options.json", jsonData, os.ModePerm) + + } else if form == "false" && announcements == "true" { + data := map[string]interface{}{ + "Announcements": "true", + "Form": "false", + } + + jsonData, err := json.Marshal(data) + if err != nil { + log.Printf("Could not marshal json : %s\n", err) + return + } + + ioutil.WriteFile("./data/options.json", jsonData, os.ModePerm) + + } else { + resp := []byte("The fuck do you want me to do then?") + ioutil.WriteFile("./data/options.json", resp, os.ModePerm) + } +} +func getOpt(w http.ResponseWriter, r *http.Request) { + if r.Method != "GET" { + http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) + return + } + if _, err := os.Stat("./data/options.json"); errors.Is(err, os.ErrNotExist) { + http.Error(w, "There is nothing to see here.", http.StatusNotFound) + return + } else { + f, err := os.Open("./data/options.json") + if err != nil { + log.Fatal(err) + } + defer f.Close() + io.Copy(w, f) + } +} From dc69cc447de18c2dd40e3307348dbd9ba6ece053 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sat, 17 Sep 2022 21:50:55 +0100 Subject: [PATCH 02/21] Initial work --- api/announcements.go | 18 ++++++++++++++++++ config/optionannounce.go | 18 ++++++++++++++++++ config/optionform.go | 18 ++++++++++++++++++ data/config.example.toml | 6 +++++- data/options.json | 1 + main.go | 3 ++- 6 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 config/optionannounce.go create mode 100644 config/optionform.go create mode 100755 data/options.json diff --git a/api/announcements.go b/api/announcements.go index d6703dc..7200f7f 100644 --- a/api/announcements.go +++ b/api/announcements.go @@ -2,6 +2,7 @@ package api import ( "errors" + "fmt" "io" "io/ioutil" "log" @@ -17,6 +18,23 @@ var ( authToken = config.AuthToken() ) +func CheckAnn() { + jsonFile, err := os.Open("./data/options.json") + if err != nil { + fmt.Println(err) + } + defer jsonFile.Close() + byteValue, _ := ioutil.ReadAll(jsonFile) + var result map[string]interface{} + json.Unmarshal([]byte(byteValue), &result) + res := result["Announcements"] + if res == "true" { + Announcements() + } else { + log.Println("Announcements disabled") + } +} + func Announcements() { http.HandleFunc("/api/announcements", getAnnouncements) http.HandleFunc("/api/announcements/post", handleAnnouncements) diff --git a/config/optionannounce.go b/config/optionannounce.go new file mode 100644 index 0000000..06b1836 --- /dev/null +++ b/config/optionannounce.go @@ -0,0 +1,18 @@ +package config + +import ( + "log" + + "github.com/spf13/viper" +) + +func OptForm() string { + viper.SetConfigName("config") + viper.AddConfigPath("./data") + err := viper.ReadInConfig() + if err != nil { + log.Println("Error reading config for getting options.form", err.Error()) + } + result := viper.GetString("options.form") + return result +} diff --git a/config/optionform.go b/config/optionform.go new file mode 100644 index 0000000..1f81ea7 --- /dev/null +++ b/config/optionform.go @@ -0,0 +1,18 @@ +package config + +import ( + "log" + + "github.com/spf13/viper" +) + +func OptAnn() string { + viper.SetConfigName("config") + viper.AddConfigPath("./data") + err := viper.ReadInConfig() + if err != nil { + log.Println("Error reading config for getting options.announce", err.Error()) + } + result := viper.GetString("options.announce") + return result +} diff --git a/data/config.example.toml b/data/config.example.toml index 84aad0c..a172f14 100644 --- a/data/config.example.toml +++ b/data/config.example.toml @@ -5,4 +5,8 @@ auth_token = "YOURAUTHTOKEN" [hcaptcha] site_key = "YOURSITEKEY" -secret_key = "YOURSECRETKEY" \ No newline at end of file +secret_key = "YOURSECRETKEY" + +[options] +announce = true +form = false \ No newline at end of file diff --git a/data/options.json b/data/options.json new file mode 100755 index 0000000..3866b67 --- /dev/null +++ b/data/options.json @@ -0,0 +1 @@ +{"Announcements":"false","Form":"true"} \ No newline at end of file diff --git a/main.go b/main.go index a5a5ca8..810f05f 100644 --- a/main.go +++ b/main.go @@ -46,8 +46,9 @@ func main() { http.HandleFunc("/announcements", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "static/announcements.html") }) + api.Settings() api.Form() - api.Announcements() + api.CheckAnn() log.Println("[HTTP] HTTP server is now running at " + config.Port() + "!") log.Println(http.ListenAndServe(":"+config.Port(), nil)) } From 427bec5081e25474914fd6b576098b39d26cc758 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sat, 17 Sep 2022 21:55:50 +0100 Subject: [PATCH 03/21] make it better --- api/announcements.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api/announcements.go b/api/announcements.go index 7200f7f..9d212c1 100644 --- a/api/announcements.go +++ b/api/announcements.go @@ -32,6 +32,9 @@ func CheckAnn() { Announcements() } else { log.Println("Announcements disabled") + http.HandleFunc("/api/announcements", func(w http.ResponseWriter, r *http.Request) { + io.WriteString(w, "Disabled") + }) } } From 11a792d96c4c02e0e2998bc3964fef78d3e85aee Mon Sep 17 00:00:00 2001 From: Odyssey Date: Sat, 17 Sep 2022 23:03:47 +0200 Subject: [PATCH 04/21] improve grammar here Signed-off-by: Odyssey --- config/authtoken.go | 2 +- config/hcaptchasecretkey.go | 2 +- config/hcaptchasitekey.go | 2 +- config/optionannounce.go | 2 +- config/optionform.go | 2 +- config/port.go | 2 +- config/webhook.go | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/config/authtoken.go b/config/authtoken.go index f9b7b2f..e332783 100644 --- a/config/authtoken.go +++ b/config/authtoken.go @@ -15,7 +15,7 @@ func AuthToken() string { viper.AddConfigPath("./data") err := viper.ReadInConfig() if err != nil { - log.Println("Error reading config for getting segfautils.auth_token", err.Error()) + log.Println("Error reading config. Error getting: segfautils.auth_token", err.Error()) } result := viper.GetString("segfautils.auth_token") return result diff --git a/config/hcaptchasecretkey.go b/config/hcaptchasecretkey.go index e1cedca..b4834ed 100644 --- a/config/hcaptchasecretkey.go +++ b/config/hcaptchasecretkey.go @@ -11,7 +11,7 @@ func HCaptchaSecretKey() string { viper.AddConfigPath("./data") err := viper.ReadInConfig() if err != nil { - log.Println("Error reading config for getting hcaptcha.secret_key", err.Error()) + log.Println("Error reading config. Error getting: hcaptcha.secret_key", err.Error()) } result := viper.GetString("hcaptcha.secret_key") return result diff --git a/config/hcaptchasitekey.go b/config/hcaptchasitekey.go index 599d81e..214ce6d 100644 --- a/config/hcaptchasitekey.go +++ b/config/hcaptchasitekey.go @@ -11,7 +11,7 @@ func HCaptchaSiteKey() string { viper.AddConfigPath("./data") err := viper.ReadInConfig() if err != nil { - log.Println("Error reading config for getting hcaptcha.site_key", err.Error()) + log.Println("Error reading config. Error getting: hcaptcha.site_key", err.Error()) } result := viper.GetString("hcaptcha.site_key") return result diff --git a/config/optionannounce.go b/config/optionannounce.go index 06b1836..db2f184 100644 --- a/config/optionannounce.go +++ b/config/optionannounce.go @@ -11,7 +11,7 @@ func OptForm() string { viper.AddConfigPath("./data") err := viper.ReadInConfig() if err != nil { - log.Println("Error reading config for getting options.form", err.Error()) + log.Println("Error reading config. Error getting: options.form", err.Error()) } result := viper.GetString("options.form") return result diff --git a/config/optionform.go b/config/optionform.go index 1f81ea7..7cb3bba 100644 --- a/config/optionform.go +++ b/config/optionform.go @@ -11,7 +11,7 @@ func OptAnn() string { viper.AddConfigPath("./data") err := viper.ReadInConfig() if err != nil { - log.Println("Error reading config for getting options.announce", err.Error()) + log.Println("Error reading config. Error getting: options.announce", err.Error()) } result := viper.GetString("options.announce") return result diff --git a/config/port.go b/config/port.go index 0830001..66f57b2 100644 --- a/config/port.go +++ b/config/port.go @@ -12,7 +12,7 @@ func Port() string { viper.AddConfigPath("./data") err := viper.ReadInConfig() if err != nil { - log.Println("Error reading config for getting segfautils.port", err.Error()) + log.Println("Error reading config. Error getting: segfautils.port", err.Error()) } result := strconv.Itoa(viper.GetInt("segfautils.port")) return result diff --git a/config/webhook.go b/config/webhook.go index 6c6b03a..2324f18 100644 --- a/config/webhook.go +++ b/config/webhook.go @@ -11,7 +11,7 @@ func WebhookURL() string { viper.AddConfigPath("./data") err := viper.ReadInConfig() if err != nil { - log.Println("Error reading config for getting segfautils.webhook_url", err.Error()) + log.Println("Error reading config. Error getting: segfautils.webhook_url", err.Error()) } result := viper.GetString("segfautils.webhook_url") return result From b05c48cfbb134c04fe04ac13394bc79d385ec2d0 Mon Sep 17 00:00:00 2001 From: Odyssey Date: Sat, 17 Sep 2022 23:04:03 +0200 Subject: [PATCH 05/21] no options.sjon Signed-off-by: Odyssey --- data/options.json | 1 - 1 file changed, 1 deletion(-) delete mode 100755 data/options.json diff --git a/data/options.json b/data/options.json deleted file mode 100755 index 3866b67..0000000 --- a/data/options.json +++ /dev/null @@ -1 +0,0 @@ -{"Announcements":"false","Form":"true"} \ No newline at end of file From 977136d9c2e15ef4b100a0bc270d429bdae12d60 Mon Sep 17 00:00:00 2001 From: Odyssey Date: Sat, 17 Sep 2022 23:08:33 +0200 Subject: [PATCH 06/21] h Signed-off-by: Odyssey --- api/announcements.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/announcements.go b/api/announcements.go index 9d212c1..95903bf 100644 --- a/api/announcements.go +++ b/api/announcements.go @@ -33,7 +33,7 @@ func CheckAnn() { } else { log.Println("Announcements disabled") http.HandleFunc("/api/announcements", func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, "Disabled") + http.Error(w, "Announcements are disabled.", http.StatusNotFound) }) } } From 41209f3ee37efadb4d2d2334043ffdec9ae06461 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sat, 17 Sep 2022 22:18:21 +0100 Subject: [PATCH 07/21] ignore options. --- .gitignore | 1 + api/form.go | 23 +++++++++++++++++++++++ main.go | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9184d62..0e7e6c8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ data/config.toml +data/options.json \ No newline at end of file diff --git a/api/form.go b/api/form.go index dade019..1a73e93 100644 --- a/api/form.go +++ b/api/form.go @@ -1,9 +1,12 @@ package api import ( + "io/ioutil" "log" "net/http" + "os" + "github.com/goccy/go-json" "github.com/kataras/hcaptcha" "fmt" @@ -22,6 +25,26 @@ var ( client = hcaptcha.New(secretKey) /* See `Client.FailureHandler` too. */ ) +func FormCheck() { + jsonFile, err := os.Open("./data/options.json") + if err != nil { + fmt.Println(err) + } + defer jsonFile.Close() + byteValue, _ := ioutil.ReadAll(jsonFile) + var result map[string]interface{} + json.Unmarshal([]byte(byteValue), &result) + res := result["Form"] + if res == "true" { + Form() + } else { + log.Println("Forms disabled") + http.HandleFunc("/api/form", func(w http.ResponseWriter, r *http.Request) { + io.WriteString(w, "Disabled") + }) + } +} + func Form() { http.HandleFunc("/api/form", client.HandlerFunc(theActualFormCode)) } diff --git a/main.go b/main.go index 810f05f..19fdeba 100644 --- a/main.go +++ b/main.go @@ -47,7 +47,7 @@ func main() { http.ServeFile(w, r, "static/announcements.html") }) api.Settings() - api.Form() + api.FormCheck() api.CheckAnn() log.Println("[HTTP] HTTP server is now running at " + config.Port() + "!") log.Println(http.ListenAndServe(":"+config.Port(), nil)) From e614ab79fa9df6a408c4af946a8ddf055a57b4f0 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sat, 17 Sep 2022 22:33:44 +0100 Subject: [PATCH 08/21] Use viper instead of the clusterfuck of json i was trying to use. --- api/announcements.go | 13 +------ api/form.go | 24 +++--------- api/settings.go | 90 -------------------------------------------- main.go | 1 - 4 files changed, 7 insertions(+), 121 deletions(-) delete mode 100644 api/settings.go diff --git a/api/announcements.go b/api/announcements.go index 95903bf..4b37903 100644 --- a/api/announcements.go +++ b/api/announcements.go @@ -2,7 +2,6 @@ package api import ( "errors" - "fmt" "io" "io/ioutil" "log" @@ -16,19 +15,11 @@ import ( var ( authToken = config.AuthToken() + resAnn = config.OptAnn() ) func CheckAnn() { - jsonFile, err := os.Open("./data/options.json") - if err != nil { - fmt.Println(err) - } - defer jsonFile.Close() - byteValue, _ := ioutil.ReadAll(jsonFile) - var result map[string]interface{} - json.Unmarshal([]byte(byteValue), &result) - res := result["Announcements"] - if res == "true" { + if resAnn == "true" { Announcements() } else { log.Println("Announcements disabled") diff --git a/api/form.go b/api/form.go index 1a73e93..9edce97 100644 --- a/api/form.go +++ b/api/form.go @@ -1,21 +1,15 @@ package api import ( - "io/ioutil" + "fmt" + "io" "log" "net/http" - "os" - - "github.com/goccy/go-json" - "github.com/kataras/hcaptcha" - - "fmt" - - "io" "net/url" "github.com/ProjectSegfault/segfautils/config" "github.com/ProjectSegfault/segfautils/utils" + "github.com/kataras/hcaptcha" ) var ( @@ -23,19 +17,11 @@ var ( secretKey = config.HCaptchaSecretKey() webhookURL = config.WebhookURL() client = hcaptcha.New(secretKey) /* See `Client.FailureHandler` too. */ + resForm = config.OptForm() ) func FormCheck() { - jsonFile, err := os.Open("./data/options.json") - if err != nil { - fmt.Println(err) - } - defer jsonFile.Close() - byteValue, _ := ioutil.ReadAll(jsonFile) - var result map[string]interface{} - json.Unmarshal([]byte(byteValue), &result) - res := result["Form"] - if res == "true" { + if resForm == "true" { Form() } else { log.Println("Forms disabled") diff --git a/api/settings.go b/api/settings.go deleted file mode 100644 index eed2485..0000000 --- a/api/settings.go +++ /dev/null @@ -1,90 +0,0 @@ -package api - -import ( - "errors" - "io" - "io/ioutil" - "log" - "net/http" - "os" - - "github.com/ProjectSegfault/segfautils/config" - "github.com/goccy/go-json" -) - -var ( - announcements = config.OptAnn() - form = config.OptForm() -) - -func Settings() { - CheckSet() - http.HandleFunc("/api/options", getOpt) -} - -func CheckSet() { - os.Remove("./data/options.json") - if form == "true" && announcements == "false" { - data := map[string]interface{}{ - "Announcements": "false", - "Form": "true", - } - - jsonData, err := json.Marshal(data) - if err != nil { - log.Printf("Could not marshal json : %s\n", err) - return - } - - ioutil.WriteFile("./data/options.json", jsonData, os.ModePerm) - - } else if form == "true" && announcements == "true" { - data := map[string]interface{}{ - "Announcements": "true", - "Form": "true", - } - - jsonData, err := json.Marshal(data) - if err != nil { - log.Printf("Could not marshal json : %s\n", err) - return - } - - ioutil.WriteFile("./data/options.json", jsonData, os.ModePerm) - - } else if form == "false" && announcements == "true" { - data := map[string]interface{}{ - "Announcements": "true", - "Form": "false", - } - - jsonData, err := json.Marshal(data) - if err != nil { - log.Printf("Could not marshal json : %s\n", err) - return - } - - ioutil.WriteFile("./data/options.json", jsonData, os.ModePerm) - - } else { - resp := []byte("The fuck do you want me to do then?") - ioutil.WriteFile("./data/options.json", resp, os.ModePerm) - } -} -func getOpt(w http.ResponseWriter, r *http.Request) { - if r.Method != "GET" { - http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) - return - } - if _, err := os.Stat("./data/options.json"); errors.Is(err, os.ErrNotExist) { - http.Error(w, "There is nothing to see here.", http.StatusNotFound) - return - } else { - f, err := os.Open("./data/options.json") - if err != nil { - log.Fatal(err) - } - defer f.Close() - io.Copy(w, f) - } -} diff --git a/main.go b/main.go index 19fdeba..c6f22de 100644 --- a/main.go +++ b/main.go @@ -46,7 +46,6 @@ func main() { http.HandleFunc("/announcements", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "static/announcements.html") }) - api.Settings() api.FormCheck() api.CheckAnn() log.Println("[HTTP] HTTP server is now running at " + config.Port() + "!") From 9a504d16383a110ee77a539779f469162ab77615 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sat, 17 Sep 2022 23:12:06 +0100 Subject: [PATCH 09/21] Partial working form and announcements settings. --- api/announcements.go | 12 +++++++++++- api/form.go | 18 ++++++++++++++++++ main.go | 26 +++++++------------------- 3 files changed, 36 insertions(+), 20 deletions(-) diff --git a/api/announcements.go b/api/announcements.go index 4b37903..e23d30e 100644 --- a/api/announcements.go +++ b/api/announcements.go @@ -21,14 +21,24 @@ var ( func CheckAnn() { if resAnn == "true" { Announcements() + AnnPage() } else { log.Println("Announcements disabled") - http.HandleFunc("/api/announcements", func(w http.ResponseWriter, r *http.Request) { + http.HandleFunc("/announcements", func(w http.ResponseWriter, r *http.Request) { http.Error(w, "Announcements are disabled.", http.StatusNotFound) }) + http.HandleFunc("/api/announcements", func(w http.ResponseWriter, r *http.Request) { + http.Error(w, "{\"enabled\": \"false\"}", http.StatusNotFound) + }) } } +func AnnPage() { + http.HandleFunc("/announcements", func(w http.ResponseWriter, r *http.Request) { + http.ServeFile(w, r, "static/announcements.html") + }) +} + func Announcements() { http.HandleFunc("/api/announcements", getAnnouncements) http.HandleFunc("/api/announcements/post", handleAnnouncements) diff --git a/api/form.go b/api/form.go index 9edce97..42de194 100644 --- a/api/form.go +++ b/api/form.go @@ -6,6 +6,7 @@ import ( "log" "net/http" "net/url" + "text/template" "github.com/ProjectSegfault/segfautils/config" "github.com/ProjectSegfault/segfautils/utils" @@ -22,6 +23,7 @@ var ( func FormCheck() { if resForm == "true" { + FormPage() Form() } else { log.Println("Forms disabled") @@ -31,6 +33,22 @@ func FormCheck() { } } +func FormPage() { + type StaticThing struct { + HCaptchaSiteKey string + } + + tmpl_form := template.Must(template.ParseFiles("static/form.html")) + http.HandleFunc("/form/", func(w http.ResponseWriter, r *http.Request) { + + hcaptcha_site_key := config.HCaptchaSiteKey() + data := StaticThing{ + HCaptchaSiteKey: hcaptcha_site_key, + } + tmpl_form.Execute(w, data) + }) +} + func Form() { http.HandleFunc("/api/form", client.HandlerFunc(theActualFormCode)) } diff --git a/main.go b/main.go index c6f22de..ba01798 100644 --- a/main.go +++ b/main.go @@ -12,18 +12,13 @@ import ( ) type StaticThingy struct { - Port string - HCaptchaSiteKey string + Port string } -var port string -var shit bool - func main() { log.Println("[Segfautils] Starting") utils.CheckConfig() - log.Println("[HTTP] Starting server") - hcaptcha_site_key := config.HCaptchaSiteKey() + tmpl := template.Must(template.ParseFiles("static/index.html")) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { data := StaticThingy{ @@ -32,22 +27,15 @@ func main() { tmpl.Execute(w, data) }) - tmpl_form := template.Must(template.ParseFiles("static/form.html")) - http.HandleFunc("/form/", func(w http.ResponseWriter, r *http.Request) { - data := StaticThingy{ - HCaptchaSiteKey: hcaptcha_site_key, - } - tmpl_form.Execute(w, data) - }) + log.Println("[HTTP] Starting server") + api.CheckAnn() + api.FormCheck() http.HandleFunc("/api/", func(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "welcome to hell") }) - http.HandleFunc("/announcements", func(w http.ResponseWriter, r *http.Request) { - http.ServeFile(w, r, "static/announcements.html") - }) - api.FormCheck() - api.CheckAnn() + + api.Form() log.Println("[HTTP] HTTP server is now running at " + config.Port() + "!") log.Println(http.ListenAndServe(":"+config.Port(), nil)) } From 7542cfba4a859e7014ef43d80fe53f31bd932c6c Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sat, 17 Sep 2022 23:16:52 +0100 Subject: [PATCH 10/21] Meanwhile on gitea --- .woodpecker.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index d7ada65..904771b 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -9,7 +9,8 @@ pipeline: when: event: [push] name: dockerize and publish - image: plugins/docker + image: plugins/docker + registry: git.projectsegfau.lt/midou/segfautils settings: username: from_secret: username From 65634751b67e0573d98a2bbbbc5049aabe625dac Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sat, 17 Sep 2022 23:20:23 +0100 Subject: [PATCH 11/21] fix --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 904771b..5a361b7 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -10,7 +10,7 @@ pipeline: event: [push] name: dockerize and publish image: plugins/docker - registry: git.projectsegfau.lt/midou/segfautils + registry: git.projectsegfau.lt/projectsegfault/segfautils settings: username: from_secret: username From 950d65ca59535972593e899222de850906922e74 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sat, 17 Sep 2022 23:23:39 +0100 Subject: [PATCH 12/21] huh? --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 5a361b7..e40ac03 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -10,7 +10,7 @@ pipeline: event: [push] name: dockerize and publish image: plugins/docker - registry: git.projectsegfau.lt/projectsegfault/segfautils + registry: "git.projectsegfau.lt/projectsegfault/segfautils" settings: username: from_secret: username From 64a39ac5e57136413ddaab398b15be247fb1f1d2 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sat, 17 Sep 2022 23:24:32 +0100 Subject: [PATCH 13/21] fuck this was the solution --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index e40ac03..c4b12e7 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -10,7 +10,7 @@ pipeline: event: [push] name: dockerize and publish image: plugins/docker - registry: "git.projectsegfau.lt/projectsegfault/segfautils" + registry: git.projectsegfau.lt settings: username: from_secret: username From bfdc165346b20ad1f81499a1cba4c3e5cf4bc47b Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sun, 18 Sep 2022 00:26:10 +0100 Subject: [PATCH 14/21] I'm stupid. --- .woodpecker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.woodpecker.yml b/.woodpecker.yml index c4b12e7..dcb53cb 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -11,6 +11,7 @@ pipeline: name: dockerize and publish image: plugins/docker registry: git.projectsegfau.lt + repo: git.projectsegfau.lt/projectsegfault/segfautils settings: username: from_secret: username From 3abdbde81230c97b596cdb85ae214cebd0343bfd Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sun, 18 Sep 2022 00:33:50 +0100 Subject: [PATCH 15/21] Add dev to docker (there has to be a way to improve this!) --- .woodpecker.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index dcb53cb..f4436f6 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -7,6 +7,7 @@ pipeline: - go build -o segfautils dockerize_n_publish: when: + branch : [master] event: [push] name: dockerize and publish image: plugins/docker @@ -19,6 +20,19 @@ pipeline: from_secret: password repo: projectsegfault/segfautils dockerfile: Dockerfile - + dockerize_dev: + when: + event: [push] + name: dockerize and publish dev + registry: git.projectsegfau.lt + repo: git.projectsegfau.lt/projectsegfault/segfautils + settings: + username: + from_secret: username + password: + from_secret: password + repo: projectsegfau.lt/segfautils + tags: dev + dockerfile: Dockerfile From 0beb8a33deee0e36f484e1ea21ecdad541d848fa Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sun, 18 Sep 2022 00:37:34 +0100 Subject: [PATCH 16/21] Did I forget the image? Maybe I did. --- .woodpecker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.woodpecker.yml b/.woodpecker.yml index f4436f6..5bca7f5 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -23,6 +23,7 @@ pipeline: dockerize_dev: when: event: [push] + image: plugins/docker name: dockerize and publish dev registry: git.projectsegfau.lt repo: git.projectsegfau.lt/projectsegfault/segfautils From 16ea5c31384f116cafbb677e1a731d6f4ada6472 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sun, 18 Sep 2022 00:40:46 +0100 Subject: [PATCH 17/21] Fix the go error. --- main.go | 1 - 1 file changed, 1 deletion(-) diff --git a/main.go b/main.go index ba01798..e0babda 100644 --- a/main.go +++ b/main.go @@ -35,7 +35,6 @@ func main() { io.WriteString(w, "welcome to hell") }) - api.Form() log.Println("[HTTP] HTTP server is now running at " + config.Port() + "!") log.Println(http.ListenAndServe(":"+config.Port(), nil)) } From af39a529719b85409b9c8d8095d234c0738b981f Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sun, 18 Sep 2022 01:43:17 +0100 Subject: [PATCH 18/21] Ok so, pages don't get disabled, but they don't show up! Half working. --- api/announcements.go | 2 +- api/form.go | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/api/announcements.go b/api/announcements.go index e23d30e..5cffff6 100644 --- a/api/announcements.go +++ b/api/announcements.go @@ -20,8 +20,8 @@ var ( func CheckAnn() { if resAnn == "true" { - Announcements() AnnPage() + Announcements() } else { log.Println("Announcements disabled") http.HandleFunc("/announcements", func(w http.ResponseWriter, r *http.Request) { diff --git a/api/form.go b/api/form.go index 42de194..e1181cc 100644 --- a/api/form.go +++ b/api/form.go @@ -30,6 +30,9 @@ func FormCheck() { http.HandleFunc("/api/form", func(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "Disabled") }) + http.HandleFunc("/form", func(w http.ResponseWriter, r *http.Request) { + io.WriteString(w, "Disabled") + }) } } From 65d35747fc7f6601267bc19361db49bc1611e0fd Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sun, 18 Sep 2022 17:18:14 +0100 Subject: [PATCH 19/21] Fix Some more stuff, disabling form actually works now. --- api/announcements.go | 4 ++-- api/form.go | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/api/announcements.go b/api/announcements.go index 5cffff6..a9814d2 100644 --- a/api/announcements.go +++ b/api/announcements.go @@ -25,10 +25,10 @@ func CheckAnn() { } else { log.Println("Announcements disabled") http.HandleFunc("/announcements", func(w http.ResponseWriter, r *http.Request) { - http.Error(w, "Announcements are disabled.", http.StatusNotFound) + http.Error(w, "Announcements are disabled.", http.StatusServiceUnavailable) }) http.HandleFunc("/api/announcements", func(w http.ResponseWriter, r *http.Request) { - http.Error(w, "{\"enabled\": \"false\"}", http.StatusNotFound) + http.Error(w, "{\"enabled\": \"false\"}", http.StatusServiceUnavailable) }) } } diff --git a/api/form.go b/api/form.go index e1181cc..ee0f780 100644 --- a/api/form.go +++ b/api/form.go @@ -27,11 +27,11 @@ func FormCheck() { Form() } else { log.Println("Forms disabled") - http.HandleFunc("/api/form", func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, "Disabled") - }) http.HandleFunc("/form", func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, "Disabled") + http.Error(w, "Form is disabled.", http.StatusServiceUnavailable) + }) + http.HandleFunc("/api/form", func(w http.ResponseWriter, r *http.Request) { + http.Error(w, "{\"enabled\": \"false\"}", http.StatusServiceUnavailable) }) } } From 1c2e6e3da9c6ce73631efaf94d9b70771dc6c9d2 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sun, 18 Sep 2022 17:44:37 +0100 Subject: [PATCH 20/21] Fix everything odyssey pointed out. --- .gitignore | 3 +-- api/announcements.go | 5 +++-- api/form.go | 5 +---- main.go | 2 +- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 0e7e6c8..4319c60 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -data/config.toml -data/options.json \ No newline at end of file +data/config.toml \ No newline at end of file diff --git a/api/announcements.go b/api/announcements.go index a9814d2..5cea151 100644 --- a/api/announcements.go +++ b/api/announcements.go @@ -18,12 +18,12 @@ var ( resAnn = config.OptAnn() ) -func CheckAnn() { +func AnnCheck() { if resAnn == "true" { AnnPage() Announcements() } else { - log.Println("Announcements disabled") + log.Println("[Segfautils] ℹ Announcements are disabled") http.HandleFunc("/announcements", func(w http.ResponseWriter, r *http.Request) { http.Error(w, "Announcements are disabled.", http.StatusServiceUnavailable) }) @@ -61,6 +61,7 @@ func handleAnnouncements(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) now := time.Now().Unix() data := map[string]interface{}{ + "enabled": "true", "title": r.FormValue("title"), "link": r.FormValue("link"), "severity": r.FormValue("severity"), diff --git a/api/form.go b/api/form.go index ee0f780..5528454 100644 --- a/api/form.go +++ b/api/form.go @@ -26,13 +26,10 @@ func FormCheck() { FormPage() Form() } else { - log.Println("Forms disabled") + log.Println("[Segfautils] ℹ Contact form is disabled") http.HandleFunc("/form", func(w http.ResponseWriter, r *http.Request) { http.Error(w, "Form is disabled.", http.StatusServiceUnavailable) }) - http.HandleFunc("/api/form", func(w http.ResponseWriter, r *http.Request) { - http.Error(w, "{\"enabled\": \"false\"}", http.StatusServiceUnavailable) - }) } } diff --git a/main.go b/main.go index e0babda..14384b3 100644 --- a/main.go +++ b/main.go @@ -28,7 +28,7 @@ func main() { }) log.Println("[HTTP] Starting server") - api.CheckAnn() + api.AnnCheck() api.FormCheck() http.HandleFunc("/api/", func(w http.ResponseWriter, r *http.Request) { From 6bdbf3b83d6e866ad84d09e5f5bc39149a2b3e21 Mon Sep 17 00:00:00 2001 From: Midou36O Date: Sun, 18 Sep 2022 19:16:57 +0100 Subject: [PATCH 21/21] Make it compatible with the previous version. --- .gitignore | 3 ++- api/announcements.go | 8 ++++---- api/form.go | 8 ++++---- config/optionannounce.go | 6 +++--- config/optionform.go | 6 +++--- 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 4319c60..649bd21 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -data/config.toml \ No newline at end of file +data/config.toml +data/announcements.json \ No newline at end of file diff --git a/api/announcements.go b/api/announcements.go index 5cea151..176dcc1 100644 --- a/api/announcements.go +++ b/api/announcements.go @@ -19,10 +19,7 @@ var ( ) func AnnCheck() { - if resAnn == "true" { - AnnPage() - Announcements() - } else { + if resAnn == "false" { log.Println("[Segfautils] ℹ Announcements are disabled") http.HandleFunc("/announcements", func(w http.ResponseWriter, r *http.Request) { http.Error(w, "Announcements are disabled.", http.StatusServiceUnavailable) @@ -30,6 +27,9 @@ func AnnCheck() { http.HandleFunc("/api/announcements", func(w http.ResponseWriter, r *http.Request) { http.Error(w, "{\"enabled\": \"false\"}", http.StatusServiceUnavailable) }) + } else { + AnnPage() + Announcements() } } diff --git a/api/form.go b/api/form.go index 5528454..a576564 100644 --- a/api/form.go +++ b/api/form.go @@ -22,14 +22,14 @@ var ( ) func FormCheck() { - if resForm == "true" { - FormPage() - Form() - } else { + if resForm == "false" { log.Println("[Segfautils] ℹ Contact form is disabled") http.HandleFunc("/form", func(w http.ResponseWriter, r *http.Request) { http.Error(w, "Form is disabled.", http.StatusServiceUnavailable) }) + } else { + FormPage() + Form() } } diff --git a/config/optionannounce.go b/config/optionannounce.go index db2f184..7cb3bba 100644 --- a/config/optionannounce.go +++ b/config/optionannounce.go @@ -6,13 +6,13 @@ import ( "github.com/spf13/viper" ) -func OptForm() string { +func OptAnn() string { viper.SetConfigName("config") viper.AddConfigPath("./data") err := viper.ReadInConfig() if err != nil { - log.Println("Error reading config. Error getting: options.form", err.Error()) + log.Println("Error reading config. Error getting: options.announce", err.Error()) } - result := viper.GetString("options.form") + result := viper.GetString("options.announce") return result } diff --git a/config/optionform.go b/config/optionform.go index 7cb3bba..db2f184 100644 --- a/config/optionform.go +++ b/config/optionform.go @@ -6,13 +6,13 @@ import ( "github.com/spf13/viper" ) -func OptAnn() string { +func OptForm() string { viper.SetConfigName("config") viper.AddConfigPath("./data") err := viper.ReadInConfig() if err != nil { - log.Println("Error reading config. Error getting: options.announce", err.Error()) + log.Println("Error reading config. Error getting: options.form", err.Error()) } - result := viper.GetString("options.announce") + result := viper.GetString("options.form") return result }