new stuff cool ig
Signed-off-by: Odyssey346 <odyssey346@disroot.org>
This commit is contained in:
parent
26c4a288ca
commit
cdd7bfbea7
53
api/form.go
53
api/form.go
@ -3,12 +3,15 @@ package api
|
|||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"html/template"
|
"html/template"
|
||||||
"io"
|
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/kataras/hcaptcha"
|
"github.com/kataras/hcaptcha"
|
||||||
|
|
||||||
"os"
|
"os"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"net/url"
|
||||||
|
"io"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -22,23 +25,47 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Form() {
|
func Form() {
|
||||||
http.HandleFunc("/api/form", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/api/form", client.HandlerFunc(theActualFormCode))
|
||||||
switch r.Method {
|
|
||||||
case http.MethodGet:
|
|
||||||
io.WriteString(w, "I got your ")
|
|
||||||
io.WriteString(w, "\n" + r.RemoteAddr)
|
|
||||||
case http.MethodPost:
|
|
||||||
io.WriteString(w, "You have no mail to POST!")
|
|
||||||
default:
|
|
||||||
http.Error(w, "Method isn't allowed!\nYou may only GET or POST here, not " + r.Method, http.StatusMethodNotAllowed)
|
|
||||||
}
|
|
||||||
log.Println("[HTTP] " + r.RemoteAddr + " accessed /api/form with method " + r.Method)
|
|
||||||
})
|
|
||||||
|
|
||||||
http.HandleFunc("/form", renderTestForm)
|
http.HandleFunc("/form", renderTestForm)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func theActualFormCode(w http.ResponseWriter, r *http.Request) {
|
||||||
|
switch r.Method {
|
||||||
|
case http.MethodPost:
|
||||||
|
hcaptchaResp, ok := hcaptcha.Get(r)
|
||||||
|
if !ok {
|
||||||
|
w.WriteHeader(http.StatusUnauthorized)
|
||||||
|
fmt.Fprint(w, "Seems like captcha failed, you didn't complete the captcha or you are a bot. Please try again.\nPlease note that your IP has been logged in our systems for manual review to check if you're an abusive user. If you're seen as abusive, you will be blacklisted.")
|
||||||
|
postData := url.Values{
|
||||||
|
"content": {"IP " + r.RemoteAddr + "failed captcha!"},
|
||||||
|
}
|
||||||
|
req, err := http.PostForm("https://canary.discord.com/api/webhooks/1001546472971587674/XpxdpvlrEvEo7jnRmWyrEudTW0eNC_LpNVd-uC20R44e_efgwvhzSNQ26IaGeO9yan6f", postData)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Fprint(io.Discard, req) // I don't want the result of the request in stdout
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Printf(r.FormValue("aisdjaoidjoiajsidaoj"))
|
||||||
|
fmt.Fprintf(w, "Thanks for your message, and thanks for doing the captcha!\n%#+v", hcaptchaResp)
|
||||||
|
postData := url.Values{
|
||||||
|
"content": {"IP " + r.RemoteAddr + "\nFrom " + r.FormValue("email") + " with feedback type " + r.FormValue("commentType") + ":\n" + "**" + r.FormValue("message") + "**"},
|
||||||
|
}
|
||||||
|
req, err := http.PostForm("https://discord.com/api/webhooks/1001546472971587674/XpxdpvlrEvEo7jnRmWyrEudTW0eNC_LpNVd-uC20R44e_efgwvhzSNQ26IaGeO9yan6f", postData)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Fprint(io.Discard, req) // Out with your request! I don't want it.
|
||||||
|
default:
|
||||||
|
http.Error(w, "Method isn't allowed!\nYou may only POST here, not " + r.Method, http.StatusMethodNotAllowed)
|
||||||
|
}
|
||||||
|
log.Println("[HTTP] " + r.RemoteAddr + " accessed /api/form with method " + r.Method)
|
||||||
|
}
|
||||||
|
|
||||||
func renderTestForm(w http.ResponseWriter, r *http.Request) {
|
func renderTestForm(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
||||||
testForm.Execute(w, map[string]string{
|
testForm.Execute(w, map[string]string{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Please ignore this :))))))) :(
|
// Please ignore my terrible code :) It works
|
||||||
package otherthings
|
package otherthings
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -6,8 +6,10 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
var unused string
|
var (
|
||||||
var ok1 bool
|
unused string
|
||||||
|
ok1 bool
|
||||||
|
)
|
||||||
|
|
||||||
func CheckEnv() {
|
func CheckEnv() {
|
||||||
unused, ok1 = os.LookupEnv("SEGFAUTILITIES_PORT")
|
unused, ok1 = os.LookupEnv("SEGFAUTILITIES_PORT")
|
||||||
@ -16,6 +18,17 @@ func CheckEnv() {
|
|||||||
} else {
|
} else {
|
||||||
log.Fatal("[Segfautilities] Environment variable SEGFAUTILITIES_PORT is not set! Please set it to a number, for example 6893")
|
log.Fatal("[Segfautilities] Environment variable SEGFAUTILITIES_PORT is not set! Please set it to a number, for example 6893")
|
||||||
}
|
}
|
||||||
|
unused, ok1 = os.LookupEnv("HCAPTCHA_SITE_KEY")
|
||||||
|
if !ok1 {
|
||||||
|
log.Fatal("[Segfautilities] Environment variable HCAPTCHA_SITE_KEY is not set! Please set it to the site key you got from hCaptcha.")
|
||||||
|
} else {
|
||||||
|
log.Println("[Segfautilities] Environment variable HCAPTCHA_SITE_KEY is set as " + unused)
|
||||||
|
}
|
||||||
|
unused, ok1 = os.LookupEnv("HCAPTCHA_SECRET_KEY")
|
||||||
|
if !ok1 {
|
||||||
|
log.Fatal("[Segfautilities] Environment variable HCAPTCHA_SECRET_KEY is not set! Please set it to the secret key you got from hCaptcha.")
|
||||||
|
} else {
|
||||||
|
log.Println("[Segfautilities] Environment variable HCAPTCHA_SECRET_KEY is set!")
|
||||||
|
}
|
||||||
log.Println("[Segfautilities] ✅ Passed the Environment Variables check")
|
log.Println("[Segfautilities] ✅ Passed the Environment Variables check")
|
||||||
}
|
}
|
@ -8,14 +8,17 @@
|
|||||||
<body>
|
<body>
|
||||||
<form action="/api/form" method="POST">
|
<form action="/api/form" method="POST">
|
||||||
<input type="text" name="email" placeholder="Email" />
|
<input type="text" name="email" placeholder="Email" />
|
||||||
<select id="commentType" required="required">
|
<select id="commentType" name="commentType" required="required">
|
||||||
<option value="" selected="selected" disabled="disabled">Select a type of comment</option>
|
<option value="" selected="selected" disabled="disabled">Select a type of comment</option>
|
||||||
<option value="Feedback">Feedback</option>
|
<option value="Feedback">Feedback</option>
|
||||||
<option value="Suggestion">Suggestion</option>
|
<option value="Suggestion">Suggestion</option>
|
||||||
<option value="Question">Question</option>
|
<option value="Question">Question</option>
|
||||||
<option value="Bug">Bug</option>
|
<option value="Bug">Bug</option>
|
||||||
</select>
|
</select>
|
||||||
<input type="password" name="password" placeholder="Password" />
|
<br />
|
||||||
|
<textarea id="comment" name="message" rows="4" cols="50">
|
||||||
|
Your message.
|
||||||
|
</textarea>
|
||||||
<div class="h-captcha" data-sitekey="{{ .SiteKey }}"></div>
|
<div class="h-captcha" data-sitekey="{{ .SiteKey }}"></div>
|
||||||
<br />
|
<br />
|
||||||
<input type="submit" value="Submit" />
|
<input type="submit" value="Submit" />
|
||||||
|
Reference in New Issue
Block a user